Пример #1
0
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)
}
Пример #2
0
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)
}
Пример #3
0
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())
}
Пример #4
0
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)
}
Пример #5
0
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())
}
Пример #6
0
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())
}
Пример #7
0
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)
}
Пример #8
0
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"},
	})
}