Beispiel #1
0
        public void when_publish_with_invalid_arguments_it_should_fail()
        {
            var apiProducerMock = new Mock <IApiProducer>();

            apiProducerMock
            .Setup(producer => producer.Publish(It.IsAny <MessagePublishingContext>(), It.IsAny <CancellationToken>()))
            .Returns(() => Task.CompletedTask);

            var producerRegistryMock = new Mock <IProducerRegistry>();

            producerRegistryMock.Setup(registry => registry.Get(It.IsAny <IEgressApi>())).Returns(() => apiProducerMock.Object);

            var driver = new BrokerEgressKafkaDriver(
                ConfigurationTests.CreateBrokerEgressKafkaDriverConfiguration(new List <MessagePublishingContext>()),
                producerRegistryMock.Object);

            driver.Initialize(
                new[] { MakeApi() },
                MakeServiceProvider());

            // ReSharper disable once AssignNullToNotNullAttribute
            Func <Task> sut = () => driver.Publish(context: null, CancellationToken.None);

            sut.Should().ThrowExactly <ArgumentNullException>();
        }
Beispiel #2
0
        public async Task when_publish_using_initialized_driver_it_should_publish_to_api_publisher()
        {
            var published = 0;

            var apiProducerMock = new Mock <IApiProducer>();

            apiProducerMock
            .Setup(producer => producer.Publish(It.IsAny <MessagePublishingContext>(), It.IsAny <CancellationToken>()))
            .Callback(() => published++)
            .Returns(() => Task.CompletedTask);

            var producerRegistryMock = new Mock <IProducerRegistry>();

            producerRegistryMock.Setup(registry => registry.Get(It.IsAny <IEgressApi>())).Returns(() => apiProducerMock.Object);

            var driver = new BrokerEgressKafkaDriver(
                ConfigurationTests.CreateBrokerEgressKafkaDriverConfiguration(new List <MessagePublishingContext>()),
                producerRegistryMock.Object);

            driver.Initialize(
                new[] { MakeApi() },
                MakeServiceProvider());

            await driver.Publish(MakeContext(), CancellationToken.None);

            published.Should().Be(expected: 1, "message should be published");
        }
Beispiel #3
0
        public void when_publishing_to_not_initialized_driver_it_should_fail()
        {
            var driver = new BrokerEgressKafkaDriver(
                ConfigurationTests.CreateBrokerEgressKafkaDriverConfiguration(),
                new Mock <IProducerRegistry>().Object);
            Func <Task> sut = () => driver.Publish(MakeContext(), CancellationToken.None);

            sut.Should().ThrowExactly <PoezdOperationException>()
            .Where(
                exception => exception.Message.Contains("initialized", StringComparison.InvariantCultureIgnoreCase),
                "not initialized driver can not publish messages");
        }