produce_request_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package sarama
  2. import "testing"
  3. var (
  4. produceRequestEmpty = []byte{
  5. 0x00, 0x00,
  6. 0x00, 0x00, 0x00, 0x00,
  7. 0x00, 0x00, 0x00, 0x00}
  8. produceRequestHeader = []byte{
  9. 0x01, 0x23,
  10. 0x00, 0x00, 0x04, 0x44,
  11. 0x00, 0x00, 0x00, 0x00}
  12. produceRequestOneMessage = []byte{
  13. 0x01, 0x23,
  14. 0x00, 0x00, 0x04, 0x44,
  15. 0x00, 0x00, 0x00, 0x01,
  16. 0x00, 0x05, 't', 'o', 'p', 'i', 'c',
  17. 0x00, 0x00, 0x00, 0x01,
  18. 0x00, 0x00, 0x00, 0xAD,
  19. 0x00, 0x00, 0x00, 0x1C,
  20. // messageSet
  21. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  22. 0x00, 0x00, 0x00, 0x10,
  23. // message
  24. 0x23, 0x96, 0x4a, 0xf7, // CRC
  25. 0x00,
  26. 0x00,
  27. 0xFF, 0xFF, 0xFF, 0xFF,
  28. 0x00, 0x00, 0x00, 0x02, 0x00, 0xEE}
  29. )
  30. func TestProduceRequest(t *testing.T) {
  31. request := new(ProduceRequest)
  32. testEncodable(t, "empty", request, produceRequestEmpty)
  33. request.RequiredAcks = 0x123
  34. request.Timeout = 0x444
  35. testEncodable(t, "header", request, produceRequestHeader)
  36. request.AddMessage("topic", 0xAD, &Message{Codec: CompressionNone, Key: nil, Value: []byte{0x00, 0xEE}})
  37. testEncodable(t, "one message", request, produceRequestOneMessage)
  38. }