Beispiel #1
0
        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);
        }
Beispiel #3
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);
        }