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  }