| 218 | } |
| 219 | |
| 220 | func TestJoinGroupResponse(t *testing.T) { |
| 221 | supportedVersions := []apiVersion{v1, v2} |
| 222 | for _, v := range supportedVersions { |
| 223 | item := joinGroupResponse{ |
| 224 | v: v, |
| 225 | ErrorCode: 2, |
| 226 | GenerationID: 3, |
| 227 | GroupProtocol: "a", |
| 228 | LeaderID: "b", |
| 229 | MemberID: "c", |
| 230 | Members: []joinGroupResponseMember{ |
| 231 | { |
| 232 | MemberID: "d", |
| 233 | MemberMetadata: []byte("blah"), |
| 234 | }, |
| 235 | }, |
| 236 | } |
| 237 | |
| 238 | b := bytes.NewBuffer(nil) |
| 239 | w := &writeBuffer{w: b} |
| 240 | item.writeTo(w) |
| 241 | |
| 242 | found := joinGroupResponse{v: v} |
| 243 | remain, err := (&found).readFrom(bufio.NewReader(b), b.Len()) |
| 244 | if err != nil { |
| 245 | t.Error(err) |
| 246 | t.FailNow() |
| 247 | } |
| 248 | if remain != 0 { |
| 249 | t.Errorf("expected 0 remain, got %v", remain) |
| 250 | t.FailNow() |
| 251 | } |
| 252 | if !reflect.DeepEqual(item, found) { |
| 253 | t.Error("expected item and found to be the same") |
| 254 | t.FailNow() |
| 255 | } |
| 256 | } |
| 257 | } |