|
@@ -0,0 +1,77 @@
|
|
|
+package sarama
|
|
|
+
|
|
|
+import (
|
|
|
+ "bytes"
|
|
|
+ "reflect"
|
|
|
+ "testing"
|
|
|
+)
|
|
|
+
|
|
|
+var (
|
|
|
+ groupMemberMetadata = []byte{
|
|
|
+ 0, 1,
|
|
|
+ 0, 0, 0, 2,
|
|
|
+ 0, 3, 'o', 'n', 'e',
|
|
|
+ 0, 3, 't', 'w', 'o',
|
|
|
+ 0, 0, 0, 3, 0x01, 0x02, 0x03,
|
|
|
+ }
|
|
|
+ groupMemberAssignment = []byte{
|
|
|
+ 0, 1,
|
|
|
+ 0, 0, 0, 2,
|
|
|
+ 0, 3, 'o', 'n', 'e',
|
|
|
+ 0, 0, 0, 3,
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4,
|
|
|
+ 0, 3, 't', 'w', 'o',
|
|
|
+ 0, 0, 0, 2,
|
|
|
+ 0, 0, 0, 1, 0, 0, 0, 3,
|
|
|
+ 0, 0, 0, 3, 0x01, 0x02, 0x03,
|
|
|
+ }
|
|
|
+)
|
|
|
+
|
|
|
+func TestGroupMemberMetadata(t *testing.T) {
|
|
|
+ meta := &GroupMemberMetadata{
|
|
|
+ Version: 1,
|
|
|
+ Topics: []string{"one", "two"},
|
|
|
+ UserData: []byte{0x01, 0x02, 0x03},
|
|
|
+ }
|
|
|
+
|
|
|
+ buf, err := encode(meta)
|
|
|
+ if err != nil {
|
|
|
+ t.Error("Failed to encode data", err)
|
|
|
+ } else if !bytes.Equal(groupMemberMetadata, buf) {
|
|
|
+ t.Errorf("Encoded data does not match expectation\nexpected: %v\nactual: %v", groupMemberMetadata, buf)
|
|
|
+ }
|
|
|
+
|
|
|
+ meta2 := new(GroupMemberMetadata)
|
|
|
+ err = decode(buf, meta2)
|
|
|
+ if err != nil {
|
|
|
+ t.Error("Failed to decode data", err)
|
|
|
+ } else if !reflect.DeepEqual(meta, meta2) {
|
|
|
+ t.Errorf("Encoded data does not match expectation\nexpected: %v\nactual: %v", meta, meta2)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestGroupMemberAssignment(t *testing.T) {
|
|
|
+ amt := &GroupMemberAssignment{
|
|
|
+ Version: 1,
|
|
|
+ Topics: []GroupMemberAssignedTopic{
|
|
|
+ {Topic: "one", Partitions: []int32{0, 2, 4}},
|
|
|
+ {Topic: "two", Partitions: []int32{1, 3}},
|
|
|
+ },
|
|
|
+ UserData: []byte{0x01, 0x02, 0x03},
|
|
|
+ }
|
|
|
+
|
|
|
+ buf, err := encode(amt)
|
|
|
+ if err != nil {
|
|
|
+ t.Error("Failed to encode data", err)
|
|
|
+ } else if !bytes.Equal(groupMemberAssignment, buf) {
|
|
|
+ t.Errorf("Encoded data does not match expectation\nexpected: %v\nactual: %v", groupMemberAssignment, buf)
|
|
|
+ }
|
|
|
+
|
|
|
+ amt2 := new(GroupMemberAssignment)
|
|
|
+ err = decode(buf, amt2)
|
|
|
+ if err != nil {
|
|
|
+ t.Error("Failed to decode data", err)
|
|
|
+ } else if !reflect.DeepEqual(amt, amt2) {
|
|
|
+ t.Errorf("Encoded data does not match expectation\nexpected: %v\nactual: %v", amt, amt2)
|
|
|
+ }
|
|
|
+}
|