コード例 #1
0
 public void BusShouldReportShutdownWhenMessageSinkReturnsFalse()
 {
     using (var bus = new SynchronousMessageBus(SpyMessageSink.Create(returnResult: false)))
     {
         Assert.False(bus.QueueMessage(Substitute.For <IMessageSinkMessage>()));
     }
 }
コード例 #2
0
    public void MessagesAreDispatchedImmediatelyFromBus()
    {
        var msg1 = new _MessageSinkMessage();
        var dispatchedMessages = new List <_MessageSinkMessage>();

        using (var bus = new SynchronousMessageBus(SpyMessageSink.Create(messages: dispatchedMessages)))
            Assert.True(bus.QueueMessage(msg1));

        Assert.Collection(dispatchedMessages, message => Assert.Same(msg1, message));
    }
コード例 #3
0
        public void RunTests(IEnumerable <ITestCase> testCases, IMessageSink executionMessageSink, ITestFrameworkExecutionOptions executionOptions)
        {
            using (var messageBus = new SynchronousMessageBus(executionMessageSink))
                messageBus.QueueMessage(new TestAssemblyStarting(testCases, _xunitTestFrameworkExecutor.TestAssembly, DateTime.Now, $"{ IntPtr.Size * 8 } - bit.NET", XunitTestFrameworkDiscoverer.DisplayName));

            _xunitTestFrameworkExecutor
            .RunTests
            (
                testCases.Where(testCase => !(testCase is IntegrationTestCase)),
                new FilterableMessageSink
                (
                    executionMessageSink,
                    message =>
            {
                if (message is TestAssemblyStarting)
                {
                    return(null);
                }
                if (message is TestAssemblyFinished)
                {
                    _integrationTestFrameworkExector
                    .RunTests
                    (
                        testCases.OfType <IntegrationTestCase>(),
                        new FilterableMessageSink
                        (
                            executionMessageSink,
                            m =>
                    {
                        if (m is TestAssemblyStarting)
                        {
                            return(null);
                        }
                        if (m is TestAssemblyFinished)
                        {
                            return(new TestAssemblyFinished(testCases, _xunitTestFrameworkExecutor.TestAssembly, 1.0m, 2, 0, 0));
                        }
                        return(m);
                    }),
                        executionOptions
                    );

                    return(null);
                }
                return(message);
            }
                ),
                executionOptions
            );
        }
コード例 #4
0
    public void MessagesAreDispatchedImmediatelyFromBus()
    {
        var msg1 = Substitute.For <IMessageSinkMessage>();
        var dispatchedMessages = new List <IMessageSinkMessage>();

        using (var bus = new SynchronousMessageBus(SpyMessageSink.Create(messages: dispatchedMessages)))
        {
            Assert.True(bus.QueueMessage(msg1));
        }

        var message = Assert.Single(dispatchedMessages);

        Assert.Same(msg1, message);
    }
コード例 #5
0
    public void BusShouldReportShutdownWhenMessageSinkReturnsFalse()
    {
        using var bus = new SynchronousMessageBus(SpyMessageSink.Create(returnResult: false));

        Assert.False(bus.QueueMessage(new _MessageSinkMessage()));
    }