public async Task CompileMutationProjects_WhenCompilerNotReturnsError_ShouldNotThrowExceptionAndShouldHaveCreatedABaselineDirectory() { var compiler = ProjectCompilerCreator.CreatePositiveCompiler(_fileSystem); var baselineCreatorCompileMutationProjectsHandler = new BaselineCreatorCompileMutationProjectsHandler(compiler, _fileSystem); await baselineCreatorCompileMutationProjectsHandler.CompileMutationProjectsAsync(_config, Path); Assert.IsTrue(_fileSystem.Directory.Exists(Path), "Have not created the baseline directory"); }
public async Task ExecuteMutationAsync_WhenExecuteMutationAndTestsPass_ShouldSetMutationsAsSurvived() { var compiler = ProjectCompilerCreator.CreatePositiveCompiler(_fileSystem); var testRunner = TestRunnerClientCreator.CreatePositive(); var mutationDocumentExecutor = new MutationDocumentExecutor(compiler, _dependency, testRunner, _fileSystem); var result = await mutationDocumentExecutor.ExecuteMutationAsync(_config, _mutationDocument); Assert.IsTrue(result.Survived); }
public void CompileMutationProjects_WhenSolutionDoesntHaveProjectWithName_ShouldThrowException() { var compiler = ProjectCompilerCreator.CreatePositiveCompiler(_fileSystem); var baselineCreatorCompileMutationProjectsHandler = new BaselineCreatorCompileMutationProjectsHandler(compiler, _fileSystem); _config.MutationProjects.First().Project.Name = "WAAA"; var exception = Assert.ThrowsAsync <BaselineException>(async() => await baselineCreatorCompileMutationProjectsHandler.CompileMutationProjectsAsync(_config, Path)); StringAssert.Contains("Could not find any project with the name WAAA", exception.Message); }
public void CompileMutationProjects_WhenCompilerReturnsError_ShouldThrowException() { var compiler = ProjectCompilerCreator.CreateNegativeCompiler(_fileSystem); var baselineCreatorCompileMutationProjectsHandler = new BaselineCreatorCompileMutationProjectsHandler(compiler, _fileSystem); var exception = Assert.ThrowsAsync <BaselineException>(async() => await baselineCreatorCompileMutationProjectsHandler.CompileMutationProjectsAsync(_config, Path)); var compilationException = exception.InnerException as CompilationException; Assert.AreEqual(1, compilationException.ErrorMessages.Count); Assert.AreEqual("Compile message", compilationException.ErrorMessages.First()); }
public async Task CompileMutationProjects_WhenCancel_ShouldThrowCancellException() { var compiler = ProjectCompilerCreator.CreatePositiveCompiler(_fileSystem); var baselineCreatorCompileMutationProjectsHandler = new BaselineCreatorCompileMutationProjectsHandler(compiler, _fileSystem); var cts = new CancellationTokenSource(); var token = cts.Token; cts.Cancel(); Assert.ThrowsAsync <TaskCanceledException>(async() => await baselineCreatorCompileMutationProjectsHandler.CompileMutationProjectsAsync(_config, Path, token)); }
public void ExecuteMutationAsync_WhenExecuteMutationAndNoMappingMatch_ShouldThrowException() { _config.MutationProjects.First().MappedTestProjects = new List <string> { "TestProject2" }; var compiler = ProjectCompilerCreator.CreatePositiveCompiler(_fileSystem); var testRunner = TestRunnerClientCreator.CreatePositive(); var mutationDocumentExecutor = new MutationDocumentExecutor(compiler, _dependency, testRunner, _fileSystem); Assert.ThrowsAsync <MutationDocumentException>(async() => await mutationDocumentExecutor.ExecuteMutationAsync(_config, _mutationDocument)); }
public void SetUp() { _fileSystem = new MockFileSystem(); _config = ConfigCreator.CreateConfig(_fileSystem); _mutationDocuments = new MutationDocumentCreator().CreateMutations(_config); var dependency = new TestRunnerDependencyFilesHandler(_fileSystem); var compiler = ProjectCompilerCreator.CreatePositiveCompiler(_fileSystem); var testRunner = TestRunnerClientCreator.CreateNegative(); _mutationExecutor = new MutationDocumentExecutor(compiler, dependency, testRunner, _fileSystem); }
public async Task ExecuteMutationAsync_WhenExecuteMutationAndCancel_ShouldGetMutationCancelled() { var compiler = ProjectCompilerCreator.CreatePositiveCompiler(_fileSystem); var testRunner = TestRunnerClientCreator.CreatePositive(); var cancellation = new CancellationTokenSource(); var token = cancellation.Token; cancellation.Cancel(); var mutationDocumentExecutor = new MutationDocumentExecutor(compiler, _dependency, testRunner, _fileSystem); var result = await mutationDocumentExecutor.ExecuteMutationAsync(_config, _mutationDocument, token); Assert.AreEqual("Mutation cancelled", result.UnexpectedError); }
public async Task CreateBaselineAsync_WhenCreatingBaseline_ShouldGetBaselineInfoAndDeleteBaselineDirectory() { var baselineCreator = new BaselineCreator( _fileSystem, new BaselineCreatorCompileMutationProjectsHandler(ProjectCompilerCreator.CreatePositiveCompiler(_fileSystem), _fileSystem), new BaselineCreatorRunUnitTestsHandler(TestRunnerClientCreator.CreatePositive(), new TestRunnerDependencyFilesHandler(_fileSystem)), new BaselineCreatorLogSummaryHandler()); var result = await baselineCreator.CreateBaselineAsync(_config); Assert.AreEqual(1, result.Count); Assert.AreEqual("TestProject", result.First().TestProjectName); Assert.AreEqual(TimeSpan.FromSeconds(1), result.First().ExecutionTime); }
public async Task Handle_WhenExecuteMutationAndGetUnknownError_ShouldFindUnknownMutation() { var dependency = new TestRunnerDependencyFilesHandler(_fileSystem); var compiler = ProjectCompilerCreator.CreatePositiveCompiler(_fileSystem); var testRunner = TestRunnerClientCreator.CreateEmptyTestResult(); _mutationExecutor = new MutationDocumentExecutor(compiler, dependency, testRunner, _fileSystem); var mutationDocumentExecutor = new ExecuteMutationsCommandHandler(_mutationExecutor, new MutationRunLoggerManager()); var results = await mutationDocumentExecutor.Handle(new ExecuteMutationsCommand(_config, _mutationDocuments), CancellationToken.None); Assert.AreEqual(3, results.MutationDocumentResults.Count); var result = results.MutationDocumentResults.First(); Assert.IsNotNull(result.UnexpectedError); }