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>(); }
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"); }
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"); }