public void CodeBehindGeneratorCreatesScenarioWithSteps() { var features = TestCodeBehindData.FeatureWithScenarioAndNoStep(); features[0].Scenarios[0].Steps.Add(new NodeStep("GivenIHaveAStep")); features[0].Scenarios[0].Steps.Add(new NodeStep("WhenIHaveAStep")); features[0].Scenarios[0].Steps.Add(new NodeStep("ThenIHaveAStep")); var files = GeneratorFactory.Generate(GeneratorType.CodeBehindGenerator, features); string parameterName = string.Empty; string[] stringsExpected = new string[] { string.Format("#include \"{0}.h\"", features[0].Name), string.Empty, "namespace CppUnitTest", "{", string.Format("\tvoid {0}::{1}()", features[0].Name, features[0].Scenarios[0].Name), "\t{", string.Format("\t\t{0}({1});", features[0].Scenarios[0].Steps[0].Name, parameterName), string.Format("\t\t{0}({1});", features[0].Scenarios[0].Steps[1].Name, parameterName), string.Format("\t\t{0}({1});", features[0].Scenarios[0].Steps[2].Name, parameterName), "\t}", "}" }; AssertExt.ContentsOfStringArray(stringsExpected, files[0]); }
public void CodeBehindGeneratorCreatesScenarioOutlineWithStepAndParameterized() { var features = TestCodeBehindData.FeatureWithScenarioOutlineAndStepAndParameterized("string"); var files = GeneratorFactory.Generate(GeneratorType.CodeBehindGenerator, features); List <string> stringsExpected = new List <string> { string.Format("#include \"{0}.h\"", features[0].Name), string.Empty, "namespace CppUnitTest", "{", string.Format("\tvoid {0}::{1}()", features[0].Name, features[0].Scenarios[0].Name), "\t{" }; NodeScenarioOutline outline = (NodeScenarioOutline)features[0].Scenarios[0]; for (int i = 1; i < outline.Examples.Rows.Count; i++) // skip header row { foreach (var step in outline.Steps) { stringsExpected.Add(string.Format("\t\t{0}(\"{1}\", \"{2}\");", step.Name, outline.Examples.Rows[i][0], outline.Examples.Rows[i][1])); } } List <string> stringsExpectedEnd = new List <string> { "\t}", "}" }; stringsExpected.AddRange(stringsExpectedEnd); AssertExt.ContentsOfStringArray(stringsExpected.ToArray(), files[0]); }
public void CodeBehindGeneratorCreatesScenarioWithOneStepAndTable() { var features = TestCodeBehindData.FeatureWithScenarioAndStep(); features[0].Scenarios[0].Steps[0].Rows = new List <string[]>() { new[] { "a", "b", "c" }, new[] { "1", "2", "3" } }; var files = GeneratorFactory.Generate(GeneratorType.CodeBehindGenerator, features); string[] stringsExpected = new string[] { string.Format("#include \"{0}.h\"", features[0].Name), string.Empty, "namespace CppUnitTest", "{", string.Format("\tvoid {0}::{1}()", features[0].Name, features[0].Scenarios[0].Name), "\t{", "\t\tstd::vector<std::vector<std::string>> table0 = {{", "\t\t\t{ \"a\", \"b\", \"c\" },", "\t\t\t{ \"1\", \"2\", \"3\" }", "\t\t}};", string.Format("\t\t{0}(table0,{1},{2});", features[0].Scenarios[0].Steps[0].Name, features[0].Scenarios[0].Steps[0].Rows.Count, features[0].Scenarios[0].Steps[0].Rows[0].Length), "\t}", "}" }; AssertExt.ContentsOfStringArray(stringsExpected, files[0]); }
public void CodeBehindGeneratorCreatesScenarioWithNoSteps() { var features = TestCodeBehindData.FeatureWithScenarioAndNoStep(); var files = GeneratorFactory.Generate(GeneratorType.CodeBehindGenerator, features); string[] stringsExpected = new string[] { string.Format("#include \"{0}.h\"", features[0].Name), string.Empty, "namespace CppUnitTest", "{", string.Format("\tvoid {0}::{1}()", features[0].Name, features[0].Scenarios[0].Name), "\t{", "\t}", "}" }; AssertExt.ContentsOfStringArray(stringsExpected, files[0]); }
public void CodeBehindGeneratorCreatesScenarioOutlineWithStepAndTableDeclaredOnce() { var features = TestCodeBehindData.FeatureWithScenarioOutlineAndStep(); features[0].Scenarios[0].Steps[0].Rows = new List <string[]>() { new[] { "a", "b", "c" }, new[] { "1", "2", "3" } }; var files = GeneratorFactory.Generate(GeneratorType.CodeBehindGenerator, features); List <string> stringsExpected = new List <string> { string.Format("#include \"{0}.h\"", features[0].Name), string.Empty, "namespace CppUnitTest", "{", string.Format("\tvoid {0}::{1}()", features[0].Name, features[0].Scenarios[0].Name), "\t{", "\t\tstd::vector<std::vector<std::string>> table0 = {{", "\t\t\t{ \"a\", \"b\", \"c\" },", "\t\t\t{ \"1\", \"2\", \"3\" }", "\t\t}};" }; NodeScenarioOutline outline = (NodeScenarioOutline)features[0].Scenarios[0]; for (int i = 0; i < outline.Examples.Rows.Count - 1; i++) { foreach (var step in outline.Steps) { stringsExpected.Add(string.Format("\t\t{0}(table0,2,3);", step.Name)); } } List <string> stringsExpectedEnd = new List <string> { "\t}", "}" }; stringsExpected.AddRange(stringsExpectedEnd); AssertExt.ContentsOfStringArray(stringsExpected.ToArray(), files[0]); }
public void CodeBehindGeneratorCreatesTwoFeaturesWithScenario() { var features = TestCodeBehindData.TwoFeaturesWithScenario(); var files = GeneratorFactory.Generate(GeneratorType.CodeBehindGenerator, features); Assert.AreEqual(2, files.Count, "File count mismatch."); for (int i = 0; i < files.Count; i++) { string[] stringsExpected = new string[] { string.Format("#include \"{0}.h\"", features[i].Name), string.Empty, "namespace CppUnitTest", "{", string.Format("\tvoid {0}::{1}()", features[i].Name, features[i].Scenarios[0].Name), "\t{", "\t}", "}" }; AssertExt.ContentsOfStringArray(stringsExpected, files[i]); } }
public void CodeBehindGeneratorCreatesStepWithOneNumberParameter() { var features = TestCodeBehindData.FeatureWithScenarioAndStepAndParameter("int"); string parameterName = string.Empty; var files = GeneratorFactory.Generate(GeneratorType.CodeBehindGenerator, features); string[] stringsExpected = new string[] { string.Format("#include \"{0}.h\"", features[0].Name), string.Empty, "namespace CppUnitTest", "{", string.Format("\tvoid {0}::{1}()", features[0].Name, features[0].Scenarios[0].Name), "\t{", string.Format("\t\t{0}({1});", features[0].Scenarios[0].Steps[0].Name, features[0].Scenarios[0].Steps[0].Parameters[0].Value), "\t}", "}" }; AssertExt.ContentsOfStringArray(stringsExpected, files[0]); }