public void Should_set_displayname_attribute()
{
// Arrange
var provider = new XUnitTestGeneratorProvider(new CodeDomHelper(new CSharpCodeProvider())); // TODO: what about XUnit2TestGeneratorProvider ?
var context = new Generator.TestClassGenerationContext(
unitTestGeneratorProvider: null,
document: new Parser.SpecFlowDocument(
feature: new SpecFlowFeature(
tags: null,
location: null,
language: null,
keyword: null,
name: "",
description: null,
children:null
),
comments: null,
sourceFilePath: null),
ns: null,
testClass: null,
testRunnerField: null,
testClassInitializeMethod: null,
testClassCleanupMethod: null,
testInitializeMethod: null,
testCleanupMethod: null,
scenarioInitializeMethod: null,
scenarioCleanupMethod: null,
featureBackgroundMethod: null,
generateRowTests: false);
var codeMemberMethod = new CodeMemberMethod();
// Act
provider.SetTestMethod(context, codeMemberMethod, "Foo");
// Assert
var modifiedAttribute = codeMemberMethod.CustomAttributes.OfType<CodeAttributeDeclaration>()
.FirstOrDefault(a => a.Name == "Xunit.FactAttribute");
Assert.That(modifiedAttribute, Is.Not.Null);
var attribute = modifiedAttribute.Arguments.OfType<CodeAttributeArgument>()
.FirstOrDefault(a => a.Name == "DisplayName");
Assert.That(attribute, Is.Not.Null);
var primitiveExpression = attribute.Value as CodePrimitiveExpression;
Assert.That(primitiveExpression, Is.Not.Null);
Assert.That(primitiveExpression.Value, Is.EqualTo("Foo"));
}