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  }