@@ -15,6 +15,7 @@ package kafka
1515
1616import (
1717 "fmt"
18+ "strconv"
1819 "testing"
1920 "time"
2021
@@ -389,3 +390,56 @@ func TestMetadataChannelBufferSize(t *testing.T) {
389390 require .NoError (t , err )
390391 require .Equal (t , 128 , meta .channelBufferSize )
391392}
393+
394+ func TestGetEventMetadata (t * testing.T ) {
395+ ts := time .Now ()
396+
397+ t .Run ("no headers" , func (t * testing.T ) {
398+ m := sarama.ConsumerMessage {
399+ Headers : nil , Timestamp : ts , Key : []byte ("MyKey" ), Value : []byte ("MyValue" ), Partition : 0 , Offset : 123 , Topic : "TestTopic" ,
400+ }
401+ act := GetEventMetadata (& m )
402+ require .Len (t , act , 5 )
403+ require .Equal (t , strconv .FormatInt (ts .UnixMilli (), 10 ), act ["__timestamp" ])
404+ require .Equal (t , "MyKey" , act ["__key" ])
405+ require .Equal (t , "0" , act ["__partition" ])
406+ require .Equal (t , "123" , act ["__offset" ])
407+ require .Equal (t , "TestTopic" , act ["__topic" ])
408+ })
409+
410+ t .Run ("with headers" , func (t * testing.T ) {
411+ headers := []* sarama.RecordHeader {
412+ {Key : []byte ("key1" ), Value : []byte ("value1" )},
413+ {Key : []byte ("key2" ), Value : []byte ("value2" )},
414+ }
415+ m := sarama.ConsumerMessage {
416+ Headers : headers , Timestamp : ts , Key : []byte ("MyKey" ), Value : []byte ("MyValue" ), Partition : 0 , Offset : 123 , Topic : "TestTopic" ,
417+ }
418+ act := GetEventMetadata (& m )
419+ require .Len (t , act , 7 )
420+ require .Equal (t , strconv .FormatInt (ts .UnixMilli (), 10 ), act ["__timestamp" ])
421+ require .Equal (t , "MyKey" , act ["__key" ])
422+ require .Equal (t , "0" , act ["__partition" ])
423+ require .Equal (t , "123" , act ["__offset" ])
424+ require .Equal (t , "TestTopic" , act ["__topic" ])
425+ require .Equal (t , "value1" , act ["key1" ])
426+ require .Equal (t , "value2" , act ["key2" ])
427+ })
428+
429+ t .Run ("no key" , func (t * testing.T ) {
430+ m := sarama.ConsumerMessage {
431+ Headers : nil , Timestamp : ts , Key : nil , Value : []byte ("MyValue" ), Partition : 0 , Offset : 123 , Topic : "TestTopic" ,
432+ }
433+ act := GetEventMetadata (& m )
434+ require .Len (t , act , 4 )
435+ require .Equal (t , strconv .FormatInt (ts .UnixMilli (), 10 ), act ["__timestamp" ])
436+ require .Equal (t , "0" , act ["__partition" ])
437+ require .Equal (t , "123" , act ["__offset" ])
438+ require .Equal (t , "TestTopic" , act ["__topic" ])
439+ })
440+
441+ t .Run ("null message" , func (t * testing.T ) {
442+ act := GetEventMetadata (nil )
443+ require .Nil (t , act )
444+ })
445+ }
0 commit comments