public void DiscoveryManagerDiscoveryComplete_TestResultsIsNotEmptyAndDiscoveryCompleteHasBeenReceivedAndEIsAbortedIsFalse_RaisesTestResultsRemovedWithTestResults(string sourceAssemblyPath) { var fileSystem = Substitute.For <IFileSystem>(); var discoveryManager = Substitute.For <ITestCaseDiscoveryManager>(); var testObjectFactory = FakeTestObjectFactory.Default; var uut = new TestResultManager(fileSystem, discoveryManager, testObjectFactory); var testCase = new TestCase() { Id = Guid.NewGuid(), Source = sourceAssemblyPath }; discoveryManager.TestCasesDiscovered += Raise.EventWith(discoveryManager, new DiscoveredTestsEventArgs(Enumerable.Repeat(testCase, 1))); discoveryManager.DiscoveryCompleted += Raise.EventWith(discoveryManager, new DiscoveryCompletedEventArgs(Enumerable.Empty <string>(), false)); var expected = uut.TestResults.ToArray(); var handler = Substitute.For <EventHandler <TestResultsEventArgs> >(); TestResultsEventArgs receivedArgs = null; handler.When(x => x.Invoke(Arg.Any <object>(), Arg.Any <TestResultsEventArgs>())).Do(x => receivedArgs = (TestResultsEventArgs)x[1]); uut.TestResultsRemoved += handler; discoveryManager.DiscoveryCompleted += Raise.EventWith(discoveryManager, new DiscoveryCompletedEventArgs(Enumerable.Repeat(sourceAssemblyPath, 1), false)); handler.Received(1).Invoke(uut, Arg.Any <TestResultsEventArgs>()); CollectionAssert.AreEquivalent(expected, receivedArgs.TestResultsByTestCaseId.Values); }
public void DiscoveryManagerTestCasesDiscovered_TestResultsIsEmpty_RaisesTestCasesAddedWithEachTestObjectFactoryCreateTestResult(int testCaseCount) { var fileSystem = Substitute.For <IFileSystem>(); var discoveryManager = Substitute.For <ITestCaseDiscoveryManager>(); var testObjectFactory = Substitute.ForPartsOf <FakeTestObjectFactory>(); var createdTestResults = new List <ITestResult>(); testObjectFactory.CreateTestResult(Arg.Any <TestCase>()).Returns(x => { var testResult = FakeTestObjectFactory.Default.CreateTestResult((TestCase)x[0]); createdTestResults.Add(testResult); return(testResult); }); var uut = new TestResultManager(fileSystem, discoveryManager, testObjectFactory); var handler = Substitute.For <EventHandler <TestResultsEventArgs> >(); TestResultsEventArgs receivedArgs = null; handler.When(x => x.Invoke(Arg.Any <object>(), Arg.Any <TestResultsEventArgs>())).Do(x => receivedArgs = (TestResultsEventArgs)x[1]); uut.TestResultsAdded += handler; var testCases = Enumerable.Range(1, testCaseCount).Select(x => new TestCase() { Id = Guid.NewGuid() }).ToArray(); discoveryManager.TestCasesDiscovered += Raise.EventWith(discoveryManager, new DiscoveredTestsEventArgs(testCases)); handler.Received(1).Invoke(uut, Arg.Any <TestResultsEventArgs>()); CollectionAssert.AreEquivalent(createdTestResults, receivedArgs.TestResultsByTestCaseId.Values); }
public async Task RemoveSourceAssemblyPathAsync_TestResultsEachTestCaseSourceEqualsFileSystemPathGetFullPath_RaisesTestResultsRemovedWithTestResults(string sourceAssemblyPath, int testResultCount) { var fileSystem = new MockFileSystem(null, "DummyDirectory"); fileSystem.AddFile(sourceAssemblyPath, sourceAssemblyPath); var discoveryManager = Substitute.For <ITestCaseDiscoveryManager>(); var testObjectFactory = FakeTestObjectFactory.Default; var uut = new TestResultManager(fileSystem, discoveryManager, testObjectFactory); await uut.AddSourceAssemblyPathAsync(sourceAssemblyPath); var testCases = Enumerable.Repeat(1, testResultCount).Select(x => new TestCase() { Id = Guid.NewGuid(), Source = fileSystem.Path.GetFullPath(sourceAssemblyPath) }).ToArray(); discoveryManager.TestCasesDiscovered += Raise.EventWith(discoveryManager, new DiscoveredTestsEventArgs(testCases)); var expected = uut.TestResults.ToArray(); var handler = Substitute.For <EventHandler <TestResultsEventArgs> >(); TestResultsEventArgs receivedArgs = null; handler.When(x => x.Invoke(Arg.Any <object>(), Arg.Any <TestResultsEventArgs>())).Do(x => receivedArgs = (TestResultsEventArgs)x[1]); uut.TestResultsRemoved += handler; await uut.RemoveSourceAssemblyPathAsync(sourceAssemblyPath); handler.Received(1).Invoke(uut, Arg.Any <TestResultsEventArgs>()); CollectionAssert.AreEquivalent(expected, receivedArgs.TestResultsByTestCaseId.Values); }
public void Constructor_Default_Always_SetsTestResultsByTestCaseIdToEmpty() { var uut = new TestResultsEventArgs(); var result = uut.TestResultsByTestCaseId; CollectionAssert.IsEmpty(result); }
public void Constructor_TestResults_Otherwise_TestResultsByTestCaseIdValuesIsEquivalentToTestResults(int testCaseCount) { var testResults = Enumerable.Range(1, testCaseCount) .Select(x => MakeFakeTestCase()) .Select(x => MakeFakeTestResult(x)) .ToArray(); var uut = new TestResultsEventArgs(testResults); var result = uut.TestResultsByTestCaseId.Values; CollectionAssert.AreEquivalent(testResults, result); }
public void Constructor_TestResults_Otherwise_TestResultsByTestCaseIdEachKeyIsEqualToValueTestCaseId(int testCaseCount) { var testResults = Enumerable.Range(1, testCaseCount) .Select(x => MakeFakeTestCase()) .Select(x => MakeFakeTestResult(x)) .ToArray(); var uut = new TestResultsEventArgs(testResults); var result = uut.TestResultsByTestCaseId; foreach (var testResultPair in result) { Assert.AreEqual(testResultPair.Key, testResultPair.Value.TestCase.Id); } }