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_initializing_twice_it_should_fail() { var publishedMessages = new List <MessagePublishingContext>(); var driver = new BrokerEgressKafkaDriver( ConfigurationTests.CreateBrokerEgressKafkaDriverConfiguration(publishedMessages), new Mock <IProducerRegistry>().Object); Action sut = () => driver.Initialize( new IEgressApi[0], MakeServiceProvider()); sut.Should().NotThrow(); sut.Should().ThrowExactly <PoezdOperationException>().Where(exception => exception.Message.Contains("already initialized")); }
public void when_initializing_with_invalid_arguments_it_should_fail() { var publishedMessages = new List <MessagePublishingContext>(); var driver = new BrokerEgressKafkaDriver( ConfigurationTests.CreateBrokerEgressKafkaDriverConfiguration(publishedMessages), new Mock <IProducerRegistry>().Object); var apis = new IEgressApi[0]; var serviceProvider = Mock.Of <IDiContainerAdapter>(); Action sut = () => driver.Initialize( apis, serviceProvider); apis = null; sut.Should().ThrowExactly <ArgumentNullException>() .Which.ParamName.Should().Be("apis", "null is an invalid APIs"); apis = new IEgressApi[0]; serviceProvider = null; sut.Should().ThrowExactly <ArgumentNullException>() .Which.ParamName.Should().Be("serviceProvider", "null is an invalid service provider"); }