cwlogsiface_mock_test.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. m.putLogEventsArgument <- input
  40. output := <-m.putLogEventsResult
  41. return output.successResult, output.errorResult
  42. }
  43. type mockmetadataclient struct {
  44. regionResult chan *regionResult
  45. }
  46. type regionResult struct {
  47. successResult string
  48. errorResult error
  49. }
  50. func newMockMetadataClient() *mockmetadataclient {
  51. return &mockmetadataclient{
  52. regionResult: make(chan *regionResult, 1),
  53. }
  54. }
  55. func (m *mockmetadataclient) Region() (string, error) {
  56. output := <-m.regionResult
  57. return output.successResult, output.errorResult
  58. }
  59. func test() {
  60. _ = &logStream{
  61. client: newMockClient(),
  62. }
  63. }