Documentation ¶
Index ¶
- func NoModules(options modules.Options) []modules.Initializer
- type TestResponse
- type TestServer
- func (ts *TestServer) Client() *http.Client
- func (ts *TestServer) Close()
- func (ts *TestServer) MakeFixtureRequest(method string, pathAndQuery string, fixture string) *TestResponse
- func (ts *TestServer) MakeRequest(method string, pathAndQuery string, body []byte) *TestResponse
- func (ts *TestServer) MakeTypedRequest(method string, pathAndQuery string, body any) *TestResponse
- type TestServerClients
- type TestServerMocks
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type TestResponse ¶
type TestResponse struct { Raw *http.Response Body *bytes.Buffer Error *v1.ErrorResponse // contains filtered or unexported fields }
TestResponse is return from requests made against a TestServer. Tests should use the functions defined on TestResponse for valiation.
func (*TestResponse) EqualsErrorCode ¶
func (tr *TestResponse) EqualsErrorCode(statusCode int, code string)
EqualsErrorCode compares a TestResponse against an expected status code and error code. EqualsErrorCode assumes the response uses the ARM error format (required for our APIs).
func (*TestResponse) EqualsFixture ¶
func (tr *TestResponse) EqualsFixture(statusCode int, fixture string)
EqualsFixture compares a TestResponse against an expected status code and body payload. Use the fixture paramter to specify the path to a file.
func (*TestResponse) EqualsResponse ¶
func (tr *TestResponse) EqualsResponse(statusCode int, body []byte)
EqualsFixture compares a TestResponse against an expected status code and body payload.
func (*TestResponse) EqualsStatusCode ¶
func (tr *TestResponse) EqualsStatusCode(statusCode int)
EqualsStatusCode compares a TestResponse against an expected status code (ingnores the body payload).
type TestServer ¶
type TestServer struct { // BaseURL is the base URL of the server, including the path base. BaseURL string // Clients gets access to the clients created by TestServer regardless of whether // they are mocks. Clients *TestServerClients // Mocks gets access to the mock clients. Will be nil if StartWithETCD is used. Mocks *TestServerMocks // Server provides access to the test HTTP server. Server *httptest.Server // contains filtered or unexported fields }
TestServer can run a UCP server using the Go httptest package. It provides access to an isolated ETCD instances for storage of resources and secrets. Alteratively, it can also be used with gomock.
Do not create a TestServer directly, use StartWithETCD or StartWithMocks instead.
func StartWithETCD ¶
func StartWithETCD(t *testing.T, configureModules func(options modules.Options) []modules.Initializer) *TestServer
StartWithETCD creates and starts a new TestServer that used an embedded ETCD instance for storage.
func StartWithMocks ¶
func StartWithMocks(t *testing.T, configureModules func(options modules.Options) []modules.Initializer) *TestServer
StartWithMocks creates and starts a new TestServer that used an mocks for storage.
func (*TestServer) Client ¶
func (ts *TestServer) Client() *http.Client
Client provides access to an http.Client that can be used to send requests. Most tests should use the functionality like MakeRequest instead of testing the client directly.
func (*TestServer) Close ¶
func (ts *TestServer) Close()
Close shuts down the server and will block until shutdown completes.
func (*TestServer) MakeFixtureRequest ¶
func (ts *TestServer) MakeFixtureRequest(method string, pathAndQuery string, fixture string) *TestResponse
MakeFixtureRequest sends a request to the server using a file on disk as the payload (body). Use the fixture parameter to specify the path to a file.
func (*TestServer) MakeRequest ¶
func (ts *TestServer) MakeRequest(method string, pathAndQuery string, body []byte) *TestResponse
MakeRequest sends a request to the server.
func (*TestServer) MakeTypedRequest ¶
func (ts *TestServer) MakeTypedRequest(method string, pathAndQuery string, body any) *TestResponse
MakeTypedRequest sends a request to the server by marshalling the provided object to JSON.
type TestServerClients ¶
type TestServerClients struct { // QueueProvider is the queue client provider. QueueProvider *queueprovider.QueueProvider // SecretProvider is the secret client provider. SecretProvider *secretprovider.SecretProvider // StorageProvider is the storage client provider. StorageProvider dataprovider.DataStorageProvider }
TestServerClients provides access to the clients created by the TestServer.
type TestServerMocks ¶
type TestServerMocks struct { // Secrets is the mock secret client. Secrets *secret.MockClient // Storage is the mock storage client. Storage *store.MockStorageClient }
TestServerMocks provides access to mock instances created by the TestServer.