123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package sarama
- import "testing"
- var (
- emptyMessage = []byte{
- 167, 236, 104, 3, // CRC
- 0x00, // magic version byte
- 0x00, // attribute flags
- 0xFF, 0xFF, 0xFF, 0xFF, // key
- 0xFF, 0xFF, 0xFF, 0xFF} // value
- emptyGzipMessage = []byte{
- 97, 79, 149, 90, //CRC
- 0x00, // magic version byte
- 0x01, // attribute flags
- 0xFF, 0xFF, 0xFF, 0xFF, // key
- // value
- 0x00, 0x00, 0x00, 0x17,
- 0x1f, 0x8b,
- 0x08,
- 0, 0, 9, 110, 136, 0, 255, 1, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0}
- emptyBulkSnappyMessage = []byte{
- 180, 47, 53, 209, //CRC
- 0x00, // magic version byte
- 0x02, // attribute flags
- 0xFF, 0xFF, 0xFF, 0xFF, // key
- 0, 0, 0, 42,
- 130, 83, 78, 65, 80, 80, 89, 0, // SNAPPY magic
- 0, 0, 0, 1, // min version
- 0, 0, 0, 1, // default version
- 0, 0, 0, 22, 52, 0, 0, 25, 1, 16, 14, 227, 138, 104, 118, 25, 15, 13, 1, 8, 1, 0, 0, 62, 26, 0}
- emptyBulkGzipMessage = []byte{
- 139, 160, 63, 141, //CRC
- 0x00, // magic version byte
- 0x01, // attribute flags
- 0xFF, 0xFF, 0xFF, 0xFF, // key
- 0x00, 0x00, 0x00, 0x27, // len
- 0x1f, 0x8b, // Gzip Magic
- 0x08, // deflate compressed
- 0, 0, 0, 0, 0, 0, 0, 99, 96, 128, 3, 190, 202, 112, 143, 7, 12, 12, 255, 129, 0, 33, 200, 192, 136, 41, 3, 0, 199, 226, 155, 70, 52, 0, 0, 0}
- )
- func TestMessageEncoding(t *testing.T) {
- message := Message{}
- testEncodable(t, "empty", &message, emptyMessage)
- message.Value = []byte{}
- message.Codec = CompressionGZIP
- testEncodable(t, "empty gzip", &message, emptyGzipMessage)
- }
- func TestMessageDecoding(t *testing.T) {
- message := Message{}
- testDecodable(t, "empty", &message, emptyMessage)
- if message.Codec != CompressionNone {
- t.Error("Decoding produced compression codec where there was none.")
- }
- if message.Key != nil {
- t.Error("Decoding produced key where there was none.")
- }
- if message.Value != nil {
- t.Error("Decoding produced value where there was none.")
- }
- if message.Set != nil {
- t.Error("Decoding produced set where there was none.")
- }
- testDecodable(t, "empty gzip", &message, emptyGzipMessage)
- if message.Codec != CompressionGZIP {
- t.Error("Decoding produced incorrect compression codec (was gzip).")
- }
- if message.Key != nil {
- t.Error("Decoding produced key where there was none.")
- }
- if message.Value == nil || len(message.Value) != 0 {
- t.Error("Decoding produced nil or content-ful value where there was an empty array.")
- }
- }
- func TestMessageDecodingBulkSnappy(t *testing.T) {
- message := Message{}
- testDecodable(t, "bulk snappy", &message, emptyBulkSnappyMessage)
- if message.Codec != CompressionSnappy {
- t.Errorf("Decoding produced codec %d, but expected %d.", message.Codec, CompressionSnappy)
- }
- if message.Key != nil {
- t.Errorf("Decoding produced key %+v, but none was expected.", message.Key)
- }
- if message.Set == nil {
- t.Error("Decoding produced no set, but one was expected.")
- } else if len(message.Set.Messages) != 2 {
- t.Errorf("Decoding produced a set with %d messages, but 2 were expected.", len(message.Set.Messages))
- }
- }
- func TestMessageDecodingBulkGzip(t *testing.T) {
- message := Message{}
- testDecodable(t, "bulk gzip", &message, emptyBulkGzipMessage)
- if message.Codec != CompressionGZIP {
- t.Errorf("Decoding produced codec %d, but expected %d.", message.Codec, CompressionGZIP)
- }
- if message.Key != nil {
- t.Errorf("Decoding produced key %+v, but none was expected.", message.Key)
- }
- if message.Set == nil {
- t.Error("Decoding produced no set, but one was expected.")
- } else if len(message.Set.Messages) != 2 {
- t.Errorf("Decoding produced a set with %d messages, but 2 were expected.", len(message.Set.Messages))
- }
- }
|