/Tests/TechTalk.SpecFlow.IntegrationTests/StepDefinitions/TestFileSteps.cs
C# | 62 lines | 55 code | 7 blank | 0 comment | 0 complexity | 15e81988bde0d27f2dcac6140c9e6995 MD5 | raw file
Possible License(s): BSD-3-Clause, GPL-2.0
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.IO;
- using System.Reflection;
- using TechTalk.SpecFlow.IntegrationTests.TestFiles;
- using TechTalk.SpecFlow.Assist;
- using System.Linq;
- using FluentAssertions;
- using TechTalk.SpecFlow.Specs.Drivers;
- using TechTalk.SpecFlow.Specs.Drivers.Parser;
- namespace TechTalk.SpecFlow.IntegrationTests.StepDefinitions
- {
- [Binding]
- public class TestFileSteps
- {
- private readonly InputProjectDriver inputProjectDriver;
- private readonly TestFileManager testFileManager;
- private readonly ParserDriver parserDriver;
-
- public TestFileSteps(TestFileManager testFileManager, ParserDriver parserDriver, InputProjectDriver inputProjectDriver)
- {
- this.testFileManager = testFileManager;
- this.inputProjectDriver = inputProjectDriver;
- this.parserDriver = parserDriver;
- }
- [When(@"the test file '(.*)' is parsed")]
- public void WhenTheTestFileIsParsed(string testFile)
- {
- string testFileContent = testFileManager.GetTestFileContent(testFile);
- parserDriver.FileContent = testFileContent;
- parserDriver.ParseFile();
- }
- [When(@"the parsed result is saved to '(.*)'")]
- public void WhenTheParsedResultIsSavedTo(string parsedFileName)
- {
- var assemblyFolder = AssemblyFolderHelper.GetTestAssemblyFolder();
- assemblyFolder.EndsWith(@"\bin\Debug").Should().BeTrue("parsed file saving can only be done from a development environment");
- parserDriver.SaveSerializedFeatureTo(Path.Combine(assemblyFolder, @"..\..\TestFiles", parsedFileName));
- }
- [Then(@"the parsed result is the same as '(.*)'")]
- public void ThenTheParsedResultIsTheSameAs(string parsedFileName)
- {
- string expected = testFileManager.GetTestFileContent(parsedFileName);
- parserDriver.AssertParsedFeatureEqualTo(expected);
- }
- [Given(@"all test files are inluded in the project")]
- public void GivenAllTestFilesAreInludedInTheProject()
- {
- foreach (var testFile in testFileManager.GetTestFeatureFiles())
- {
- inputProjectDriver.AddFeatureFile(testFileManager.GetTestFileContent(testFile), testFile);
- }
- }
- }
- }