public async Task TestSimpleConsumerWorksOk() { var keySerializer = new NullSerializer <object>(); var valueSerializer = new StringSerializer(); var messagePartitioner = new LoadBalancedPartitioner <object>(); using (var temporaryTopic = testCluster.CreateTemporaryTopic()) using (var brokers = new KafkaBrokers(testCluster.CreateBrokerUris())) { var topic = temporaryTopic.Name; var producer = KafkaProducer.Create(brokers, keySerializer, valueSerializer, messagePartitioner); var consumer = KafkaConsumer.Create(defaultConsumerGroup, brokers, keySerializer, valueSerializer, new TopicSelector { Partition = 0, Topic = topic }); await producer.SendAsync(KeyedMessage.Create(topic, "Message"), CancellationToken.None); var responses = await consumer.ReceiveAsync(CancellationToken.None); Assert.That(responses, Is.Not.Null); Assert.That(responses, Has.Count.EqualTo(1)); var first = responses.First(); Assert.That(first.Key, Is.Null); Assert.That(first.Offset, Is.EqualTo(0)); Assert.That(first.Partition, Is.EqualTo(0)); Assert.That(first.Topic, Is.EqualTo(topic)); Assert.That(first.Value, Is.EqualTo("Message")); } }
public async Task TestSimpleConsumerWorksOk() { var keySerializer = new NullSerializer<object>(); var valueSerializer = new StringSerializer(); var messagePartitioner = new LoadBalancedPartitioner<object>(); using (var temporaryTopic = testCluster.CreateTemporaryTopic()) using (var brokers = new KafkaBrokers(testCluster.CreateBrokerUris())) { var topic = temporaryTopic.Name; var producer = KafkaProducer.Create(brokers, keySerializer, valueSerializer, messagePartitioner); var consumer = KafkaConsumer.Create(defaultConsumerGroup, brokers, keySerializer, valueSerializer, new TopicSelector { Partition = 0, Topic = topic }); await producer.SendAsync(KeyedMessage.Create(topic, "Message"), CancellationToken.None); var responses = await consumer.ReceiveAsync(CancellationToken.None); Assert.That(responses, Is.Not.Null); Assert.That(responses, Has.Count.EqualTo(1)); var first = responses.First(); Assert.That(first.Key, Is.Null); Assert.That(first.Offset, Is.EqualTo(0)); Assert.That(first.Partition, Is.EqualTo(0)); Assert.That(first.Topic, Is.EqualTo(topic)); Assert.That(first.Value, Is.EqualTo("Message")); } }
public void TestLoadBalancedPartitioner(object objectToTest, int numberOfPartitions) { var partitioner = new LoadBalancedPartitioner<object>(); var expected = 0; for (var i = 0; i < numberOfPartitions * 2; i++ ) { var result = partitioner.CalculatePartition(objectToTest, numberOfPartitions); Assert.That(result, Is.EqualTo(expected)); expected = (expected + 1) % numberOfPartitions; } }
public void TestLoadBalancedPartitioner(object objectToTest, int numberOfPartitions) { var partitioner = new LoadBalancedPartitioner <object>(); var expected = 0; for (var i = 0; i < numberOfPartitions * 2; i++) { var result = partitioner.CalculatePartition(objectToTest, numberOfPartitions); Assert.That(result, Is.EqualTo(expected)); expected = (expected + 1) % numberOfPartitions; } }