private void finishWithSource(@NonNull Source source) { setCommunicatingProgress(false); Intent intent = new Intent(); intent.putExtra(EXTRA_NEW_SOURCE, source.toString()); setResult(RESULT_OK, intent); finish(); }
@Test public void onActivityResult_withValidSource_refreshesCustomer() { Customer customer = Customer.fromString(CustomerSessionTest.FIRST_TEST_CUSTOMER_OBJECT); when(mCustomerSessionProxy.getCachedCustomer()).thenReturn(customer); mPaymentMethodsActivity.initializeCustomerSourceData(); Source source = Source.fromString(CardInputTestActivity.EXAMPLE_JSON_CARD_SOURCE); assertNotNull(source); Intent resultIntent = new Intent(); resultIntent.putExtra(AddSourceActivity.EXTRA_NEW_SOURCE, source.toString()); ArgumentCaptor<CustomerSession.CustomerRetrievalListener> listenerArgumentCaptor = ArgumentCaptor.forClass(CustomerSession.CustomerRetrievalListener.class); mPaymentMethodsActivity.onActivityResult(REQUEST_CODE_ADD_CARD, RESULT_OK, resultIntent); assertEquals(View.VISIBLE, mProgressBar.getVisibility()); verify(mCustomerSessionProxy).updateCurrentCustomer(listenerArgumentCaptor.capture()); CustomerSession.CustomerRetrievalListener listener = listenerArgumentCaptor.getValue(); assertNotNull(listener); // Note - this doesn't make sense as the actual update; just testing that the customer // changes Customer updatedCustomer = Customer.fromString(TEST_CUSTOMER_OBJECT_WITH_SOURCES); assertNotNull(updatedCustomer); listener.onCustomerRetrieved(updatedCustomer); assertEquals(View.GONE, mProgressBar.getVisibility()); assertEquals(2, mRecyclerView.getAdapter().getItemCount()); }
resultIntent.putExtra(AddSourceActivity.EXTRA_NEW_SOURCE, source.toString());