| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package sarama
- import (
- "testing"
- "time"
- )
- func TestFindCoordinatorResponse(t *testing.T) {
- errMsg := "kaboom"
- brokerRack := "foo"
- for _, tc := range []struct {
- desc string
- response *FindCoordinatorResponse
- encoded []byte
- }{{
- desc: "version 0 - no error",
- response: &FindCoordinatorResponse{
- Version: 0,
- Err: ErrNoError,
- Coordinator: &Broker{
- id: 7,
- addr: "host:9092",
- },
- },
- encoded: []byte{
- 0, 0, // Err
- 0, 0, 0, 7, // Coordinator.ID
- 0, 4, 'h', 'o', 's', 't', // Coordinator.Host
- 0, 0, 35, 132, // Coordinator.Port
- },
- }, {
- desc: "version 1 - no error",
- response: &FindCoordinatorResponse{
- Version: 1,
- ThrottleTime: 100 * time.Millisecond,
- Err: ErrNoError,
- Coordinator: &Broker{
- id: 7,
- addr: "host:9092",
- rack: &brokerRack,
- },
- },
- encoded: []byte{
- 0, 0, 0, 100, // ThrottleTime
- 0, 0, // Err
- 255, 255, // ErrMsg: empty
- 0, 0, 0, 7, // Coordinator.ID
- 0, 4, 'h', 'o', 's', 't', // Coordinator.Host
- 0, 0, 35, 132, // Coordinator.Port
- 0, 3, 'f', 'o', 'o', // Coordinator.Rack
- },
- }, {
- desc: "version 0 - error",
- response: &FindCoordinatorResponse{
- Version: 0,
- Err: ErrConsumerCoordinatorNotAvailable,
- Coordinator: NoNode,
- },
- encoded: []byte{
- 0, 15, // Err
- 255, 255, 255, 255, // Coordinator.ID: -1
- 0, 0, // Coordinator.Host: ""
- 255, 255, 255, 255, // Coordinator.Port: -1
- },
- }, {
- desc: "version 1 - error",
- response: &FindCoordinatorResponse{
- Version: 1,
- ThrottleTime: 100 * time.Millisecond,
- Err: ErrConsumerCoordinatorNotAvailable,
- ErrMsg: &errMsg,
- Coordinator: NoNode,
- },
- encoded: []byte{
- 0, 0, 0, 100, // ThrottleTime
- 0, 15, // Err
- 0, 6, 'k', 'a', 'b', 'o', 'o', 'm', // ErrMsg
- 255, 255, 255, 255, // Coordinator.ID: -1
- 0, 0, // Coordinator.Host: ""
- 255, 255, 255, 255, // Coordinator.Port: -1
- 255, 255, // Coordinator.Rack: empty
- },
- }} {
- testResponse(t, tc.desc, tc.response, tc.encoded)
- }
- }
|