Ejemplo n.º 1
0
        //[Test]
        public async Task Sandbox()
        {
            var fileSystem = new FileSystem();

            var vstest = new VsTestConsoleWrapper(@"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\TestPlatform\vstest.console.exe");

            vstest.InitializeExtensions(Enumerable.Repeat(@"C:\Users\Jake\Documents\Visual Studio 2017\Projects\nunit3-vs-adapter\src\NUnitTestAdapter\bin\Debug\net35\NUnit3.TestAdapter.dll", 1));

            var testCaseDiscoveryManager = new TestCaseDiscoveryManager(vstest);
            var testCaseManager          = new TestResultManager(fileSystem, testCaseDiscoveryManager);

            var testCasesDiscoveredHandler = Substitute.For <EventHandler <DiscoveredTestsEventArgs> >();

            testCaseDiscoveryManager.TestCasesDiscovered += testCasesDiscoveredHandler;
            var discoveryCompleteHandler = Substitute.For <EventHandler <DiscoveryCompletedEventArgs> >();

            testCaseDiscoveryManager.DiscoveryCompleted += discoveryCompleteHandler;
            var messageReceivedHandler = Substitute.For <EventHandler <TestRunMessageEventArgs> >();

            testCaseDiscoveryManager.MessageReceived += messageReceivedHandler;

            var testCasesAddedHandler = Substitute.For <EventHandler <TestResultsEventArgs> >();

            testCaseManager.TestResultsAdded += testCasesAddedHandler;
            var testCasesModifiedHandler = Substitute.For <EventHandler <TestResultsEventArgs> >();

            testCaseManager.TestResultsModified += testCasesModifiedHandler;
            var testCasesRemovedHandler = Substitute.For <EventHandler <TestResultsEventArgs> >();

            testCaseManager.TestResultsRemoved += testCasesRemovedHandler;

            await testCaseManager.AddSourceAssemblyPathAsync(@"C:\Users\Jake\Documents\Visual Studio 2017\Projects\FaultDictionaryDebugger\CommonUtilitiesTests\bin\Debug\CommonUtilitiesTests.dll");

            CollectionAssert.IsNotEmpty(testCaseManager.TestResults);
        }
Ejemplo n.º 2
0
        public void Constructor_Otherwise_SetsIsDiscoveryInProcessToFalse()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            var result = uut.IsDiscoveryInProgress;

            Assert.IsFalse(result);
        }
Ejemplo n.º 3
0
        public void DiscoverTestCasesAsync_SourceAssemblyPathsIsNull_ThrowsException()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            var result = Assert.Throws <ArgumentNullException>(() => uut.DiscoverTestCasesAsync(null));

            Assert.AreEqual("sourceAssemblyPaths", result.ParamName);
        }
Ejemplo n.º 4
0
        public void WaitForDiscoveryCompleteAsync_IsDiscoveryInProgressIsFalse_CompletesImmediately()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            var result = uut.WaitForDiscoveryCompleteAsync().IsCompleted;

            Assert.IsTrue(result);
        }
Ejemplo n.º 5
0
        public async Task CancelDiscoveryAsync_Always_InvokesVsTestCancelDiscovery()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            await uut.CancelDiscoveryAsync();

            vstest.Received(1).CancelDiscovery();
        }
Ejemplo n.º 6
0
        public async Task DiscoverTestCasesAsync_Otherwise_InvokesVsTestDiscoverTestsWithThis()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            await uut.DiscoverTestCasesAsync(Enumerable.Empty <string>());

            vstest.Received(1).DiscoverTests(Arg.Any <IEnumerable <string> >(), Arg.Any <string>(), uut);
        }
Ejemplo n.º 7
0
        public async Task DiscoverTestCasesAsync_Otherwise_InvokesVsTestDiscoverTestsWithSourceAssemblyPaths()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);
            var sourceAssemblyPaths = Enumerable.Repeat("DummyAssembly", 1);

            await uut.DiscoverTestCasesAsync(sourceAssemblyPaths);

            vstest.Received(1).DiscoverTests(sourceAssemblyPaths, Arg.Any <string>(), Arg.Any <ITestDiscoveryEventsHandler>());
        }
Ejemplo n.º 8
0
        public void HandleRawMessage_IsDiscoveryInProgressIsFalse_DoesNotRaiseMessageReceived()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            var handler = Substitute.For <EventHandler <TestRunMessageEventArgs> >();

            uut.MessageReceived += handler;
            uut.HandleRawMessage("DummyMessage");

            handler.DidNotReceive().Invoke(Arg.Any <object>(), Arg.Any <TestRunMessageEventArgs>());
        }
