public async Task ProducerConsumerIntegrationTest() { //arrange var car = new Car { BrandName = "Jeep", Model = "2017", IsSportCar = true, NumberOfDoors = 2 }; var message = JsonConvert.SerializeObject(car); //producer var config = new ProducerConfiguration(); var producerConfig = config.CreateConfig(); var producer = config.CreateProducer(producerConfig); var producerService = new ProducerService(); var deleveredResponse = await producerService.SendMessage(producer, "cars", message); Assert.IsNotNull(deleveredResponse); Assert.IsNotNull(deleveredResponse.TopicOffset); Assert.AreEqual(message, deleveredResponse.Result); var carResponse = JsonConvert.DeserializeObject <Car>(deleveredResponse.Result); Assert.AreEqual(car.BrandName, carResponse.BrandName); Assert.AreEqual(car.Model, carResponse.Model); Assert.AreEqual(car.IsSportCar, carResponse.IsSportCar); Assert.AreEqual(car.NumberOfDoors, carResponse.NumberOfDoors); //Consumer var consumerServiceConfig = new ConsumerServiceConfig(); var consumerConfig = consumerServiceConfig.CreateConfig(); var consumerService = new ConsumerService(); // CancellationTokenSource cts = new CancellationTokenSource(); var consumerResult = consumerService.CreateConsumerAndConsumeSingleMessage(consumerConfig, "cars", CancellationToken.None); Assert.IsNotNull(consumerResult); Assert.IsNotNull(consumerResult.TopicOffset); Assert.AreEqual(message, consumerResult.Message); var carConsumerResponse = JsonConvert.DeserializeObject <Car>(deleveredResponse.Result); Assert.IsNotNull(carConsumerResponse); Assert.AreEqual(car.BrandName, carConsumerResponse.BrandName); Assert.AreEqual(car.Model, carConsumerResponse.Model); Assert.AreEqual(car.IsSportCar, carConsumerResponse.IsSportCar); Assert.AreEqual(car.NumberOfDoors, carConsumerResponse.NumberOfDoors); }