public void NUnit3TestGeneratorProvider_FeatureDescriptionShouldSetCorrectly() { // ARRANGE const string sampleFeatureFile = @" Feature: Sample feature file FeatureDescription Scenario: Simple scenario Given there is something When I do something Then something should happen"; var document = ParseDocumentFromString(sampleFeatureFile); var sampleTestGeneratorProvider = new NUnit3TestGeneratorProvider(new CodeDomHelper(CodeDomProviderLanguage.CSharp)); var converter = sampleTestGeneratorProvider.CreateUnitTestConverter(); // ACT var code = converter.GenerateUnitTestFixture(document, "TestClassName", "Target.Namespace"); var testClass = code.Class(); // ASSERT testClass.CustomAttributes().Should().ContainSingle(a => a.Name == NUnit3DescriptionAttribute && a.ArgumentValues().Any(v => v.ToString().Trim() == "FeatureDescription")); var fixtureAttribute = testClass.CustomAttributes().OfType <CodeAttributeDeclaration>().FirstOrDefault(a => a.Name == NUnit3TestFixtureAttribute); fixtureAttribute.Arguments.OfType <CodeAttributeArgument>().Should().ContainSingle(a => a.Name == "TestName"); var testNameArgument = fixtureAttribute.Arguments.OfType <CodeAttributeArgument>().FirstOrDefault(a => a.Name == "TestName"); var testNameArgumentValueExpression = testNameArgument.Value as CodePrimitiveExpression; testNameArgumentValueExpression.Should().NotBeNull(); testNameArgumentValueExpression.Value.Should().Be("Sample feature file"); }
public void NUnit3TestGeneratorProvider_ScenarioOutlineDescriptionShouldSetCorrectly() { // ARRANGE const string sampleFeatureFile = @" Feature: Sample feature file Scenario: Simple scenario Given there is something When I do something Then something should happen @mytag Scenario Outline: Simple Scenario Outline ScenarioOutlineDescription Given there is something """""" long string """""" When I do <what> | foo | bar | | 1 | 2 | Then something should happen Examples: | what | | something | | something else | "; var document = ParseDocumentFromString(sampleFeatureFile); var sampleTestGeneratorProvider = new NUnit3TestGeneratorProvider(new CodeDomHelper(CodeDomProviderLanguage.CSharp)); var converter = sampleTestGeneratorProvider.CreateUnitTestConverter(); // ACT var code = converter.GenerateUnitTestFixture(document, "TestClassName", "Target.Namespace"); var testMethod = code.Class().Members().Single(m => m.Name == "SimpleScenarioOutline"); testMethod.CustomAttributes().Should().ContainSingle(a => a.Name == NUnit3DescriptionAttribute && a.ArgumentValues().Any(v => v.ToString().Trim() == "ScenarioOutlineDescription")); var caseAttributes = testMethod.CustomAttributes().OfType <CodeAttributeDeclaration>().Where(a => a.Name == NUnit3TestCaseAttributeName).ToList(); var testCase1NameArgument = caseAttributes[0].Arguments.OfType <CodeAttributeArgument>().FirstOrDefault(a => a.Name == "TestName"); var testCase1NameArgumentValueExpression = testCase1NameArgument.Value as CodePrimitiveExpression; testCase1NameArgumentValueExpression.Should().NotBeNull(); testCase1NameArgumentValueExpression.Value.Should().Be("Simple Scenario Outline(something)"); var testCase2NameArgument = caseAttributes[1].Arguments.OfType <CodeAttributeArgument>().FirstOrDefault(a => a.Name == "TestName"); var testCase2NameArgumentValueExpression = testCase2NameArgument.Value as CodePrimitiveExpression; testCase2NameArgumentValueExpression.Should().NotBeNull(); testCase2NameArgumentValueExpression.Value.Should().Be("Simple Scenario Outline(something else)"); }
public void NUnit3TestGeneratorProvider_ExampleSetIdentifiers_ShouldSetDescriptionCorrectly() { // ARRANGE const string sampleFeatureFileWithMultipleExampleSets = @" Feature: Sample feature file Scenario: Simple scenario Given there is something When I do something Then something should happen @mytag Scenario Outline: Simple Scenario Outline Given there is something """""" long string """""" When I do <what> | foo | bar | | 1 | 2 | Then something should happen Examples: | what | | something | | something else | Examples: | what | | another | | and another | "; var document = ParseDocumentFromString(sampleFeatureFileWithMultipleExampleSets); var sampleTestGeneratorProvider = new NUnit3TestGeneratorProvider(new CodeDomHelper(CodeDomProviderLanguage.CSharp)); var converter = sampleTestGeneratorProvider.CreateUnitTestConverter(); // ACT var code = converter.GenerateUnitTestFixture(document, "TestClassName", "Target.Namespace"); // ASSERT var testMethod = code.Class().Members().Single(m => m.Name == "SimpleScenarioOutline"); testMethod.CustomAttributes().Should().ContainSingle(a => a.Name == NUnit3TestCaseAttributeName && (string)a.ArgumentValues().First() == "something"); testMethod.CustomAttributes().Should().ContainSingle(a => a.Name == NUnit3TestCaseAttributeName && (string)a.ArgumentValues().First() == "something else"); testMethod.CustomAttributes().Should().ContainSingle(a => a.Name == NUnit3TestCaseAttributeName && (string)a.ArgumentValues().First() == "another"); testMethod.CustomAttributes().Should().ContainSingle(a => a.Name == NUnit3TestCaseAttributeName && (string)a.ArgumentValues().First() == "and another"); }