public void ApplyInternalChangelogTopicsParrallel() { AdminClientConfig config = new AdminClientConfig(); config.BootstrapServers = "localhost:9092"; StreamConfig config2 = new StreamConfig(); DefaultTopicManager manager = new DefaultTopicManager(config2, kafkaSupplier.GetAdmin(config)); IDictionary <string, InternalTopicConfig> topics = new Dictionary <string, InternalTopicConfig>(); topics.Add("topic", new UnwindowedChangelogTopicConfig { Name = "topic", NumberPartitions = 1 }); var r = Parallel.ForEach(new List <int> { 1, 2, 3, 4 }, (i) => manager.ApplyAsync(0, topics).GetAwaiter().GetResult()); Assert.IsTrue(r.IsCompleted); }
public void ApplyInternalChangelogTopicsWithExistingTopics() { AdminClientConfig config = new AdminClientConfig(); config.BootstrapServers = "localhost:9092"; StreamConfig config2 = new StreamConfig(); DefaultTopicManager manager = new DefaultTopicManager(config2, kafkaSupplier.GetAdmin(config)); ((SyncProducer)kafkaSupplier.GetProducer(new ProducerConfig())).CreateTopic("topic"); IDictionary <string, InternalTopicConfig> topics = new Dictionary <string, InternalTopicConfig>(); topics.Add("topic", new UnwindowedChangelogTopicConfig { Name = "topic", NumberPartitions = 1 }); topics.Add("topic1", new UnwindowedChangelogTopicConfig { Name = "topic1", NumberPartitions = 1 }); var r = manager.ApplyAsync(0, topics).GetAwaiter().GetResult().ToList(); Assert.AreEqual(1, r.Count); Assert.AreEqual("topic1", r[0]); }
public void ApplyInternalChangelogTopicsInvalidDifferentPartition() { AdminClientConfig config = new AdminClientConfig(); config.BootstrapServers = "localhost:9092"; StreamConfig config2 = new StreamConfig(); DefaultTopicManager manager = new DefaultTopicManager(config2, kafkaSupplier.GetAdmin(config)); // Create topic with just one partition ((SyncProducer)kafkaSupplier.GetProducer(new ProducerConfig())).CreateTopic("topic"); IDictionary <string, InternalTopicConfig> topics = new Dictionary <string, InternalTopicConfig>(); topics.Add("topic", new UnwindowedChangelogTopicConfig { Name = "topic", NumberPartitions = 4 }); Assert.Throws <StreamsException>(() => manager.ApplyAsync(0, topics).GetAwaiter().GetResult()); }