12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package sarama
- import "testing"
- var (
- produceResponseNoBlocks = []byte{
- 0x00, 0x00, 0x00, 0x00}
- produceResponseManyBlocks = []byte{
- 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x03, 'f', 'o', 'o',
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x03, 'b', 'a', 'r',
- 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
- 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
- )
- func TestProduceResponse(t *testing.T) {
- response := ProduceResponse{}
- testDecodable(t, "no blocks", &response, produceResponseNoBlocks)
- if len(response.Blocks) != 0 {
- t.Error("Decoding produced", len(response.Blocks), "topics where there were none")
- }
- testDecodable(t, "many blocks", &response, produceResponseManyBlocks)
- if len(response.Blocks) != 2 {
- t.Error("Decoding produced", len(response.Blocks), "topics where there were 2")
- }
- if len(response.Blocks["foo"]) != 0 {
- t.Error("Decoding produced", len(response.Blocks["foo"]), "partitions for 'foo' where there were none")
- }
- if len(response.Blocks["bar"]) != 2 {
- t.Error("Decoding produced", len(response.Blocks["bar"]), "partitions for 'bar' where there were two")
- }
- block := response.GetBlock("bar", 1)
- if block == nil {
- t.Error("Decoding did not produce a block for bar/1")
- } else {
- if block.Err != ErrNoError {
- t.Error("Decoding failed for bar/1/Err, got:", int16(block.Err))
- }
- if block.Offset != 0xFF {
- t.Error("Decoding failed for bar/1/Offset, got:", block.Offset)
- }
- }
- block = response.GetBlock("bar", 2)
- if block == nil {
- t.Error("Decoding did not produce a block for bar/2")
- } else {
- if block.Err != ErrInvalidMessage {
- t.Error("Decoding failed for bar/2/Err, got:", int16(block.Err))
- }
- if block.Offset != 0 {
- t.Error("Decoding failed for bar/2/Offset, got:", block.Offset)
- }
- }
- }
|