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);
        }
Exemplo n.º 4
0
        public void Constructor_Default_Always_SetsTestResultsByTestCaseIdToEmpty()
        {
            var uut = new TestResultsEventArgs();

            var result = uut.TestResultsByTestCaseId;

            CollectionAssert.IsEmpty(result);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
            }
        }