message_test.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package sarama
  2. import "testing"
  3. var (
  4. emptyMessage = []byte{
  5. 167, 236, 104, 3, // CRC
  6. 0x00, // magic version byte
  7. 0x00, // attribute flags
  8. 0xFF, 0xFF, 0xFF, 0xFF, // key
  9. 0xFF, 0xFF, 0xFF, 0xFF} // value
  10. emptyGzipMessage = []byte{
  11. 97, 79, 149, 90, //CRC
  12. 0x00, // magic version byte
  13. 0x01, // attribute flags
  14. 0xFF, 0xFF, 0xFF, 0xFF, // key
  15. // value
  16. 0x00, 0x00, 0x00, 0x17,
  17. 0x1f, 0x8b,
  18. 0x08,
  19. 0, 0, 9, 110, 136, 0, 255, 1, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0}
  20. )
  21. func TestMessageEncoding(t *testing.T) {
  22. message := Message{}
  23. testEncodable(t, "empty", &message, emptyMessage)
  24. message.Value = []byte{}
  25. message.Codec = COMPRESSION_GZIP
  26. testEncodable(t, "empty gzip", &message, emptyGzipMessage)
  27. }
  28. func TestMessageDecoding(t *testing.T) {
  29. message := Message{}
  30. testDecodable(t, "empty", &message, emptyMessage)
  31. if message.Codec != COMPRESSION_NONE {
  32. t.Error("Decoding produced compression codec where there was none.")
  33. }
  34. if message.Key != nil {
  35. t.Error("Decoding produced key where there was none.")
  36. }
  37. if message.Value != nil {
  38. t.Error("Decoding produced value where there was none.")
  39. }
  40. testDecodable(t, "empty gzip", &message, emptyGzipMessage)
  41. if message.Codec != COMPRESSION_GZIP {
  42. t.Error("Decoding produced incorrect compression codec (was gzip).")
  43. }
  44. if message.Key != nil {
  45. t.Error("Decoding produced key where there was none.")
  46. }
  47. if message.Value == nil || len(message.Value) != 0 {
  48. t.Error("Decoding produced nil or content-ful value where there was an empty array.")
  49. }
  50. }