public void DisposeShouldNotDisposeProducerIfProduceHasNotBeenCalled()
        {
            var stubMessageProducerBuilder = new Mock <IKafkaProducerBuilder>();
            var mockProducer = new Mock <IProducer <string, string> >();

            stubMessageProducerBuilder
            .Setup(x => x.Build())
            .Returns(mockProducer.Object);

            var sut = new KafkaMessageProducer(stubMessageProducerBuilder.Object);

            sut.Dispose();

            mockProducer.Verify(x => x.Dispose(), Times.Never);
        }
        public async Task DisposeShouldDisposeProducerIfProduceHasBeenCalled()
        {
            var stubMessageProducerBuilder = new Mock <IKafkaProducerBuilder>();
            var mockProducer = new Mock <IProducer <string, string> >();

            stubMessageProducerBuilder
            .Setup(x => x.Build())
            .Returns(mockProducer.Object);
            var fakeMessage = new FakeMessage("some-key-id", "some-property-value");

            var sut = new KafkaMessageProducer(stubMessageProducerBuilder.Object);
            await sut.ProduceAsync(fakeMessage.Key, fakeMessage, CancellationToken.None);

            sut.Dispose();

            mockProducer.Verify(x => x.Dispose());
        }
Beispiel #3
0
        public async Task Dispose_ShouldDisposeProducerIfProduceHasBeenCalled()
        {
            //Arrange
            var stubMessageProducerBuilder = new Mock <IKafkaProducerBuilder <FakeAvro> >();
            var stubLogger   = Mock.Of <ILogger <KafkaMessageProducer <FakeAvro> > >();
            var mockProducer = new Mock <IProducer <string, FakeAvro> >();

            stubMessageProducerBuilder
            .Setup(x => x.Build())
            .Returns(mockProducer.Object);
            var fakeMessage = new FakeMessage("some-property-value");

            //Act
            var sut = new KafkaMessageProducer <FakeAvro>(stubLogger, stubMessageProducerBuilder.Object);
            await sut.ProduceAsync(fakeMessage, "key", CancellationToken.None);

            sut.Dispose();

            //Asset
            mockProducer.Verify(x => x.Dispose());
        }