예제 #1
0
        public async void Should_work_with_the_registry()
        {
            var bus = _container.GetInstance <IBusControl>();

            bus.Start();

            ISendEndpoint endpoint = await bus.GetSendEndpoint(new Uri("loopback://localhost/input_queue"));

            const string name = "Joe";

            await endpoint.Send(new SimpleMessageClass(name));

            SimpleConsumer lastConsumer = await SimpleConsumer.LastConsumer;

            lastConsumer.ShouldNotBe(null);

            SimpleMessageInterface last = await lastConsumer.Last;

            last.Name
            .ShouldBe(name);

            bool wasDisposed = await lastConsumer.Dependency.WasDisposed;

            wasDisposed
            .ShouldBe(true);     //Dependency was not disposed");

            lastConsumer.Dependency.SomethingDone
            .ShouldBe(true);     //Dependency was disposed before consumer executed");
        }
        public async Task Should_receive_using_the_first_consumer()
        {
            const string name = "Joe";

            await InputQueueSendEndpoint.Send(new SimpleMessageClass(name));

            SimpleConsumer lastConsumer = await SimpleConsumer.LastConsumer.OrCanceled(TestCancellationToken);

            lastConsumer.ShouldNotBe(null);

            SimpleMessageInterface last = await lastConsumer.Last;

            last.Name
            .ShouldBe(name);

            var wasDisposed = await lastConsumer.Dependency.WasDisposed;

            wasDisposed
            .ShouldBe(true);     //Dependency was not disposed");

            lastConsumer.Dependency.SomethingDone
            .ShouldBe(true);     //Dependency was disposed before consumer executed");

            SimplerConsumer lasterConsumer = await SimplerConsumer.LastConsumer.OrCanceled(TestCancellationToken);

            lasterConsumer.ShouldNotBe(null);

            SimpleMessageInterface laster = await lasterConsumer.Last.OrCanceled(TestCancellationToken);
        }
예제 #3
0
        public async Task Should_work_with_lifecycle_managed_bus()
        {
            var bus = _container.Resolve <IBusControl>();

            BusHandle busHandle = await bus.StartAsync();

            try
            {
                ISendEndpoint endpoint = await bus.GetSendEndpoint(new Uri("loopback://localhost/input_queue"));

                const string name = "Joe";

                await endpoint.Send(new SimpleMessageClass(name));

                SimpleConsumer lastConsumer = await SimpleConsumer.LastConsumer;
                lastConsumer.ShouldNotBe(null);

                SimpleMessageInterface last = await lastConsumer.Last;
                last.Name
                .ShouldBe(name);

                bool wasDisposed = await lastConsumer.Dependency.WasDisposed;
                wasDisposed
                .ShouldBe(true);     //Dependency was not disposed");

                lastConsumer.Dependency.SomethingDone
                .ShouldBe(true);     //Dependency was disposed before consumer executed");
            }
            finally
            {
                await busHandle.StopAsync();
            }
        }
예제 #4
0
        public async Task Should_receive_on_the_custom_endpoint()
        {
            const string name = "Joe";

            var sendEndpoint = await Bus.GetSendEndpoint(new Uri("loopback://localhost/custom-endpoint-name"));

            await sendEndpoint.Send(new SimpleMessageClass(name));

            SimplerConsumer lastConsumer = await SimplerConsumer.LastConsumer.UntilCompletedOrCanceled(TestCancellationToken);

            lastConsumer.ShouldNotBe(null);

            SimpleMessageInterface last = await lastConsumer.Last.UntilCompletedOrCanceled(TestCancellationToken);
        }