@Override public void onCustomerRetrieved(@NonNull Customer customer) { mCustomer = customer; finishWithSelection(customer.getDefaultSource()); setCommunicatingProgress(false); }
@Override public void onCustomerRetrieved(@NonNull Customer customer) { String sourceId = customer.getDefaultSource(); if (sourceId == null) { displayError("No payment method selected"); return; } CustomerSource source = customer.getSourceById(sourceId); proceedWithPurchaseIf3DSCheckIsNotNecessary(source.asSource(), customer.getId()); }
void updateCustomer(@NonNull Customer customer) { mCustomerSourceList.clear(); CustomerSource[] customerSources = new CustomerSource[customer.getSources().size()]; addCustomerSourceIfSupported(customer.getSources().toArray(customerSources)); String sourceId = customer.getDefaultSource(); if (sourceId == null) { updateSelectedIndex(NO_SELECTION); } else { setSelectedSource(sourceId); } notifyDataSetChanged(); }
@Override public void onCustomerRetrieved(@NonNull Customer customer) { String paymentId = customer.getDefaultSource(); mPaymentSessionData.setSelectedPaymentMethodId(paymentId); updateIsPaymentReadyToCharge(mPaymentSessionConfig, mPaymentSessionData); if (mPaymentSessionListener != null) { mPaymentSessionListener .onPaymentSessionDataChanged(mPaymentSessionData); mPaymentSessionListener.onCommunicatingStateChanged(false); } }
if (!TextUtils.isEmpty(customer.getDefaultSource()) || customer.getSources().size() != 1) { updateAdapterWithCustomer(customer); return;
private void createListFromCustomerSources() { setCommunicatingProgress(false); if (mCustomer == null) { return; } List<CustomerSource> customerSourceList = mCustomer.getSources(); if (!mRecyclerViewUpdated) { mMaskedCardAdapter = new MaskedCardAdapter(customerSourceList); // init the RecyclerView RecyclerView.LayoutManager linearLayoutManager = new LinearLayoutManager(this); mRecyclerView.setHasFixedSize(false); mRecyclerView.setLayoutManager(linearLayoutManager); mRecyclerView.setAdapter(mMaskedCardAdapter); mRecyclerViewUpdated = true; } else { mMaskedCardAdapter.setCustomerSourceList(customerSourceList); } String defaultSource = mCustomer.getDefaultSource(); if (!TextUtils.isEmpty(defaultSource)) { mMaskedCardAdapter.setSelectedSource(defaultSource); } mMaskedCardAdapter.notifyDataSetChanged(); }
Customer customer = Customer.fromString(TEST_CUSTOMER_OBJECT_WITH_SOURCES); assertNotNull(customer); assertNotNull(customer.getDefaultSource()); List<CustomerSource> sourceList = customer.getSources(); assertEquals(customer.getDefaultSource(), sourceList.get(0).getId()); listenerArgumentCaptor.capture()); assertEquals(customer.getDefaultSource(), selectionArgumentCaptor.getValue()); CustomerSession.CustomerRetrievalListener listener = listenerArgumentCaptor.getValue(); assertNotNull(listener); assertNotNull(intent); CustomerSource customerSource = customer.getSourceById(customer.getDefaultSource()); assertNotNull(customerSource); assertEquals(customerSource.toString(), intent.getStringExtra(EXTRA_SELECTED_PAYMENT));
@Test public void updateCustomer_removesExistingSourcesAndAddsAllCustomerSources() { CustomerSource cardSource = CustomerSource.fromString(CardInputTestActivity.EXAMPLE_JSON_CARD_SOURCE_SECOND); mMaskedCardAdapter.addCustomerSourceIfSupported(cardSource); assertEquals(1, mMaskedCardAdapter.getItemCount()); assertNull(mMaskedCardAdapter.getSelectedSource()); Customer customer = Customer.fromString(PaymentMethodsActivityTest.TEST_CUSTOMER_OBJECT_WITH_SOURCES); assertNotNull(customer); mMaskedCardAdapter.updateCustomer(customer); assertEquals(2, mMaskedCardAdapter.getItemCount()); assertNotNull(mMaskedCardAdapter.getSelectedSource()); assertEquals(customer.getDefaultSource(), mMaskedCardAdapter.getSelectedSource().getId()); verify(mAdapterDataObserver, times(4)).onChanged(); }
@Test public void fromJson_whenCustomer_returnsExpectedCustomer() { Customer customer = Customer.fromString(TEST_CUSTOMER_OBJECT); assertNotNull(customer); assertEquals("cus_AQsHpvKfKwJDrF", customer.getId()); assertEquals("abc123", customer.getDefaultSource()); assertNull(customer.getShippingInformation()); assertNotNull(customer.getSources()); assertEquals("/v1/customers/cus_AQsHpvKfKwJDrF/sources", customer.getUrl()); assertFalse(customer.getHasMore()); assertEquals(Integer.valueOf(0), customer.getTotalCount()); }