public void DescribeGroupsResponse( [Values( ErrorResponseCode.None, ErrorResponseCode.OffsetMetadataTooLarge )] ErrorResponseCode errorCode, [Values("test", "a groupId")] string groupId, [Range(2, 3)] int count, [Values(KafkaClient.Protocol.DescribeGroupsResponse.Group.States.Stable, KafkaClient.Protocol.DescribeGroupsResponse.Group.States.Dead)] string state, [Values("consumer", "unknown")] string protocolType, [Values("good", "bad", "ugly")] string protocol) { var groups = new DescribeGroupsResponse.Group[count]; for (var g = 0; g < count; g++) { var members = new List <DescribeGroupsResponse.Member>(); for (var m = 0; m < count; m++) { var metadata = new byte[count * 100]; var assignment = new byte[count * 10]; _randomizer.NextBytes(metadata); _randomizer.NextBytes(assignment); members.Add(new DescribeGroupsResponse.Member("member" + m, "client" + m, "host-" + m, new ByteMember(metadata), new ByteMember(assignment))); } groups[g] = new DescribeGroupsResponse.Group(errorCode, groupId + g, state, protocolType, protocol, members); } var response = new DescribeGroupsResponse(groups); response.AssertCanEncodeDecodeResponse(0); }
public void DescribeConsumerGroupsResponse( [Values( ErrorResponseCode.None, ErrorResponseCode.OffsetMetadataTooLarge )] ErrorResponseCode errorCode, [Values("test", "a groupId")] string groupId, [Range(2, 3)] int count, [Values(KafkaClient.Protocol.DescribeGroupsResponse.Group.States.Stable, KafkaClient.Protocol.DescribeGroupsResponse.Group.States.AwaitingSync)] string state, [Values("consumer")] string protocolType, [Values("good", "bad", "ugly")] string protocol) { var encoder = new ConsumerEncoder(); var groups = new DescribeGroupsResponse.Group[count]; for (var g = 0; g < count; g++) { var members = new List <DescribeGroupsResponse.Member>(); for (var m = 0; m < count; m++) { var memberId = "member" + m; var userData = new byte[count * 100]; _randomizer.NextBytes(userData); var metadata = new ConsumerProtocolMetadata(0, new [] { protocol, memberId, memberId }, userData); var topics = new List <TopicPartition>(); for (var t = 0; t < count; t++) { topics.Add(new TopicPartition("topic foo" + t, t)); } var assignment = new ConsumerMemberAssignment(0, topics); members.Add(new DescribeGroupsResponse.Member(memberId, "client" + m, "host-" + m, metadata, assignment)); } groups[g] = new DescribeGroupsResponse.Group(errorCode, groupId + g, state, protocolType, protocol, members); } var response = new DescribeGroupsResponse(groups); response.AssertCanEncodeDecodeResponse(0, encoder); }