File: create_partitions_request_test.go

package info (click to toggle)
golang-github-ibm-sarama 1.46.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,032 kB
  • sloc: makefile: 35; sh: 19
file content (52 lines) | stat: -rw-r--r-- 1,149 bytes parent folder | download | duplicates (2)
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
//go:build !functional

package sarama

import (
	"testing"
	"time"
)

var (
	createPartitionRequestNoAssignment = []byte{
		0, 0, 0, 1, // one topic
		0, 5, 't', 'o', 'p', 'i', 'c',
		0, 0, 0, 3, // 3 partitions
		255, 255, 255, 255, // no assignments
		0, 0, 0, 100, // timeout
		0, // validate only = false
	}

	createPartitionRequestAssignment = []byte{
		0, 0, 0, 1,
		0, 5, 't', 'o', 'p', 'i', 'c',
		0, 0, 0, 3, // 3 partitions
		0, 0, 0, 2,
		0, 0, 0, 2,
		0, 0, 0, 2, 0, 0, 0, 3,
		0, 0, 0, 2,
		0, 0, 0, 3, 0, 0, 0, 1,
		0, 0, 0, 100,
		1, // validate only = true
	}
)

func TestCreatePartitionsRequest(t *testing.T) {
	req := &CreatePartitionsRequest{
		TopicPartitions: map[string]*TopicPartition{
			"topic": {
				Count: 3,
			},
		},
		Timeout: 100 * time.Millisecond,
	}

	buf := testRequestEncode(t, "no assignment", req, createPartitionRequestNoAssignment)
	testRequestDecode(t, "no assignment", req, buf)

	req.ValidateOnly = true
	req.TopicPartitions["topic"].Assignment = [][]int32{{2, 3}, {3, 1}}

	buf = testRequestEncode(t, "assignment", req, createPartitionRequestAssignment)
	testRequestDecode(t, "assignment", req, buf)
}