use of com.braintreepayments.api.models.IdealResult in project braintree_android by braintree.
the class IdealActivity method onBraintreePaymentResult.
@Override
public void onBraintreePaymentResult(BraintreePaymentResult result) {
super.onBraintreePaymentResult(result);
IdealResult idealResult = (IdealResult) result;
if (!mIsPolling && !("COMPLETE".equals(idealResult.getStatus()))) {
try {
Ideal.pollForCompletion(mBraintreeFragment, idealResult.getId(), 1, 1000);
mIsPolling = true;
} catch (InvalidArgumentException e) {
onError(e);
}
} else {
Intent intent = new Intent().putExtra(MainActivity.EXTRA_PAYMENT_RESULT, result);
setResult(Activity.RESULT_OK, intent);
finish();
}
}
use of com.braintreepayments.api.models.IdealResult in project braintree_android by braintree.
the class MainActivity method displayBraintreeResult.
private void displayBraintreeResult(BraintreePaymentResult result) {
if (result instanceof IdealResult) {
IdealResult idealResult = (IdealResult) result;
mNonceString.setText("iDEAL payment id: \n" + idealResult.getId());
mNonceString.setVisibility(VISIBLE);
mNonceDetails.setText("iDEAL payment status: \n" + idealResult.getStatus());
mNonceDetails.setVisibility(VISIBLE);
mCreateTransactionButton.setEnabled(false);
}
}
use of com.braintreepayments.api.models.IdealResult in project braintree_android by braintree.
the class IdealUnitTest method pollForCompletion_pollsUntilMaxRetryCountExceeded.
@Test(timeout = 5000)
public void pollForCompletion_pollsUntilMaxRetryCountExceeded() throws InterruptedException, JSONException, InvalidArgumentException {
Configuration configuration = new TestConfigurationBuilder().ideal(new TestIdealConfigurationBuilder().routeId("some-route-id")).braintreeApi(new TestBraintreeApiConfigurationBuilder().accessToken("access-token").url("http://api.braintree.com")).buildConfiguration();
final BraintreeFragment fragment = new MockFragmentBuilder().authorization(Authorization.fromString(stringFromFixture("client_token.json"))).configuration(configuration).build();
BraintreeApiHttpClient apiHttpClient = mock(BraintreeApiHttpClient.class);
when(fragment.getBraintreeApiHttpClient()).thenReturn(apiHttpClient);
final String resultFixture = stringFromFixture("payment_methods/pending_ideal_bank_payment.json");
final CountDownLatch latch = new CountDownLatch(2);
doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
HttpResponseCallback callback = (HttpResponseCallback) invocation.getArguments()[1];
callback.success(resultFixture);
latch.countDown();
return null;
}
}).when(apiHttpClient).get(eq("/ideal-payments/ideal_payment_id/status"), any(HttpResponseCallback.class));
IdealResult idealResult = IdealResult.fromJson(resultFixture);
putResultIdInPrefs(idealResult.getId());
Ideal.pollForCompletion(fragment, idealResult.getId(), 1, 1000);
// Two retries = three calls to latch.countDown
latch.await();
}
use of com.braintreepayments.api.models.IdealResult in project braintree_android by braintree.
the class IdealUnitTest method onActivityResult_callsExceptionListenerOnNonCompletedOrPendingStatus.
@Test
public void onActivityResult_callsExceptionListenerOnNonCompletedOrPendingStatus() throws InvalidArgumentException, JSONException {
putResultIdInPrefs("ideal_payment_id");
doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
HttpResponseCallback callback = (HttpResponseCallback) invocation.getArguments()[1];
callback.success(stringFromFixture("payment_methods/failed_ideal_bank_payment.json"));
return null;
}
}).when(mMockApiClient).get(eq("/ideal-payments/ideal_payment_id/status"), any(HttpResponseCallback.class));
Ideal.onActivityResult(mBraintreeFragment, Activity.RESULT_OK);
ArgumentCaptor<IdealResult> captor = ArgumentCaptor.forClass(IdealResult.class);
verify(mBraintreeFragment).postCallback(captor.capture());
IdealResult actualBankResult = captor.getValue();
assertEquals("ideal_payment_id", actualBankResult.getId());
assertEquals("short_id", actualBankResult.getShortId());
assertEquals("FAILED", actualBankResult.getStatus());
}
use of com.braintreepayments.api.models.IdealResult in project braintree_android by braintree.
the class IdealUnitTest method onActivityResult_checksPaymentStatusOnceBeforeInvokingCallback.
@Test(timeout = 10000)
public void onActivityResult_checksPaymentStatusOnceBeforeInvokingCallback() throws InvalidArgumentException, JSONException, InterruptedException {
Configuration configuration = new TestConfigurationBuilder().ideal(new TestIdealConfigurationBuilder().routeId("some-route-id")).braintreeApi(new TestBraintreeApiConfigurationBuilder().accessToken("access-token").url("http://api.braintree.com")).buildConfiguration();
final BraintreeFragment fragment = new MockFragmentBuilder().authorization(Authorization.fromString(stringFromFixture("client_token.json"))).configuration(configuration).build();
BraintreeApiHttpClient apiHttpClient = mock(BraintreeApiHttpClient.class);
when(fragment.getBraintreeApiHttpClient()).thenReturn(apiHttpClient);
final String resultFixture = stringFromFixture("payment_methods/pending_ideal_bank_payment.json");
final CountDownLatch latch = new CountDownLatch(1);
doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
HttpResponseCallback callback = (HttpResponseCallback) invocation.getArguments()[1];
callback.success(resultFixture);
latch.countDown();
return null;
}
}).when(apiHttpClient).get(eq("/ideal-payments/ideal_payment_id/status"), any(HttpResponseCallback.class));
IdealResult idealResult = IdealResult.fromJson(resultFixture);
putResultIdInPrefs(idealResult.getId());
Ideal.onActivityResult(fragment, Activity.RESULT_OK);
latch.await();
}
Aggregations