Ejemplo n.º 9
0
        public void HandleDiscoveryComplete_IsDiscoveryInProgressIsFalse_DoesNotRaiseDiscoveryCompleted()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            var handler = Substitute.For <EventHandler <DiscoveryCompletedEventArgs> >();

            uut.DiscoveryCompleted += handler;
            uut.HandleDiscoveryComplete(0, Enumerable.Empty <TestCase>(), false);

            handler.DidNotReceive().Invoke(Arg.Any <object>(), Arg.Any <DiscoveryCompletedEventArgs>());
        }
Ejemplo n.º 10
0
        public void HandleDiscoveryComplete_Otherwise_SetsIsDiscoveryInProgressToFalse()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            uut.DiscoverTestCasesAsync(Enumerable.Empty <string>()).Wait();
            uut.HandleDiscoveryComplete(0, Enumerable.Empty <TestCase>(), false);

            var result = uut.IsDiscoveryInProgress;

            Assert.IsFalse(result);
        }
Ejemplo n.º 11
0
        public void HandleDiscoveryComplete_LastChunkIsNull_DoesNotRaiseTestCasesDiscovered()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            var handler = Substitute.For <EventHandler <DiscoveredTestsEventArgs> >();

            uut.TestCasesDiscovered += handler;
            uut.DiscoverTestCasesAsync(Enumerable.Empty <string>()).Wait();
            uut.HandleDiscoveryComplete(0, null, false);

            handler.DidNotReceive().Invoke(Arg.Any <object>(), Arg.Any <DiscoveredTestsEventArgs>());
        }
Ejemplo n.º 12
0
        public void HandleRawMessage_RawMessageIsNull_DoesNotRaiseMessageReceived()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            var handler = Substitute.For <EventHandler <TestRunMessageEventArgs> >();

            uut.MessageReceived += handler;
            uut.DiscoverTestCasesAsync(Enumerable.Empty <string>()).Wait();
            uut.HandleRawMessage(null);

            handler.DidNotReceive().Invoke(Arg.Any <object>(), Arg.Any <TestRunMessageEventArgs>());
        }
Ejemplo n.º 13
0
        public void DiscoverTestCasesAsync_IsDiscoveryInProgressIsTrue_DoesNotCompleteUntilHandleDiscoveryCompleteHasBeenInvoked()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            uut.DiscoverTestCasesAsync(Enumerable.Empty <string>()).Wait();
            var task = uut.DiscoverTestCasesAsync(Enumerable.Empty <string>());

            Assert.IsFalse(task.IsCompleted);

            uut.HandleDiscoveryComplete(0, Enumerable.Empty <TestCase>(), false);
            task.Wait();

            Assert.IsTrue(task.IsCompleted);
        }
Ejemplo n.º 14
0
        public void DiscoverTestCasesAsync_IsDiscoveryInProgressIsTrue_DoesNotInvokeVsTestDiscoverTests()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            uut.DiscoverTestCasesAsync(Enumerable.Empty <string>()).Wait();
            vstest.ClearReceivedCalls();

            var task = uut.DiscoverTestCasesAsync(Enumerable.Empty <string>());

            uut.HandleDiscoveryComplete(0, Enumerable.Empty <TestCase>(), false);
            task.Wait();

            vstest.DidNotReceive().DiscoverTests(Arg.Any <IEnumerable <string> >(), Arg.Any <string>(), Arg.Any <ITestDiscoveryEventsHandler>());
        }
Ejemplo n.º 15
0
        public void HandleRawMessage_Otherwise_RaisesMessageReceivedWithLevelAsInformational()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            var handler = Substitute.For <EventHandler <TestRunMessageEventArgs> >();
            TestRunMessageEventArgs args = null;

            handler.When(x => x.Invoke(Arg.Any <object>(), Arg.Any <TestRunMessageEventArgs>())).Do(x => args = (TestRunMessageEventArgs)x[1]);
            uut.MessageReceived += handler;
            uut.DiscoverTestCasesAsync(Enumerable.Empty <string>()).Wait();
            uut.HandleRawMessage("DummyMessage");

            handler.Received(1).Invoke(uut, Arg.Any <TestRunMessageEventArgs>());
            Assert.AreEqual(TestMessageLevel.Informational, args.Level);
        }
