mock.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package mock
  2. import (
  3. "net/http"
  4. "net/http/httptest"
  5. "github.com/aws/aws-sdk-go/aws"
  6. "github.com/aws/aws-sdk-go/aws/client"
  7. "github.com/aws/aws-sdk-go/aws/client/metadata"
  8. "github.com/aws/aws-sdk-go/aws/session"
  9. )
  10. // Session is a mock session which is used to hit the mock server
  11. var Session = session.Must(session.NewSession(&aws.Config{
  12. DisableSSL: aws.Bool(true),
  13. Endpoint: aws.String(server.URL[7:]),
  14. }))
  15. // server is the mock server that simply writes a 200 status back to the client
  16. var server = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  17. w.WriteHeader(http.StatusOK)
  18. }))
  19. // NewMockClient creates and initializes a client that will connect to the
  20. // mock server
  21. func NewMockClient(cfgs ...*aws.Config) *client.Client {
  22. c := Session.ClientConfig("Mock", cfgs...)
  23. svc := client.New(
  24. *c.Config,
  25. metadata.ClientInfo{
  26. ServiceName: "Mock",
  27. SigningRegion: c.SigningRegion,
  28. Endpoint: c.Endpoint,
  29. APIVersion: "2015-12-08",
  30. JSONVersion: "1.1",
  31. TargetPrefix: "MockServer",
  32. },
  33. c.Handlers,
  34. )
  35. return svc
  36. }