MCPcopy
hub / github.com/segmentio/kafka-go / TestSaramaCompatibility

Function TestSaramaCompatibility

joingroup_test.go:127–191  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

125}
126
127func TestSaramaCompatibility(t *testing.T) {
128 var (
129 // sample data from github.com/Shopify/sarama
130 //
131 // See consumer_group_members_test.go
132 //
133 groupMemberMetadata = []byte{
134 0, 1, // Version
135 0, 0, 0, 2, // Topic array length
136 0, 3, 'o', 'n', 'e', // Topic one
137 0, 3, 't', 'w', 'o', // Topic two
138 0, 0, 0, 3, 0x01, 0x02, 0x03, // Userdata
139 }
140 groupMemberAssignment = []byte{
141 0, 1, // Version
142 0, 0, 0, 1, // Topic array length
143 0, 3, 'o', 'n', 'e', // Topic one
144 0, 0, 0, 3, // Topic one, partition array length
145 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, // 0, 2, 4
146 0, 0, 0, 3, 0x01, 0x02, 0x03, // Userdata
147 }
148 )
149
150 t.Run("verify metadata", func(t *testing.T) {
151 var item groupMetadata
152 remain, err := (&item).readFrom(bufio.NewReader(bytes.NewReader(groupMemberMetadata)), len(groupMemberMetadata))
153 if err != nil {
154 t.Fatalf("bad err: %v", err)
155 }
156 if remain != 0 {
157 t.Fatalf("expected 0; got %v", remain)
158 }
159
160 if v := item.Version; v != 1 {
161 t.Errorf("expected Version 1; got %v", v)
162 }
163 if v := item.Topics; !reflect.DeepEqual([]string{"one", "two"}, v) {
164 t.Errorf(`expected {"one", "two"}; got %v`, v)
165 }
166 if v := item.UserData; !reflect.DeepEqual([]byte{0x01, 0x02, 0x03}, v) {
167 t.Errorf("expected []byte{0x01, 0x02, 0x03}; got %v", v)
168 }
169 })
170
171 t.Run("verify assignments", func(t *testing.T) {
172 var item groupAssignment
173 remain, err := (&item).readFrom(bufio.NewReader(bytes.NewReader(groupMemberAssignment)), len(groupMemberAssignment))
174 if err != nil {
175 t.Fatalf("bad err: %v", err)
176 }
177 if remain != 0 {
178 t.Fatalf("expected 0; got %v", remain)
179 }
180
181 if v := item.Version; v != 1 {
182 t.Errorf("expected Version 1; got %v", v)
183 }
184 if v := item.Topics; !reflect.DeepEqual(map[string][]int32{"one": {0, 2, 4}}, v) {

Callers

nothing calls this directly

Calls 2

NewReaderMethod · 0.65
readFromMethod · 0.45

Tested by

no test coverage detected