Ejemplo n.º 16
0
        public void HandleDiscoveryComplete_LastChunkIsNull_RaisesDiscoveryCompletedWithTrueAsWasDiscoveryAborted()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            var handler = Substitute.For <EventHandler <DiscoveryCompletedEventArgs> >();
            DiscoveryCompletedEventArgs args = null;

            handler.When(x => x.Invoke(Arg.Any <object>(), Arg.Any <DiscoveryCompletedEventArgs>())).Do(x => args = (DiscoveryCompletedEventArgs)x[1]);
            uut.DiscoveryCompleted += handler;
            uut.DiscoverTestCasesAsync(Enumerable.Empty <string>()).Wait();
            uut.HandleDiscoveryComplete(0, null, false);

            handler.Received(1).Invoke(uut, Arg.Any <DiscoveryCompletedEventArgs>());
            Assert.IsTrue(args.WasDiscoveryAborted);
        }
Ejemplo n.º 17
0
        public void HandleDiscoveryComplete_TotalTestsIsEqualToLastChunkCount_RaisesDiscoveryCompleteWithIsAbortedAsWasDiscoveryAbortedAs(bool isAborted)
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            uut.DiscoverTestCasesAsync(Enumerable.Empty <string>()).Wait();
            DiscoveryCompletedEventArgs args = null;
            var handler = Substitute.For <EventHandler <DiscoveryCompletedEventArgs> >();

            handler.When(x => x.Invoke(Arg.Any <object>(), Arg.Any <DiscoveryCompletedEventArgs>())).Do(x => args = (DiscoveryCompletedEventArgs)x[1]);
            uut.DiscoveryCompleted += handler;
            uut.HandleDiscoveryComplete(0, Enumerable.Empty <TestCase>(), isAborted);

            handler.Received(1).Invoke(uut, Arg.Any <DiscoveryCompletedEventArgs>());
            Assert.AreEqual(isAborted, args.WasDiscoveryAborted);
        }
Ejemplo n.º 18
0
        public void HandleDiscoveryComplete_Otherwise_RaisesDiscoveryCompleteWithDiscoverTestCasesAsyncSourceAssemblyPaths()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            var sourceAssemblyPaths = Enumerable.Repeat("DummyAssembly", 1);

            uut.DiscoverTestCasesAsync(sourceAssemblyPaths).Wait();
            DiscoveryCompletedEventArgs args = null;
            var handler = Substitute.For <EventHandler <DiscoveryCompletedEventArgs> >();

            handler.When(x => x.Invoke(Arg.Any <object>(), Arg.Any <DiscoveryCompletedEventArgs>())).Do(x => args = (DiscoveryCompletedEventArgs)x[1]);
            uut.DiscoveryCompleted += handler;
            uut.HandleDiscoveryComplete(0, Enumerable.Empty <TestCase>(), false);

            handler.Received(1).Invoke(uut, Arg.Any <DiscoveryCompletedEventArgs>());
            CollectionAssert.AreEquivalent(sourceAssemblyPaths, args.SourceAssemblyPaths);
        }
Ejemplo n.º 19
0
        public void DiscoverTestCasesAsync_VsTestDiscoverTestsHasNotReturned_DoesNotComplete()
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            var tcs = new TaskCompletionSource <int>();

            vstest.When(x => x.DiscoverTests(Arg.Any <IEnumerable <string> >(), Arg.Any <string>(), Arg.Any <ITestDiscoveryEventsHandler>()))
            .Do(x =>
            {
                tcs.Task.Wait();
            });

            var result = uut.DiscoverTestCasesAsync(Enumerable.Empty <string>()).IsCompleted;

            Assert.IsFalse(result);

            tcs.SetResult(0);
        }
Ejemplo n.º 20
0
        public void HandleDiscoveryComplete_Otherwise_RaisesTestCasesDiscoveredWithLastChunkAsDiscoveredTestCases(int testCaseCount)
        {
            var vstest = Substitute.For <IVsTestConsoleWrapper>();

            var uut = new TestCaseDiscoveryManager(vstest);

            uut.DiscoverTestCasesAsync(Enumerable.Empty <string>()).Wait();
            DiscoveredTestsEventArgs args = null;
            var handler = Substitute.For <EventHandler <DiscoveredTestsEventArgs> >();

            handler.When(x => x.Invoke(Arg.Any <object>(), Arg.Any <DiscoveredTestsEventArgs>())).Do(x => args = (DiscoveredTestsEventArgs)x[1]);
            uut.TestCasesDiscovered += handler;
            var lastChunk = Enumerable.Repeat(1, testCaseCount).Select(x => new TestCase()
            {
                Id = Guid.NewGuid()
            }).ToArray();

            uut.HandleDiscoveryComplete(0, lastChunk, false);

            handler.Received(1).Invoke(uut, Arg.Any <DiscoveredTestsEventArgs>());
            CollectionAssert.AreEquivalent(lastChunk, args.DiscoveredTestCases);
        }