github.com/aavshr/aws-sdk-go@v1.41.3/private/protocol/eventstream/encode_test.go (about) 1 package eventstream 2 3 import ( 4 "bytes" 5 "encoding/hex" 6 "reflect" 7 "testing" 8 ) 9 10 func TestEncoder_Encode(t *testing.T) { 11 cases, err := readPositiveTests("testdata") 12 if err != nil { 13 t.Fatalf("failed to load positive tests, %v", err) 14 } 15 16 for _, c := range cases { 17 var w bytes.Buffer 18 encoder := NewEncoder(&w) 19 20 err = encoder.Encode(c.Decoded.Message()) 21 if err != nil { 22 t.Fatalf("%s, failed to encode message, %v", c.Name, err) 23 } 24 25 if e, a := c.Encoded, w.Bytes(); !reflect.DeepEqual(e, a) { 26 t.Errorf("%s, expect:\n%v\nactual:\n%v\n", c.Name, 27 hex.Dump(e), hex.Dump(a)) 28 } 29 } 30 } 31 32 func BenchmarkEncode(b *testing.B) { 33 var w bytes.Buffer 34 encoder := NewEncoder(&w) 35 msg := Message{ 36 Headers: Headers{ 37 {Name: "event-id", Value: Int16Value(123)}, 38 }, 39 Payload: []byte(`{"abc":123}`), 40 } 41 42 b.ResetTimer() 43 44 for i := 0; i < b.N; i++ { 45 err := encoder.Encode(msg) 46 if err != nil { 47 b.Fatal(err) 48 } 49 } 50 }