github.com/segmentio/kafka-go@v0.4.48-0.20240318174348-3f6244eb34fd/protocol/consumer/consumer_test.go (about) 1 package consumer_test 2 3 import ( 4 "reflect" 5 "testing" 6 7 "github.com/segmentio/kafka-go/protocol" 8 "github.com/segmentio/kafka-go/protocol/consumer" 9 ) 10 11 func TestSubscription(t *testing.T) { 12 subscription := consumer.Subscription{ 13 Topics: []string{"topic-1", "topic-2"}, 14 UserData: []byte("user-data"), 15 OwnedPartitions: []consumer.TopicPartition{ 16 { 17 Topic: "topic-1", 18 Partitions: []int32{1, 2, 3}, 19 }, 20 }, 21 } 22 23 for _, version := range []int16{1, 0} { 24 if version == 0 { 25 subscription.OwnedPartitions = nil 26 } 27 data, err := protocol.Marshal(version, subscription) 28 if err != nil { 29 t.Fatal(err) 30 } 31 var gotSubscription consumer.Subscription 32 err = protocol.Unmarshal(data, version, &gotSubscription) 33 if err != nil { 34 t.Fatal(err) 35 } 36 if !reflect.DeepEqual(subscription, gotSubscription) { 37 t.Fatalf("unexpected result after marshal/unmarshal \nexpected\n %#v\ngot\n %#v", subscription, gotSubscription) 38 } 39 } 40 }