예제 #1
0
        public void SyncGroupRequest(
            [Values("test", "a groupId")] string groupId,
            [Values(0, 1, 20000)] int generationId,
            [Values("", "an existing member")] string memberId,
            [Values("consumer", "other")] string protocolType,
            [Values(1, 10)] int assignmentsPerRequest)
        {
            var assignments = new List <SyncGroupRequest.GroupAssignment>();

            for (var a = 0; a < assignmentsPerRequest; a++)
            {
                var bytes = new byte[assignmentsPerRequest * 100];
                _randomizer.NextBytes(bytes);
                assignments.Add(new SyncGroupRequest.GroupAssignment(protocolType + a, new ByteMember(bytes)));
            }
            var request = new SyncGroupRequest(groupId, generationId, memberId, assignments);

            request.AssertCanEncodeDecodeRequest(0);
        }
예제 #2
0
        public void SyncConsumerGroupRequest(
            [Values("test", "a groupId")] string groupId,
            [Values(0, 1, 20000)] int generationId,
            [Values("", "an existing member")] string memberId,
            [Values("consumer")] string protocolType,
            [Values(1, 10)] int assignmentsPerRequest)
        {
            var encoder     = new ConsumerEncoder();
            var assignments = new List <SyncGroupRequest.GroupAssignment>();

            for (var a = 0; a < assignmentsPerRequest; a++)
            {
                var topics = new List <TopicPartition>();
                for (var t = 0; t < assignmentsPerRequest; t++)
                {
                    topics.Add(new TopicPartition(groupId + t, t));
                }
                var assignment = new ConsumerMemberAssignment(0, topics);
                assignments.Add(new SyncGroupRequest.GroupAssignment(protocolType + a, assignment));
            }
            var request = new SyncGroupRequest(groupId, generationId, memberId, assignments);

            request.AssertCanEncodeDecodeRequest(0, encoder);
        }