74 lines
1.9 KiB
Go
74 lines
1.9 KiB
Go
package sarama
|
|
|
|
import (
|
|
"bytes"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
var (
|
|
groupMemberMetadata = []byte{
|
|
0, 1, // Version
|
|
0, 0, 0, 2, // Topic array length
|
|
0, 3, 'o', 'n', 'e', // Topic one
|
|
0, 3, 't', 'w', 'o', // Topic two
|
|
0, 0, 0, 3, 0x01, 0x02, 0x03, // Userdata
|
|
}
|
|
groupMemberAssignment = []byte{
|
|
0, 1, // Version
|
|
0, 0, 0, 1, // Topic array length
|
|
0, 3, 'o', 'n', 'e', // Topic one
|
|
0, 0, 0, 3, // Topic one, partition array length
|
|
0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, // 0, 2, 4
|
|
0, 0, 0, 3, 0x01, 0x02, 0x03, // Userdata
|
|
}
|
|
)
|
|
|
|
func TestConsumerGroupMemberMetadata(t *testing.T) {
|
|
meta := &ConsumerGroupMemberMetadata{
|
|
Version: 1,
|
|
Topics: []string{"one", "two"},
|
|
UserData: []byte{0x01, 0x02, 0x03},
|
|
}
|
|
|
|
buf, err := encode(meta, nil)
|
|
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(ConsumerGroupMemberMetadata)
|
|
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 TestConsumerGroupMemberAssignment(t *testing.T) {
|
|
amt := &ConsumerGroupMemberAssignment{
|
|
Version: 1,
|
|
Topics: map[string][]int32{
|
|
"one": []int32{0, 2, 4},
|
|
},
|
|
UserData: []byte{0x01, 0x02, 0x03},
|
|
}
|
|
|
|
buf, err := encode(amt, nil)
|
|
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(ConsumerGroupMemberAssignment)
|
|
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)
|
|
}
|
|
}
|