@Test public void shouldAcquireOAuth1Credentials() { final OAuth1ConnectionFactory<?> oauth1 = mock(OAuth1ConnectionFactory.class); @SuppressWarnings("unchecked") final Applicator<OAuthToken> applicator = mock(Applicator.class); when(locator.providerWithId("providerId")) .thenReturn(new OAuth1CredentialProvider<>("providerId", oauth1, applicator)); final OAuth1Operations operations = mock(OAuth1Operations.class); when(oauth1.getOAuthOperations()).thenReturn(operations); when(operations.getVersion()).thenReturn(OAuth1Version.CORE_10); final OAuthToken token = new OAuthToken("value", "secret"); when(operations.fetchRequestToken(null, null)).thenReturn(token); final ArgumentCaptor<OAuth1Parameters> parameters = ArgumentCaptor.forClass(OAuth1Parameters.class); when(operations.buildAuthorizeUrl(eq("value"), parameters.capture())) .thenReturn("https://provider.io/oauth/authorize"); final AcquisitionFlow acquisition = credentials.acquire("providerId", URI.create("https://syndesis.io/api/v1/"), URI.create("/ui#state")); final CredentialFlowState expectedFlowState = new OAuth1CredentialFlowState.Builder().providerId("providerId") .redirectUrl("https://provider.io/oauth/authorize").returnUrl(URI.create("/ui#state")).token(token).build(); final AcquisitionFlow expected = new AcquisitionFlow.Builder().type(Type.OAUTH1) .redirectUrl("https://provider.io/oauth/authorize").state(expectedFlowState).build(); assertThat(acquisition).isEqualToIgnoringGivenFields(expected, "state"); final Optional<CredentialFlowState> maybeState = acquisition.state(); assertThat(maybeState).isPresent(); final CredentialFlowState state = maybeState.get(); assertThat(state).isEqualToIgnoringGivenFields(expectedFlowState, "key"); assertThat(state.getKey()).isNotNull(); final OAuth1Parameters oAuth1Parameters = parameters.getValue(); assertThat(oAuth1Parameters.getCallbackUrl()).isEqualTo("https://syndesis.io/api/v1/credentials/callback"); }
assertThat(oAuth1Parameters.getCallbackUrl()).isNull();