1package awslogs 2 3import "github.com/aws/aws-sdk-go/service/cloudwatchlogs" 4 5type 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 14type createLogGroupResult struct { 15 successResult *cloudwatchlogs.CreateLogGroupOutput 16 errorResult error 17} 18 19type createLogStreamResult struct { 20 successResult *cloudwatchlogs.CreateLogStreamOutput 21 errorResult error 22} 23 24type putLogEventsResult struct { 25 successResult *cloudwatchlogs.PutLogEventsOutput 26 errorResult error 27} 28 29func 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 40func 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 49func (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 55func (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 61func (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 74type mockmetadataclient struct { 75 regionResult chan *regionResult 76} 77 78type regionResult struct { 79 successResult string 80 errorResult error 81} 82 83func newMockMetadataClient() *mockmetadataclient { 84 return &mockmetadataclient{ 85 regionResult: make(chan *regionResult, 1), 86 } 87} 88 89func (m *mockmetadataclient) Region() (string, error) { 90 output := <-m.regionResult 91 return output.successResult, output.errorResult 92} 93