cwlogsiface_mock_test.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package awslogs
  2. import "github.com/aws/aws-sdk-go/service/cloudwatchlogs"
  3. type mockcwlogsclient struct {
  4. createLogStreamArgument chan *cloudwatchlogs.CreateLogStreamInput
  5. createLogStreamResult chan *createLogStreamResult
  6. putLogEventsArgument chan *cloudwatchlogs.PutLogEventsInput
  7. putLogEventsResult chan *putLogEventsResult
  8. }
  9. type createLogStreamResult struct {
  10. successResult *cloudwatchlogs.CreateLogStreamOutput
  11. errorResult error
  12. }
  13. type putLogEventsResult struct {
  14. successResult *cloudwatchlogs.PutLogEventsOutput
  15. errorResult error
  16. }
  17. func newMockClient() *mockcwlogsclient {
  18. return &mockcwlogsclient{
  19. createLogStreamArgument: make(chan *cloudwatchlogs.CreateLogStreamInput, 1),
  20. createLogStreamResult: make(chan *createLogStreamResult, 1),
  21. putLogEventsArgument: make(chan *cloudwatchlogs.PutLogEventsInput, 1),
  22. putLogEventsResult: make(chan *putLogEventsResult, 1),
  23. }
  24. }
  25. func newMockClientBuffered(buflen int) *mockcwlogsclient {
  26. return &mockcwlogsclient{
  27. createLogStreamArgument: make(chan *cloudwatchlogs.CreateLogStreamInput, buflen),
  28. createLogStreamResult: make(chan *createLogStreamResult, buflen),
  29. putLogEventsArgument: make(chan *cloudwatchlogs.PutLogEventsInput, buflen),
  30. putLogEventsResult: make(chan *putLogEventsResult, buflen),
  31. }
  32. }
  33. func (m *mockcwlogsclient) CreateLogStream(input *cloudwatchlogs.CreateLogStreamInput) (*cloudwatchlogs.CreateLogStreamOutput, error) {
  34. m.createLogStreamArgument <- input
  35. output := <-m.createLogStreamResult
  36. return output.successResult, output.errorResult
  37. }
  38. func (m *mockcwlogsclient) PutLogEvents(input *cloudwatchlogs.PutLogEventsInput) (*cloudwatchlogs.PutLogEventsOutput, error) {
  39. events := make([]*cloudwatchlogs.InputLogEvent, len(input.LogEvents))
  40. copy(events, input.LogEvents)
  41. m.putLogEventsArgument <- &cloudwatchlogs.PutLogEventsInput{
  42. LogEvents: events,
  43. SequenceToken: input.SequenceToken,
  44. LogGroupName: input.LogGroupName,
  45. LogStreamName: input.LogStreamName,
  46. }
  47. output := <-m.putLogEventsResult
  48. return output.successResult, output.errorResult
  49. }
  50. type mockmetadataclient struct {
  51. regionResult chan *regionResult
  52. }
  53. type regionResult struct {
  54. successResult string
  55. errorResult error
  56. }
  57. func newMockMetadataClient() *mockmetadataclient {
  58. return &mockmetadataclient{
  59. regionResult: make(chan *regionResult, 1),
  60. }
  61. }
  62. func (m *mockmetadataclient) Region() (string, error) {
  63. output := <-m.regionResult
  64. return output.successResult, output.errorResult
  65. }