func TestUpdateEndpointWhenUrlIsAlreadyTargeted(t *testing.T) { configRepo := testconfig.FakeConfigRepository{} configRepo.Delete() configRepo.Login() ts, repo := createEndpointRepoForUpdate(configRepo, validApiInfoEndpoint) defer ts.Close() org := cf.OrganizationFields{} org.Name = "my-org" org.Guid = "my-org-guid" space := cf.SpaceFields{} space.Name = "my-space" space.Guid = "my-space-guid" config, _ := configRepo.Get() config.Target = ts.URL config.AccessToken = "some access token" config.RefreshToken = "some refresh token" config.OrganizationFields = org config.SpaceFields = space repo.UpdateEndpoint(ts.URL) assert.Equal(t, config.OrganizationFields, org) assert.Equal(t, config.SpaceFields, space) assert.Equal(t, config.AccessToken, "some access token") assert.Equal(t, config.RefreshToken, "some refresh token") }
func TestUpdateEndpointWhenUrlIsValidHttpsInfoEndpoint(t *testing.T) { configRepo := testconfig.FakeConfigRepository{} configRepo.Delete() configRepo.Login() ts, repo := createEndpointRepoForUpdate(configRepo, validApiInfoEndpoint) defer ts.Close() org := cf.OrganizationFields{} org.Name = "my-org" org.Guid = "my-org-guid" space := cf.SpaceFields{} space.Name = "my-space" space.Guid = "my-space-guid" config, _ := configRepo.Get() config.OrganizationFields = org config.SpaceFields = space repo.UpdateEndpoint(ts.URL) savedConfig := testconfig.SavedConfiguration assert.Equal(t, savedConfig.AccessToken, "") assert.Equal(t, savedConfig.AuthorizationEndpoint, "https://login.example.com") assert.Equal(t, savedConfig.Target, ts.URL) assert.Equal(t, savedConfig.ApiVersion, "42.0.0") assert.False(t, savedConfig.HasOrganization()) assert.False(t, savedConfig.HasSpace()) }
func TestUpdateEndpointWhenEndpointReturnsInvalidJson(t *testing.T) { configRepo := testconfig.FakeConfigRepository{} configRepo.Login() ts, repo := createEndpointRepoForUpdate(configRepo, invalidJsonResponseApiEndpoint) defer ts.Close() _, apiResponse := repo.UpdateEndpoint(ts.URL) assert.True(t, apiResponse.IsNotSuccessful()) }
func TestUpdateEndpointWhenEndpointReturns404(t *testing.T) { configRepo := testconfig.FakeConfigRepository{} configRepo.Login() ts, repo := createEndpointRepoForUpdate(configRepo, func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotFound) }) defer ts.Close() _, apiResponse := repo.UpdateEndpoint(ts.URL) assert.True(t, apiResponse.IsNotSuccessful()) }
func TestUpdateEndpointWhenUrlIsMissingSchemeAndHttpsEndpointExists(t *testing.T) { configRepo := testconfig.FakeConfigRepository{} configRepo.Delete() configRepo.Login() ts, repo := createEndpointRepoForUpdate(configRepo, validApiInfoEndpoint) defer ts.Close() schemelessURL := strings.Replace(ts.URL, "https://", "", 1) endpoint, apiResponse := repo.UpdateEndpoint(schemelessURL) assert.Equal(t, "https://"+schemelessURL, endpoint) assert.True(t, apiResponse.IsSuccessful()) savedConfig := testconfig.SavedConfiguration assert.Equal(t, savedConfig.AccessToken, "") assert.Equal(t, savedConfig.AuthorizationEndpoint, "https://login.example.com") assert.Equal(t, savedConfig.Target, ts.URL) assert.Equal(t, savedConfig.ApiVersion, "42.0.0") }