PageRenderTime 45ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/Tests/TechTalk.SpecFlow.IntegrationTests/StepDefinitions/TestFileSteps.cs

http://github.com/techtalk/SpecFlow
C# | 62 lines | 55 code | 7 blank | 0 comment | 0 complexity | 15e81988bde0d27f2dcac6140c9e6995 MD5 | raw file
Possible License(s): BSD-3-Clause, GPL-2.0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.IO;
  5. using System.Reflection;
  6. using TechTalk.SpecFlow.IntegrationTests.TestFiles;
  7. using TechTalk.SpecFlow.Assist;
  8. using System.Linq;
  9. using FluentAssertions;
  10. using TechTalk.SpecFlow.Specs.Drivers;
  11. using TechTalk.SpecFlow.Specs.Drivers.Parser;
  12. namespace TechTalk.SpecFlow.IntegrationTests.StepDefinitions
  13. {
  14. [Binding]
  15. public class TestFileSteps
  16. {
  17. private readonly InputProjectDriver inputProjectDriver;
  18. private readonly TestFileManager testFileManager;
  19. private readonly ParserDriver parserDriver;
  20. public TestFileSteps(TestFileManager testFileManager, ParserDriver parserDriver, InputProjectDriver inputProjectDriver)
  21. {
  22. this.testFileManager = testFileManager;
  23. this.inputProjectDriver = inputProjectDriver;
  24. this.parserDriver = parserDriver;
  25. }
  26. [When(@"the test file '(.*)' is parsed")]
  27. public void WhenTheTestFileIsParsed(string testFile)
  28. {
  29. string testFileContent = testFileManager.GetTestFileContent(testFile);
  30. parserDriver.FileContent = testFileContent;
  31. parserDriver.ParseFile();
  32. }
  33. [When(@"the parsed result is saved to '(.*)'")]
  34. public void WhenTheParsedResultIsSavedTo(string parsedFileName)
  35. {
  36. var assemblyFolder = AssemblyFolderHelper.GetTestAssemblyFolder();
  37. assemblyFolder.EndsWith(@"\bin\Debug").Should().BeTrue("parsed file saving can only be done from a development environment");
  38. parserDriver.SaveSerializedFeatureTo(Path.Combine(assemblyFolder, @"..\..\TestFiles", parsedFileName));
  39. }
  40. [Then(@"the parsed result is the same as '(.*)'")]
  41. public void ThenTheParsedResultIsTheSameAs(string parsedFileName)
  42. {
  43. string expected = testFileManager.GetTestFileContent(parsedFileName);
  44. parserDriver.AssertParsedFeatureEqualTo(expected);
  45. }
  46. [Given(@"all test files are inluded in the project")]
  47. public void GivenAllTestFilesAreInludedInTheProject()
  48. {
  49. foreach (var testFile in testFileManager.GetTestFeatureFiles())
  50. {
  51. inputProjectDriver.AddFeatureFile(testFileManager.GetTestFileContent(testFile), testFile);
  52. }
  53. }
  54. }
  55. }