func TestProviderListProvider(t *testing.T) { prov1 := new(test.TestProvider) prov2 := new(test.TestProvider) prov1.On("Name").Return("prov1") prov2.On("Name").Return("prov2") // build a list list := WithProviders(prov1, prov2) returnedProv, err := list.Provider("prov1") if assert.NoError(t, err) { assert.Equal(t, returnedProv, prov1) } // check nonsense name returnedProv, err = list.Provider("no such provider") if assert.Nil(t, returnedProv) { assert.IsType(t, &common.MissingProviderError{}, err, "MissingProviderError expected") } mock.AssertExpectationsForObjects(t, prov1.Mock, prov2.Mock) }
func TestOAuth2Provider_Non200Response(t *testing.T) { config := &common.Config{ Map: objx.MSI( OAuth2KeyRedirectUrl, OAuth2KeyRedirectUrl, OAuth2KeyScope, OAuth2KeyScope, OAuth2KeyClientID, OAuth2KeyClientID, OAuth2KeySecret, OAuth2KeySecret, OAuth2KeyAuthURL, OAuth2KeyAuthURL, OAuth2KeyTokenURL, OAuth2KeyTokenURL)} testTripperFactory := new(test.TestTripperFactory) testTripper := new(test.TestTripper) testProvider := new(test.TestProvider) testResponse := new(http.Response) testResponse.Header = make(http.Header) testResponse.Header.Set("Content-Type", "text/plain") testResponse.StatusCode = 401 testResponse.Body = ioutil.NopCloser(strings.NewReader("No mate")) testTripperFactory.On("NewTripper", common.EmptyCredentials, mock.Anything).Return(testTripper, nil) testTripper.On("RoundTrip", mock.Anything).Return(testResponse, nil) data := objx.MSI(OAuth2KeyCode, []string{"123"}) _, err := CompleteAuth(testTripperFactory, data, config, testProvider) if assert.Error(t, err) { assert.IsType(t, &common.AuthServerError{}, err) } mock.AssertExpectationsForObjects(t, testTripperFactory.Mock, testTripper.Mock, testProvider.Mock) }