@@ -16,6 +16,7 @@ package kafka
1616import (
1717 "fmt"
1818 "net/url"
19+ "regexp"
1920 "strconv"
2021 "testing"
2122 "time"
@@ -513,7 +514,11 @@ func TestGetEventMetadata(t *testing.T) {
513514 m := sarama.ConsumerMessage {
514515 Headers : nil , Timestamp : ts , Key : []byte ("MyKey" ), Value : []byte ("MyValue" ), Partition : 0 , Offset : 123 , Topic : "TestTopic" ,
515516 }
516- act := GetEventMetadata (& m , false )
517+ k := Kafka {
518+ escapeHeaders : false ,
519+ logger : logger .NewLogger ("kafka_test" ),
520+ }
521+ act := GetEventMetadata (& m , & k )
517522 require .Len (t , act , 5 )
518523 require .Equal (t , strconv .FormatInt (ts .UnixMilli (), 10 ), act ["__timestamp" ])
519524 require .Equal (t , "MyKey" , act ["__key" ])
@@ -530,7 +535,11 @@ func TestGetEventMetadata(t *testing.T) {
530535 m := sarama.ConsumerMessage {
531536 Headers : headers , Timestamp : ts , Key : []byte ("MyKey" ), Value : []byte ("MyValue" ), Partition : 0 , Offset : 123 , Topic : "TestTopic" ,
532537 }
533- act := GetEventMetadata (& m , false )
538+ k := Kafka {
539+ escapeHeaders : false ,
540+ logger : logger .NewLogger ("kafka_test" ),
541+ }
542+ act := GetEventMetadata (& m , & k )
534543 require .Len (t , act , 7 )
535544 require .Equal (t , strconv .FormatInt (ts .UnixMilli (), 10 ), act ["__timestamp" ])
536545 require .Equal (t , "MyKey" , act ["__key" ])
@@ -545,7 +554,11 @@ func TestGetEventMetadata(t *testing.T) {
545554 m := sarama.ConsumerMessage {
546555 Headers : nil , Timestamp : ts , Key : nil , Value : []byte ("MyValue" ), Partition : 0 , Offset : 123 , Topic : "TestTopic" ,
547556 }
548- act := GetEventMetadata (& m , false )
557+ k := Kafka {
558+ escapeHeaders : false ,
559+ logger : logger .NewLogger ("kafka_test" ),
560+ }
561+ act := GetEventMetadata (& m , & k )
549562 require .Len (t , act , 4 )
550563 require .Equal (t , strconv .FormatInt (ts .UnixMilli (), 10 ), act ["__timestamp" ])
551564 require .Equal (t , "0" , act ["__partition" ])
@@ -554,7 +567,11 @@ func TestGetEventMetadata(t *testing.T) {
554567 })
555568
556569 t .Run ("null message" , func (t * testing.T ) {
557- act := GetEventMetadata (nil , false )
570+ k := Kafka {
571+ escapeHeaders : false ,
572+ logger : logger .NewLogger ("kafka_test" ),
573+ }
574+ act := GetEventMetadata (nil , & k )
558575 require .Nil (t , act )
559576 })
560577
@@ -565,7 +582,11 @@ func TestGetEventMetadata(t *testing.T) {
565582 m := sarama.ConsumerMessage {
566583 Headers : nil , Timestamp : ts , Key : []byte (keyValue ), Value : []byte ("MyValue" ), Partition : 0 , Offset : 123 , Topic : "TestTopic" ,
567584 }
568- act := GetEventMetadata (& m , true )
585+ k := Kafka {
586+ escapeHeaders : true ,
587+ logger : logger .NewLogger ("kafka_test" ),
588+ }
589+ act := GetEventMetadata (& m , & k )
569590 require .Equal (t , escapedKeyValue , act [keyMetadataKey ])
570591 })
571592
@@ -575,7 +596,11 @@ func TestGetEventMetadata(t *testing.T) {
575596 m := sarama.ConsumerMessage {
576597 Headers : nil , Timestamp : ts , Key : []byte (keyValue ), Value : []byte ("MyValue" ), Partition : 0 , Offset : 123 , Topic : "TestTopic" ,
577598 }
578- act := GetEventMetadata (& m , false )
599+ k := Kafka {
600+ escapeHeaders : false ,
601+ logger : logger .NewLogger ("kafka_test" ),
602+ }
603+ act := GetEventMetadata (& m , & k )
579604 require .Equal (t , keyValue , act [keyMetadataKey ])
580605 })
581606
@@ -590,7 +615,11 @@ func TestGetEventMetadata(t *testing.T) {
590615 m := sarama.ConsumerMessage {
591616 Headers : headers , Timestamp : ts , Key : []byte ("MyKey" ), Value : []byte ("MyValue" ), Partition : 0 , Offset : 123 , Topic : "TestTopic" ,
592617 }
593- act := GetEventMetadata (& m , true )
618+ k := Kafka {
619+ escapeHeaders : true ,
620+ logger : logger .NewLogger ("kafka_test" ),
621+ }
622+ act := GetEventMetadata (& m , & k )
594623 require .Len (t , act , 6 )
595624 require .Equal (t , escapedHeaderValue , act [headerKey ])
596625 })
@@ -605,8 +634,50 @@ func TestGetEventMetadata(t *testing.T) {
605634 m := sarama.ConsumerMessage {
606635 Headers : headers , Timestamp : ts , Key : []byte ("MyKey" ), Value : []byte ("MyValue" ), Partition : 0 , Offset : 123 , Topic : "TestTopic" ,
607636 }
608- act := GetEventMetadata (& m , false )
637+ k := Kafka {
638+ escapeHeaders : false ,
639+ logger : logger .NewLogger ("kafka_test" ),
640+ }
641+ act := GetEventMetadata (& m , & k )
609642 require .Len (t , act , 6 )
610643 require .Equal (t , headerValue , act [headerKey ])
611644 })
645+
646+ t .Run ("header with excluded key gets removed from metadata" , func (t * testing.T ) {
647+ headers := []* sarama.RecordHeader {
648+ {Key : []byte ("valueSchemaType" ), Value : []byte ("Avro" )},
649+ {Key : []byte ("rawPayload" ), Value : []byte ("true" )},
650+ }
651+ k := Kafka {
652+ escapeHeaders : false ,
653+ excludeHeaderMetaRegex : regexp .MustCompile ("^valueSchemaType$" ),
654+ logger : logger .NewLogger ("kafka_test" ),
655+ }
656+ m := sarama.ConsumerMessage {
657+ Headers : headers , Timestamp : ts , Key : []byte ("MyKey" ), Value : []byte ("MyValue" ), Partition : 0 , Offset : 123 , Topic : "TestTopic" ,
658+ }
659+ act := GetEventMetadata (& m , & k )
660+ require .Len (t , act , 6 )
661+ require .NotContains (t , act , "valueSchemaType" )
662+ require .Contains (t , act , "rawPayload" )
663+ })
664+
665+ t .Run ("header with excluded multiple keys gets removed from metadata" , func (t * testing.T ) {
666+ headers := []* sarama.RecordHeader {
667+ {Key : []byte ("valueSchemaType" ), Value : []byte ("Avro" )},
668+ {Key : []byte ("rawPayload" ), Value : []byte ("true" )},
669+ }
670+ k := Kafka {
671+ escapeHeaders : false ,
672+ excludeHeaderMetaRegex : regexp .MustCompile ("^valueSchemaType|rawPayload$" ),
673+ logger : logger .NewLogger ("kafka_test" ),
674+ }
675+ m := sarama.ConsumerMessage {
676+ Headers : headers , Timestamp : ts , Key : []byte ("MyKey" ), Value : []byte ("MyValue" ), Partition : 0 , Offset : 123 , Topic : "TestTopic" ,
677+ }
678+ act := GetEventMetadata (& m , & k )
679+ require .Len (t , act , 5 )
680+ require .NotContains (t , act , "valueSchemaType" )
681+ require .NotContains (t , act , "rawPayload" )
682+ })
612683}
0 commit comments