Ejemplo n.º 1
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.º 2
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.º 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 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.º 5
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.º 6
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.º 7
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.º 8
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.º 9
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.º 10
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.º 11
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.º 12
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.º 13
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.º 14
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);
        }