cwlogsiface_mock_test.go 3.1 KB

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