예제 #1
0
        public void It_disposes_all_reporting_channels_that_it_was_listening_to_when_it_gets_disposed()
        {
            var firstReportingChannelMock  = new Mock <IReportingChannel>();
            var secondReportingChannelMock = new Mock <IReportingChannel>();

            using (var dotnetTest = new DotnetTest(new TestMessagesCollection(), AssemblyUnderTest))
            {
                dotnetTest.TestSessionTerminateMessageHandler = new Mock <IDotnetTestMessageHandler>().Object;
                dotnetTest.UnknownMessageHandler = new Mock <IDotnetTestMessageHandler>().Object;

                dotnetTest.StartListeningTo(firstReportingChannelMock.Object);
                dotnetTest.StartListeningTo(secondReportingChannelMock.Object);
            }

            firstReportingChannelMock.Verify(r => r.Dispose(), Times.Once);
            secondReportingChannelMock.Verify(r => r.Dispose(), Times.Once);
        }
예제 #2
0
        public void It_throws_an_InvalidOperationException_if_StartListeningTo_is_called_without_setting_a_UnknownMessageHandler()
        {
            var dotnetTest = new DotnetTest(new TestMessagesCollection(), AssemblyUnderTest)
            {
                TestSessionTerminateMessageHandler = new Mock <IDotnetTestMessageHandler>().Object
            };

            Action action = () => dotnetTest.StartListeningTo(new Mock <IReportingChannel>().Object);

            action.ShouldThrow <InvalidOperationException>();
        }
예제 #3
0
        public GivenADotnetTestApp()
        {
            _noOpMessageHandlerMock = new Mock <IDotnetTestMessageHandler>();
            _noOpMessageHandlerMock
            .Setup(mh => mh.HandleMessage(It.IsAny <DotnetTest>(), It.IsAny <Message>()))
            .Returns(DotnetTestState.NoOp)
            .Verifiable();

            _realMessageHandlerMock = new Mock <IDotnetTestMessageHandler>();
            _realMessageHandlerMock
            .Setup(mh => mh.HandleMessage(It.IsAny <DotnetTest>(), It.Is <Message>(m => m.MessageType == "Test message")))
            .Returns(DotnetTestState.VersionCheckCompleted).Callback(() =>
                                                                     _reportingChannelMock.Raise(r => r.MessageReceived += null, _dotnetTest, new Message
            {
                MessageType = TestMessageTypes.TestSessionTerminate
            }));

            _reportingChannelMock      = new Mock <IReportingChannel>();
            _unknownMessageHandlerMock = new Mock <IDotnetTestMessageHandler>();
            _unknownMessageHandlerMock
            .Setup(mh => mh.HandleMessage(It.IsAny <DotnetTest>(), It.IsAny <Message>()))
            .Throws <InvalidOperationException>();

            var testMessagesCollection = new TestMessagesCollection();

            _dotnetTest = new DotnetTest(testMessagesCollection, AssemblyUnderTest)
            {
                TestSessionTerminateMessageHandler = new TestSessionTerminateMessageHandler(testMessagesCollection),
                UnknownMessageHandler = _unknownMessageHandlerMock.Object
            };

            _dotnetTest.StartListeningTo(_reportingChannelMock.Object);

            _reportingChannelMock.Raise(r => r.MessageReceived += null, _dotnetTest, new Message
            {
                MessageType = "Test message"
            });
        }