func TestServiceAuthFindByLabelAndProvider(t *testing.T) { req := testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/service_auth_tokens?q=label:a-label;provider:a-provider", Response: testnet.TestResponse{ Status: http.StatusOK, Body: `{"resources": [{ "metadata": { "guid": "mysql-core-guid" }, "entity": { "label": "mysql", "provider": "mysql-core" } }]}`}, }) ts, handler, repo := createServiceAuthTokenRepo(t, req) defer ts.Close() serviceAuthToken, apiResponse := repo.FindByLabelAndProvider("a-label", "a-provider") assert.True(t, handler.AllRequestsCalled()) assert.True(t, apiResponse.IsSuccessful()) authToken2 := cf.ServiceAuthTokenFields{} authToken2.Guid = "mysql-core-guid" authToken2.Label = "mysql" authToken2.Provider = "mysql-core" assert.Equal(t, serviceAuthToken, authToken2) }
func TestUpdateServiceAuthToken(t *testing.T) { foundAuthToken := cf.ServiceAuthTokenFields{} foundAuthToken.Guid = "found-auth-token-guid" foundAuthToken.Label = "found label" foundAuthToken.Provider = "found provider" authTokenRepo := &testapi.FakeAuthTokenRepo{FindByLabelAndProviderServiceAuthTokenFields: foundAuthToken} reqFactory := &testreq.FakeReqFactory{LoginSuccess: true} args := []string{"a label", "a provider", "a value"} ui := callUpdateServiceAuthToken(t, args, reqFactory, authTokenRepo) expectedAuthToken := cf.ServiceAuthTokenFields{} expectedAuthToken.Guid = "found-auth-token-guid" expectedAuthToken.Label = "found label" expectedAuthToken.Provider = "found provider" expectedAuthToken.Token = "a value" testassert.SliceContains(t, ui.Outputs, testassert.Lines{ {"Updating service auth token as", "my-user"}, {"OK"}, }) assert.Equal(t, authTokenRepo.FindByLabelAndProviderLabel, "a label") assert.Equal(t, authTokenRepo.FindByLabelAndProviderProvider, "a provider") assert.Equal(t, authTokenRepo.UpdatedServiceAuthTokenFields, expectedAuthToken) assert.Equal(t, authTokenRepo.UpdatedServiceAuthTokenFields, expectedAuthToken) }
func TestServiceAuthDelete(t *testing.T) { req := testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "DELETE", Path: "/v2/service_auth_tokens/mysql-core-guid", Response: testnet.TestResponse{Status: http.StatusOK}, }) ts, handler, repo := createServiceAuthTokenRepo(t, req) defer ts.Close() authToken4 := cf.ServiceAuthTokenFields{} authToken4.Guid = "mysql-core-guid" apiResponse := repo.Delete(authToken4) assert.True(t, handler.AllRequestsCalled()) assert.True(t, apiResponse.IsSuccessful()) }
func TestCreateServiceAuthToken(t *testing.T) { authTokenRepo := &testapi.FakeAuthTokenRepo{} reqFactory := &testreq.FakeReqFactory{LoginSuccess: true} args := []string{"a label", "a provider", "a value"} ui := callCreateServiceAuthToken(t, args, reqFactory, authTokenRepo) testassert.SliceContains(t, ui.Outputs, testassert.Lines{ {"Creating service auth token as", "my-user"}, {"OK"}, }) authToken := cf.ServiceAuthTokenFields{} authToken.Label = "a label" authToken.Provider = "a provider" authToken.Token = "a value" assert.Equal(t, authTokenRepo.CreatedServiceAuthTokenFields, authToken) }
func TestServiceAuthUpdate(t *testing.T) { req := testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "PUT", Path: "/v2/service_auth_tokens/mysql-core-guid", Matcher: testnet.RequestBodyMatcher(`{"token":"a value"}`), Response: testnet.TestResponse{Status: http.StatusOK}, }) ts, handler, repo := createServiceAuthTokenRepo(t, req) defer ts.Close() authToken3 := cf.ServiceAuthTokenFields{} authToken3.Guid = "mysql-core-guid" authToken3.Token = "a value" apiResponse := repo.Update(authToken3) assert.True(t, handler.AllRequestsCalled()) assert.True(t, apiResponse.IsSuccessful()) }
func TestServiceAuthCreate(t *testing.T) { req := testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "POST", Path: "/v2/service_auth_tokens", Matcher: testnet.RequestBodyMatcher(`{"label":"a label","provider":"a provider","token":"a token"}`), Response: testnet.TestResponse{Status: http.StatusCreated}, }) ts, handler, repo := createServiceAuthTokenRepo(t, req) defer ts.Close() authToken := cf.ServiceAuthTokenFields{} authToken.Label = "a label" authToken.Provider = "a provider" authToken.Token = "a token" apiResponse := repo.Create(authToken) assert.True(t, handler.AllRequestsCalled()) assert.True(t, apiResponse.IsSuccessful()) }
func TestDeleteServiceAuthTokenWithForce(t *testing.T) { expectedToken := cf.ServiceAuthTokenFields{} expectedToken.Label = "a label" expectedToken.Provider = "a provider" authTokenRepo := &testapi.FakeAuthTokenRepo{ FindByLabelAndProviderServiceAuthTokenFields: expectedToken, } reqFactory := &testreq.FakeReqFactory{LoginSuccess: true} args := []string{"-f", "a label", "a provider"} ui := callDeleteServiceAuthToken(t, args, []string{"Y"}, reqFactory, authTokenRepo) assert.Equal(t, len(ui.Prompts), 0) testassert.SliceContains(t, ui.Outputs, testassert.Lines{ {"Deleting"}, {"OK"}, }) assert.Equal(t, authTokenRepo.DeletedServiceAuthTokenFields, expectedToken) }
func TestListServiceAuthTokens(t *testing.T) { reqFactory := &testreq.FakeReqFactory{LoginSuccess: true} authTokenRepo := &testapi.FakeAuthTokenRepo{} authToken := cf.ServiceAuthTokenFields{} authToken.Label = "a label" authToken.Provider = "a provider" authToken2 := cf.ServiceAuthTokenFields{} authToken2.Label = "a second label" authToken2.Provider = "a second provider" authTokenRepo.FindAllAuthTokens = []cf.ServiceAuthTokenFields{authToken, authToken2} ui := callListServiceAuthTokens(t, reqFactory, authTokenRepo) testassert.SliceContains(t, ui.Outputs, testassert.Lines{ {"Getting service auth tokens as", "my-user"}, {"OK"}, {"label", "provider"}, {"a label", "a provider"}, {"a second label", "a second provider"}, }) }