github.com/fabiokung/docker@v0.11.2-0.20170222101415-4534dcd49497/daemon/logger/awslogs/cwlogsiface_mock_test.go (about) 1 package awslogs 2 3 import "github.com/aws/aws-sdk-go/service/cloudwatchlogs" 4 5 type mockcwlogsclient struct { 6 createLogGroupArgument chan *cloudwatchlogs.CreateLogGroupInput 7 createLogGroupResult chan *createLogGroupResult 8 createLogStreamArgument chan *cloudwatchlogs.CreateLogStreamInput 9 createLogStreamResult chan *createLogStreamResult 10 putLogEventsArgument chan *cloudwatchlogs.PutLogEventsInput 11 putLogEventsResult chan *putLogEventsResult 12 } 13 14 type createLogGroupResult struct { 15 successResult *cloudwatchlogs.CreateLogGroupOutput 16 errorResult error 17 } 18 19 type createLogStreamResult struct { 20 successResult *cloudwatchlogs.CreateLogStreamOutput 21 errorResult error 22 } 23 24 type putLogEventsResult struct { 25 successResult *cloudwatchlogs.PutLogEventsOutput 26 errorResult error 27 } 28 29 func newMockClient() *mockcwlogsclient { 30 return &mockcwlogsclient{ 31 createLogGroupArgument: make(chan *cloudwatchlogs.CreateLogGroupInput, 1), 32 createLogGroupResult: make(chan *createLogGroupResult, 1), 33 createLogStreamArgument: make(chan *cloudwatchlogs.CreateLogStreamInput, 1), 34 createLogStreamResult: make(chan *createLogStreamResult, 1), 35 putLogEventsArgument: make(chan *cloudwatchlogs.PutLogEventsInput, 1), 36 putLogEventsResult: make(chan *putLogEventsResult, 1), 37 } 38 } 39 40 func newMockClientBuffered(buflen int) *mockcwlogsclient { 41 return &mockcwlogsclient{ 42 createLogStreamArgument: make(chan *cloudwatchlogs.CreateLogStreamInput, buflen), 43 createLogStreamResult: make(chan *createLogStreamResult, buflen), 44 putLogEventsArgument: make(chan *cloudwatchlogs.PutLogEventsInput, buflen), 45 putLogEventsResult: make(chan *putLogEventsResult, buflen), 46 } 47 } 48 49 func (m *mockcwlogsclient) CreateLogGroup(input *cloudwatchlogs.CreateLogGroupInput) (*cloudwatchlogs.CreateLogGroupOutput, error) { 50 m.createLogGroupArgument <- input 51 output := <-m.createLogGroupResult 52 return output.successResult, output.errorResult 53 } 54 55 func (m *mockcwlogsclient) CreateLogStream(input *cloudwatchlogs.CreateLogStreamInput) (*cloudwatchlogs.CreateLogStreamOutput, error) { 56 m.createLogStreamArgument <- input 57 output := <-m.createLogStreamResult 58 return output.successResult, output.errorResult 59 } 60 61 func (m *mockcwlogsclient) PutLogEvents(input *cloudwatchlogs.PutLogEventsInput) (*cloudwatchlogs.PutLogEventsOutput, error) { 62 events := make([]*cloudwatchlogs.InputLogEvent, len(input.LogEvents)) 63 copy(events, input.LogEvents) 64 m.putLogEventsArgument <- &cloudwatchlogs.PutLogEventsInput{ 65 LogEvents: events, 66 SequenceToken: input.SequenceToken, 67 LogGroupName: input.LogGroupName, 68 LogStreamName: input.LogStreamName, 69 } 70 output := <-m.putLogEventsResult 71 return output.successResult, output.errorResult 72 } 73 74 type mockmetadataclient struct { 75 regionResult chan *regionResult 76 } 77 78 type regionResult struct { 79 successResult string 80 errorResult error 81 } 82 83 func newMockMetadataClient() *mockmetadataclient { 84 return &mockmetadataclient{ 85 regionResult: make(chan *regionResult, 1), 86 } 87 } 88 89 func (m *mockmetadataclient) Region() (string, error) { 90 output := <-m.regionResult 91 return output.successResult, output.errorResult 92 }