예제 #1
0
        public void when_start_consume_messages_on_uninitialized_ingress_it_should_fail()
        {
            var configuration = ConfigurationTests.CreateBrokerIngressConfiguration();
            var ingress       = new BrokerIngress(
                Mock.Of <IMessageBroker>(),
                configuration,
                Mock.Of <IDiContainerAdapter>());

            Action sut = () => ingress.StartConsumeMessages(new[] { "queue name" });

            sut.Should().ThrowExactly <PoezdOperationException>().Which.Message.Should().Contain("not initialized");
        }
예제 #2
0
        public void when_start_consume_messages_without_queue_names_it_should_fail()
        {
            var configuration = ConfigurationTests.CreateBrokerIngressConfiguration();
            var ingress       = new BrokerIngress(
                Mock.Of <IMessageBroker>(),
                configuration,
                Mock.Of <IDiContainerAdapter>());

            ingress.Initialize();

            Action sut = () => ingress.StartConsumeMessages(queueNamePatterns: null);

            sut.Should().ThrowExactly <ArgumentNullException>().Which.ParamName.Should().Be("queueNamePatterns");
        }
예제 #3
0
        public void when_start_consume_messages_it_should_start_consume_messages_from_underlying_driver()
        {
            var driverMock = new Mock <IBrokerIngressDriver>();
            var driverStartConsumeMessagesCalled = false;

            driverMock.Setup(driver => driver.StartConsumeMessages(It.IsAny <IEnumerable <string> >(), CancellationToken.None))
            .Callback(() => driverStartConsumeMessagesCalled = true)
            .Returns(Task.CompletedTask);

            var configuration = ConfigurationTests.CreateBrokerIngressConfiguration()
                                .With(ingressConfiguration => ingressConfiguration.Driver = driverMock.Object);
            var ingress = new BrokerIngress(
                Mock.Of <IMessageBroker>(),
                configuration,
                Mock.Of <IDiContainerAdapter>());

            ingress.Initialize();

            ingress.StartConsumeMessages(new[] { "queue name" });

            driverStartConsumeMessagesCalled.Should().BeTrue("broker ingress should start message consumption on driver");
        }