public async Task BrokerRouterUsesFactoryToAddNewBrokers() { var router = new BrokerRouter(new KafkaOptions { KafkaServerUri = new List<Uri> { new Uri("http://localhost:1") }, KafkaConnectionFactory = _mockKafkaConnectionFactory.Object }); _mockKafkaConnection1.Setup(x => x.SendAsync(It.IsAny<IKafkaRequest<MetadataResponse>>())) .Returns(() => Task.Run(async () => new List<MetadataResponse> { await BrokerRouterProxy.CreateMetadataResponseWithMultipleBrokers() })); await router.RefreshMissingTopicMetadata(TestTopic); var topics = router.GetTopicMetadataFromLocalCache(TestTopic); _mockKafkaConnectionFactory.Verify(x => x.Create(It.Is<KafkaEndpoint>(e => e.Endpoint.Port == 2), It.IsAny<TimeSpan>(), It.IsAny<IKafkaLog>(), It.IsAny<int>(), It.IsAny<TimeSpan?>(), It.IsAny<StatisticsTrackerOptions>()), Times.Once()); }
public async Task OffsetCommitShouldStoreAndReturnSuccess() { const int partitionId = 0; using (var router = new BrokerRouter(Options)) { await router.RefreshMissingTopicMetadata(IntegrationConfig.IntegrationTopic); var conn = router.SelectBrokerRouteFromLocalCache(IntegrationConfig.IntegrationTopic, partitionId); var commit = CreateOffsetCommitRequest(IntegrationConfig.IntegrationConsumer, partitionId, 10); var response = conn.Connection.SendAsync(commit).Result.FirstOrDefault(); Assert.That(response, Is.Not.Null); Assert.That(response.Error, Is.EqualTo((int)ErrorResponseCode.NoError)); } }
public async Task EnsureGzipCompressedMessageCanSend() { IntegrationConfig.NoDebugLog.InfoFormat(IntegrationConfig.Highlight("start EnsureGzipCompressedMessageCanSend")); using (var conn = GetKafkaConnection()) { conn.SendAsync(new MetadataRequest { Topics = new List<string>(new[] { IntegrationConfig.IntegrationCompressionTopic }) }) .Wait(TimeSpan.FromSeconds(10)); } using (var router = new BrokerRouter(_options)) { IntegrationConfig.NoDebugLog.InfoFormat(IntegrationConfig.Highlight("start RefreshMissingTopicMetadata")); await router.RefreshMissingTopicMetadata(IntegrationConfig.IntegrationCompressionTopic); IntegrationConfig.NoDebugLog.InfoFormat(IntegrationConfig.Highlight("end RefreshMissingTopicMetadata")); var conn = router.SelectBrokerRouteFromLocalCache(IntegrationConfig.IntegrationCompressionTopic, 0); var request = new ProduceRequest { Acks = 1, TimeoutMS = 1000, Payload = new List<Payload> { new Payload { Codec = MessageCodec.CodecGzip, Topic = IntegrationConfig.IntegrationCompressionTopic, Partition = 0, Messages = new List<Message> { new Message("0", "1"), new Message("1", "1"), new Message("2", "1") } } } }; IntegrationConfig.NoDebugLog.InfoFormat(IntegrationConfig.Highlight("start SendAsync")); var response = conn.Connection.SendAsync(request).Result; IntegrationConfig.NoDebugLog.InfoFormat("end SendAsync"); Assert.That(response.First().Error, Is.EqualTo(0)); IntegrationConfig.NoDebugLog.InfoFormat("start dispose"); } IntegrationConfig.NoDebugLog.InfoFormat(IntegrationConfig.Highlight("end EnsureGzipCompressedMessageCanSend")); }