public void CreateTopicsExplicitRequest( [Values("test", "a really long name, with spaces and punctuation!")] string topicName, [Values(1, 10)] int topicsPerRequest, [Values(1, 5)] int partitionsPerTopic, [Values(1, 3)] short replicationFactor, [Values(0, 3)] int configCount, [Values(0, 1, 20000)] int timeoutMilliseconds) { var topics = new List <CreateTopicsRequest.Topic>(); for (var t = 0; t < topicsPerRequest; t++) { var configs = new Dictionary <string, string>(); for (var c = 0; c < configCount; c++) { configs["config-" + c] = Guid.NewGuid().ToString("N"); } if (configs.Count == 0 && _randomizer.NextBool()) { configs = null; } var assignments = new List <CreateTopicsRequest.ReplicaAssignment>(); for (var partitionId = 0; partitionId < partitionsPerTopic; partitionId++) { var replica = 0; var replicas = _randomizer.Next(0, replicationFactor - 1).Repeat(() => replica++); assignments.Add(new CreateTopicsRequest.ReplicaAssignment(partitionId, replicas)); } topics.Add(new CreateTopicsRequest.Topic(topicName + t, assignments, configs)); } var request = new CreateTopicsRequest(topics, TimeSpan.FromMilliseconds(timeoutMilliseconds)); request.AssertCanEncodeDecodeRequest(0); }
public void CreateTopicsRequest( [Values("testTopic")] string topicName, [Values(1, 10)] int topicsPerRequest, [Values(1, 5)] int partitionsPerTopic, [Values(1, 3)] short replicationFactor, [Values(0, 3)] int configCount, [Values(0, 1, 20000)] int timeoutMilliseconds) { var topics = new List <CreateTopicsRequest.Topic>(); for (var t = 0; t < topicsPerRequest; t++) { var configs = new Dictionary <string, string>(); for (var c = 0; c < configCount; c++) { configs["config-" + c] = Guid.NewGuid().ToString("N"); } if (configs.Count == 0 && _randomizer.NextBool()) { configs = null; } topics.Add(new CreateTopicsRequest.Topic(topicName + t, partitionsPerTopic, replicationFactor, configs)); } var request = new CreateTopicsRequest(topics, TimeSpan.FromMilliseconds(timeoutMilliseconds)); request.AssertCanEncodeDecodeRequest(0); }
public void CreateTopicsRequest( [Values("test", "a really long name, with spaces and punctuation!")] string topicName, [Values(1, 10)] int topicsPerRequest, [Values(1, 5)] int partitionsPerTopic, [Values(1, 3)] short replicationFactor, [Values(0, 3)] int configCount, [Values(0, 1, 20000)] int timeoutMilliseconds) { var topics = new List <CreateTopicsRequest.Topic>(); for (var t = 0; t < topicsPerRequest; t++) { var configs = new Dictionary <string, string>(); for (var c = 0; c < configCount; c++) { configs["config-" + c] = Guid.NewGuid().ToString("N"); } if (configs.Count == 0 && _randomizer.NextBool()) { configs = null; } //var partitions = new List<MetadataResponse.Partition>(); //for (var partitionId = 0; partitionId < partitionsPerTopic; partitionId++) { // var leader = _randomizer.Next(0, brokersPerRequest - 1); // var replica = 0; // var replicas = _randomizer.Next(0, brokersPerRequest - 1).Repeat(() => replica++); // var isr = 0; // var isrs = _randomizer.Next(0, replica).Repeat(() => isr++); // partitions.Add(new MetadataResponse.Partition(partitionId, leader, replicationFactor, replicas, isrs)); //} topics.Add(new CreateTopicsRequest.Topic(topicName + t, partitionsPerTopic, replicationFactor, configs)); } var request = new CreateTopicsRequest(topics, TimeSpan.FromMilliseconds(timeoutMilliseconds)); request.AssertCanEncodeDecodeRequest(0); }