File: syncgroup_test.go

package info (click to toggle)
golang-github-segmentio-kafka-go 0.4.49%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,292 kB
  • sloc: sh: 17; makefile: 10
file content (93 lines) | stat: -rw-r--r-- 2,207 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package syncgroup_test

import (
	"testing"

	"github.com/segmentio/kafka-go/protocol/prototest"
	"github.com/segmentio/kafka-go/protocol/syncgroup"
)

func TestSyncGroupReq(t *testing.T) {
	for _, version := range []int16{0, 1, 2} {
		prototest.TestRequest(t, version, &syncgroup.Request{
			GroupID:      "group-id-1",
			GenerationID: 10,
			MemberID:     "member-id-1",
			Assignments: []syncgroup.RequestAssignment{
				{
					MemberID:   "member-id-2",
					Assignment: []byte{0, 1, 2, 3, 4},
				},
			},
		})
	}

	// Version 3 added:
	// GroupInstanceID
	for _, version := range []int16{3, 4} {
		prototest.TestRequest(t, version, &syncgroup.Request{
			GroupID:         "group-id-1",
			GenerationID:    10,
			MemberID:        "member-id-1",
			GroupInstanceID: "group-instance-id",
			Assignments: []syncgroup.RequestAssignment{
				{
					MemberID:   "member-id-2",
					Assignment: []byte{0, 1, 2, 3, 4},
				},
			},
		})
	}

	// Version 5 added
	// ProtocolType
	// ProtocolName
	for _, version := range []int16{5} {
		prototest.TestRequest(t, version, &syncgroup.Request{
			GroupID:         "group-id-1",
			GenerationID:    10,
			MemberID:        "member-id-1",
			GroupInstanceID: "group-instance-id",
			ProtocolType:    "protocol-type",
			ProtocolName:    "protocol-name",
			Assignments: []syncgroup.RequestAssignment{
				{
					MemberID:   "member-id-2",
					Assignment: []byte{0, 1, 2, 3, 4},
				},
			},
		})
	}
}

func TestSyncGroupResp(t *testing.T) {
	for _, version := range []int16{0} {
		prototest.TestResponse(t, version, &syncgroup.Response{
			ErrorCode:   10,
			Assignments: []byte{0, 1, 2, 3, 4},
		})
	}

	// Version 1 added
	// ThrottleTimeMS
	for _, version := range []int16{1, 2, 3, 4} {
		prototest.TestResponse(t, version, &syncgroup.Response{
			ErrorCode:      10,
			ThrottleTimeMS: 1,
			Assignments:    []byte{0, 1, 2, 3, 4},
		})
	}

	// Version 5 added
	// ProtocolType
	// ProtocolName
	for _, version := range []int16{5} {
		prototest.TestResponse(t, version, &syncgroup.Response{
			ErrorCode:      10,
			ThrottleTimeMS: 1,
			ProtocolType:   "protocol-type",
			ProtocolName:   "protocol-name",
			Assignments:    []byte{0, 1, 2, 3, 4},
		})
	}
}