public void setCustomerObject(Customer c) { this.customer = new ExpandableField<>(c.getId(), c); } // </editor-fold>
public void setCustomerObject(Customer customer) { this.customer = new ExpandableField<>(customer.getId(), customer); } // </editor-fold>
public void setCustomerObject(Customer c) { this.customer = new ExpandableField<>(c.getId(), c); } // </editor-fold>
public void setCustomerObject(Customer c) { this.customer = new ExpandableField<>(c.getId(), c); } // </editor-fold>
public void setCustomerObject(Customer c) { this.customer = new ExpandableField<>(c.getId(), c); } // </editor-fold>
private BankAccount getBankAccountFixture(Customer customer) throws IOException, StripeException { // stripe-mock doesn't handle bank accounts very well just yet, so use a local fixture final BankAccount bankAccount = ApiResource.GSON.fromJson( getResourceAsString("/api_fixtures/bank_account.json"), BankAccount.class); bankAccount.setCustomer(customer.getId()); return bankAccount; }
private Card getCardFixture(Customer customer) throws IOException { // stripe-mock doesn't handle cards very well just yet, so use a local fixture final Card card = ApiResource.GSON.fromJson( getResourceAsString("/api_fixtures/card.json"), Card.class); card.setCustomer(customer.getId()); return card; }
@Override public String storeCreditCard(CreditCard creditCard) throws IOException { // Create the Customer Map<String,Object> customerParams = new HashMap<String,Object>(); addParam(false, customerParams, "card", makeCardParams(creditCard, false)); addCustomerParams(creditCard, false, customerParams); // Make API call try { Customer customer = Customer.create(customerParams, options); return customer.getId(); } catch(StripeException e) { ConvertedError converted = convertError(e); // TODO: Throw ErrorCodeException to provide more details throw new LocalizedIOException(e, accessor, "MerchantServicesProvider.storeCreditCard.notSuccessful"); } }
@Test public void testUpdate() throws StripeException { final Customer customer = getCustomerFixture(); final Map<String, String> metadata = new HashMap<>(); metadata.put("key", "value"); Map<String, Object> params = new HashMap<>(); params.put("metadata", metadata); final Customer updatedCustomer = customer.update(params); assertNotNull(updatedCustomer); verifyRequest( ApiResource.RequestMethod.POST, String.format("/v1/customers/%s", customer.getId()), params ); }
@Test public void testDeleteDiscount() throws StripeException { final Customer customer = getCustomerFixture(); // stripe-mock does not support /v1/customers/%s/discount endpoint, so we stub the request stubRequest( ApiResource.RequestMethod.DELETE, String.format("/v1/customers/%s/discount", customer.getId()), null, void.class, null ); customer.deleteDiscount(); verifyRequest( ApiResource.RequestMethod.DELETE, String.format("/v1/customers/%s/discount", customer.getId()) ); } }
@Test public void testVerify() throws IOException, StripeException { final Customer customer = Customer.retrieve(CUSTOMER_ID); final BankAccount bankAccount = getBankAccountFixture(customer); final List<Integer> values = new ArrayList<>(); values.add(32); values.add(45); final Map<String, Object> params = new HashMap<>(); params.put("amounts", values); final BankAccount verifiedBankAccount = (BankAccount) bankAccount.verify(params); assertNotNull(verifiedBankAccount); verifyRequest( ApiResource.RequestMethod.POST, String.format("/v1/customers/%s/sources/%s/verify", customer.getId(), bankAccount.getId()), params ); } }
@Test public void testUpdate() throws IOException, StripeException { final Customer customer = Customer.retrieve(CUSTOMER_ID); final Card card = getCardFixture(customer); final Map<String, Object> metadata = new HashMap<>(); metadata.put("key", "value"); final Map<String, Object> params = new HashMap<>(); params.put("metadata", metadata); final Card updatedCard = card.update(params); assertNotNull(updatedCard); verifyRequest( ApiResource.RequestMethod.POST, String.format("/v1/customers/%s/sources/%s", customer.getId(), card.getId()), params ); }
@Test public void testCreate() throws IOException, StripeException { final Customer customer = Customer.retrieve(CUSTOMER_ID); final Map<String, Object> params = new HashMap<>(); params.put("source", "btok_123"); // stripe-mock does not always return a Bank Account so we have to mock stubRequest( ApiResource.RequestMethod.POST, String.format("/v1/customers/%s/sources", customer.getId()), params, BankAccount.class, getResourceAsString("/api_fixtures/bank_account.json") ); final BankAccount bankAccount = (BankAccount) customer.getSources().create(params); assertNotNull(bankAccount); verifyRequest( ApiResource.RequestMethod.POST, String.format("/v1/customers/%s/sources", customer.getId()), params ); }
@Test public void testCreate() throws IOException, StripeException { final Customer customer = Customer.retrieve(CUSTOMER_ID); final Map<String, Object> params = new HashMap<>(); params.put("source", "btok_123"); // stripe-mock returns a BankAccount instance instead of a Card stubRequest( ApiResource.RequestMethod.POST, String.format("/v1/customers/%s/sources", customer.getId()), params, Card.class, getResourceAsString("/api_fixtures/card.json") ); final Card card = (Card) customer.getSources().create(params); assertNotNull(card); verifyRequest( ApiResource.RequestMethod.POST, String.format("/v1/customers/%s/sources", customer.getId()), params ); }
@Test public void testRetrieve() throws IOException, StripeException { final Customer customer = Customer.retrieve(CUSTOMER_ID); // stripe-mock returns a BankAccount instance instead of a Card stubRequest( ApiResource.RequestMethod.GET, String.format("/v1/customers/%s/sources/%s", customer.getId(), CARD_ID), null, Card.class, getResourceAsString("/api_fixtures/card.json") ); final Card card = (Card) customer.getSources().retrieve(CARD_ID); assertNotNull(card); verifyRequest( ApiResource.RequestMethod.GET, String.format("/v1/customers/%s/sources/%s", customer.getId(), CARD_ID) ); }
@Test public void testRetrieve() throws IOException, StripeException { final Customer customer = Customer.retrieve(CUSTOMER_ID); // stripe-mock does not always return a Bank Account so we have to mock stubRequest( ApiResource.RequestMethod.GET, String.format("/v1/customers/%s/sources/%s", customer.getId(), BANK_ACCOUNT_ID), null, BankAccount.class, getResourceAsString("/api_fixtures/bank_account.json") ); final BankAccount bankAccount = (BankAccount) customer.getSources().retrieve(BANK_ACCOUNT_ID); assertNotNull(bankAccount); verifyRequest( ApiResource.RequestMethod.GET, String.format("/v1/customers/%s/sources/%s", customer.getId(), BANK_ACCOUNT_ID) ); }
@Test public void testDelete() throws IOException, StripeException { final Customer customer = Customer.retrieve(CUSTOMER_ID); final BankAccount bankAccount = getBankAccountFixture(customer); final String deleteBankAccountData = String.format( "{\"id\": \"%s\", \"object\": \"bank_account\", \"deleted\": true}", bankAccount.getId() ); stubRequest( ApiResource.RequestMethod.DELETE, String.format("/v1/customers/%s/sources/%s", customer.getId(), bankAccount.getId()), null, BankAccount.class, deleteBankAccountData ); final BankAccount deletedBankAccount = bankAccount.delete(); assertNotNull(deletedBankAccount); assertTrue(deletedBankAccount.getDeleted()); verifyRequest( ApiResource.RequestMethod.DELETE, String.format("/v1/customers/%s/sources/%s", customer.getId(), bankAccount.getId()) ); }
@Test public void testDelete() throws StripeException { final Customer customer = getCustomerFixture(); final Customer deletedCustomer = customer.delete(); assertNotNull(deletedCustomer); assertTrue(deletedCustomer.getDeleted()); verifyRequest( ApiResource.RequestMethod.DELETE, String.format("/v1/customers/%s", customer.getId()) ); }
@Test public void testResponseIncluded() throws StripeException { final String idempotencyKey = UUID.randomUUID().toString(); final RequestOptions requestOptions = RequestOptions.builder() .setStripeVersion(Stripe.apiVersion) .setIdempotencyKey(idempotencyKey) .build(); final Customer customer = Customer.create(null, requestOptions); final Customer retrievedCustomer = Customer.retrieve(customer.getId(), requestOptions); final StripeResponse response = retrievedCustomer.getLastResponse(); assertThat(response, instanceOf(StripeResponse.class)); assertEquals(200, response.code()); assertEquals(idempotencyKey, response.idempotencyKey()); assertTrue(response.requestId().startsWith("req_")); assertTrue(response.body().length() > 0); }