github.com/aavshr/aws-sdk-go@v1.41.3/private/protocol/eventstream/eventstreamapi/shared_test.go (about) 1 package eventstreamapi 2 3 import ( 4 "bytes" 5 "encoding/hex" 6 "time" 7 8 "github.com/aavshr/aws-sdk-go/private/protocol" 9 "github.com/aavshr/aws-sdk-go/private/protocol/eventstream" 10 ) 11 12 type mockChunkSigner struct { 13 signature string 14 err error 15 } 16 17 func (m mockChunkSigner) GetSignature(_, _ []byte, _ time.Time) ([]byte, error) { 18 return mustDecodeBytes(hex.DecodeString(m.signature)), m.err 19 } 20 21 type eventStructured struct { 22 _ struct{} `type:"structure"` 23 24 String *string `type:"string"` 25 Number *int64 `type:"long"` 26 Nested *eventStructured `type:"structure"` 27 } 28 29 func (e *eventStructured) MarshalEvent(pm protocol.PayloadMarshaler) (eventstream.Message, error) { 30 var msg eventstream.Message 31 msg.Headers.Set(MessageTypeHeader, eventstream.StringValue(EventMessageType)) 32 33 var buf bytes.Buffer 34 if err := pm.MarshalPayload(&buf, e); err != nil { 35 return eventstream.Message{}, err 36 } 37 38 msg.Payload = buf.Bytes() 39 40 return msg, nil 41 } 42 43 func (e *eventStructured) UnmarshalEvent(pm protocol.PayloadUnmarshaler, msg eventstream.Message) error { 44 return pm.UnmarshalPayload(bytes.NewReader(msg.Payload), e) 45 } 46 47 func mustDecodeBytes(b []byte, err error) []byte { 48 if err != nil { 49 panic(err) 50 } 51 52 return b 53 } 54 55 func swapTimeNow(f func() time.Time) func() { 56 if f == nil { 57 return func() {} 58 } 59 60 timeNow = f 61 return func() { 62 timeNow = time.Now 63 } 64 }