@Test(groups = "slow", description = "refresh payment methods") public void testRefreshPaymentMethods() throws Exception { Account account = createAccountWithDefaultPaymentMethod("someExternalKey"); final PaymentMethods paymentMethodsBeforeRefreshing = killBillClient.getPaymentMethodsForAccount(account.getAccountId()); assertEquals(paymentMethodsBeforeRefreshing.size(), 1); assertEquals(paymentMethodsBeforeRefreshing.get(0).getExternalKey(), "someExternalKey"); // WITH NAME OF AN EXISTING PLUGIN killBillClient.refreshPaymentMethods( account.getAccountId(), PLUGIN_NAME, ImmutableMap.<String, String>of(), createdBy, reason, comment); final PaymentMethods paymentMethodsAfterExistingPluginCall = killBillClient.getPaymentMethodsForAccount(account.getAccountId()); assertEquals(paymentMethodsAfterExistingPluginCall.size(), 1); assertEquals(paymentMethodsAfterExistingPluginCall.get(0).getExternalKey(), "someExternalKey"); // WITHOUT PLUGIN NAME killBillClient.refreshPaymentMethods( account.getAccountId(), ImmutableMap.<String, String>of(), createdBy, reason, comment); final PaymentMethods paymentMethodsAfterNoPluginNameCall = killBillClient.getPaymentMethodsForAccount(account.getAccountId()); assertEquals(paymentMethodsAfterNoPluginNameCall.size(), 1); assertEquals(paymentMethodsAfterNoPluginNameCall.get(0).getExternalKey(), "someExternalKey"); // WITH WRONG PLUGIN NAME try { killBillClient.refreshPaymentMethods( account.getAccountId(), "GreatestPluginEver", ImmutableMap.<String, String>of(), createdBy, reason, comment); Assert.fail(); } catch (KillBillClientException e) { Assert.assertEquals( e.getBillingException().getCode(), (Integer) ErrorCode.PAYMENT_NO_SUCH_PAYMENT_PLUGIN.getCode()); } }
@Test(groups = "slow", description = "Verify external key is unique") public void testUniqueExternalKey() throws Exception { // Verify the external key is not mandatory final Account inputWithNoExternalKey = getAccount(UUID.randomUUID().toString(), null, UUID.randomUUID().toString()); Assert.assertNull(inputWithNoExternalKey.getExternalKey()); final Account account = killBillClient.createAccount(inputWithNoExternalKey, createdBy, reason, comment); Assert.assertNotNull(account.getExternalKey()); final Account inputWithSameExternalKey = getAccount( UUID.randomUUID().toString(), account.getExternalKey(), UUID.randomUUID().toString()); try { killBillClient.createAccount(inputWithSameExternalKey, createdBy, reason, comment); Assert.fail(); } catch (final KillBillClientException e) { Assert.assertEquals( e.getBillingException().getCode(), (Integer) ErrorCode.ACCOUNT_ALREADY_EXISTS.getCode()); } }