Details
diff --git a/api/src/main/java/com/ning/billing/invoice/api/InvoiceUserApi.java b/api/src/main/java/com/ning/billing/invoice/api/InvoiceUserApi.java
index 94b28e5..d826d5c 100644
--- a/api/src/main/java/com/ning/billing/invoice/api/InvoiceUserApi.java
+++ b/api/src/main/java/com/ning/billing/invoice/api/InvoiceUserApi.java
@@ -33,11 +33,6 @@ public interface InvoiceUserApi {
public void notifyOfPaymentAttempt(InvoicePayment invoicePayment);
-// public void paymentAttemptFailed(UUID invoiceId, UUID paymentId, DateTime paymentAttemptDate);
-//
-// public void paymentAttemptSuccessful(UUID invoiceId, BigDecimal amount, Currency currency,
-// UUID paymentId, DateTime paymentDate);
-
public BigDecimal getAccountBalance(UUID accountId);
}
diff --git a/api/src/main/java/com/ning/billing/payment/api/CreditCardPaymentMethodInfo.java b/api/src/main/java/com/ning/billing/payment/api/CreditCardPaymentMethodInfo.java
index 6f767ff..a9e25dc 100644
--- a/api/src/main/java/com/ning/billing/payment/api/CreditCardPaymentMethodInfo.java
+++ b/api/src/main/java/com/ning/billing/payment/api/CreditCardPaymentMethodInfo.java
@@ -36,6 +36,16 @@ public final class CreditCardPaymentMethodInfo extends PaymentMethodInfo {
public Builder(CreditCardPaymentMethodInfo src) {
super(Builder.class, src);
+ this.cardHolderName = src.cardHolderName;
+ this.cardType = src.cardType;
+ this.expirationDate = src.expirationDate;
+ this.cardAddress1 = src.cardAddress1;
+ this.cardAddress2 = src.cardAddress2;
+ this.cardCity = src.cardCity;
+ this.cardState = src.cardState;
+ this.cardPostalCode = src.cardPostalCode;
+ this.cardCountry = src.cardCountry;
+ this.maskNumber = src.maskNumber;
}
public Builder setCardHolderName(String cardHolderName) {
diff --git a/api/src/main/java/com/ning/billing/payment/api/PaymentApi.java b/api/src/main/java/com/ning/billing/payment/api/PaymentApi.java
index be1f649..189e87c 100644
--- a/api/src/main/java/com/ning/billing/payment/api/PaymentApi.java
+++ b/api/src/main/java/com/ning/billing/payment/api/PaymentApi.java
@@ -45,7 +45,7 @@ public interface PaymentApi {
Either<PaymentError, String> createPaymentProviderAccount(Account account);
- Either<PaymentError, Void> updatePaymentProviderAccount(Account account);
+ Either<PaymentError, Void> updatePaymentProviderAccountContact(Account account);
PaymentAttempt getPaymentAttemptForPaymentId(String id);
diff --git a/api/src/main/java/com/ning/billing/payment/api/PaymentProviderAccount.java b/api/src/main/java/com/ning/billing/payment/api/PaymentProviderAccount.java
index 553d6a2..47cad39 100644
--- a/api/src/main/java/com/ning/billing/payment/api/PaymentProviderAccount.java
+++ b/api/src/main/java/com/ning/billing/payment/api/PaymentProviderAccount.java
@@ -20,18 +20,18 @@ import com.google.common.base.Objects;
public class PaymentProviderAccount {
private final String id;
- private final String accountNumber;
+ private final String accountKey;
private final String accountName;
private final String phoneNumber;
private final String defaultPaymentMethodId;
public PaymentProviderAccount(String id,
- String accountNumber,
+ String accountKey,
String accountName,
String phoneNumber,
String defaultPaymentMethodId) {
this.id = id;
- this.accountNumber = accountNumber;
+ this.accountKey = accountKey;
this.accountName = accountName;
this.phoneNumber = phoneNumber;
this.defaultPaymentMethodId = defaultPaymentMethodId;
@@ -41,8 +41,8 @@ public class PaymentProviderAccount {
return id;
}
- public String getAccountNumber() {
- return accountNumber;
+ public String getAccountKey() {
+ return accountKey;
}
public String getAccountName() {
@@ -59,18 +59,27 @@ public class PaymentProviderAccount {
public static class Builder {
private String id;
- private String accountNumber;
+ private String accountKey;
private String accountName;
private String phoneNumber;
private String defaultPaymentMethodId;
+ public Builder copyFrom(PaymentProviderAccount src) {
+ this.id = src.getId();
+ this.accountKey = src.getAccountKey();
+ this.accountName = src.getAccountName();
+ this.phoneNumber = src.getPhoneNumber();
+ this.defaultPaymentMethodId = src.getDefaultPaymentMethodId();
+ return this;
+ }
+
public Builder setId(String id) {
this.id = id;
return this;
}
- public Builder setAccountNumber(String accountNumber) {
- this.accountNumber = accountNumber;
+ public Builder setAccountKey(String accountKey) {
+ this.accountKey = accountKey;
return this;
}
@@ -90,7 +99,7 @@ public class PaymentProviderAccount {
}
public PaymentProviderAccount build() {
- return new PaymentProviderAccount(id, accountNumber, accountName, phoneNumber, defaultPaymentMethodId);
+ return new PaymentProviderAccount(id, accountKey, accountName, phoneNumber, defaultPaymentMethodId);
}
}
@@ -98,7 +107,7 @@ public class PaymentProviderAccount {
@Override
public int hashCode() {
return Objects.hashCode(id,
- accountNumber,
+ accountKey,
accountName,
phoneNumber,
defaultPaymentMethodId);
@@ -113,7 +122,8 @@ public class PaymentProviderAccount {
}
else {
return Objects.equal(id, other.id) &&
- Objects.equal(accountNumber, other.accountNumber) &&
+ Objects.equal(accountKey, other.accountKey) &&
+ Objects.equal(accountName, other.accountName) &&
Objects.equal(phoneNumber, other.phoneNumber) &&
Objects.equal(defaultPaymentMethodId, other.defaultPaymentMethodId);
}
@@ -121,4 +131,9 @@ public class PaymentProviderAccount {
return false;
}
+ @Override
+ public String toString() {
+ return "PaymentProviderAccount [id=" + id + ", accountKey=" + accountKey + ", accountName=" + accountName + ", phoneNumber=" + phoneNumber + ", defaultPaymentMethodId=" + defaultPaymentMethodId + "]";
+ }
+
}
diff --git a/api/src/main/java/com/ning/billing/payment/api/PaypalPaymentMethodInfo.java b/api/src/main/java/com/ning/billing/payment/api/PaypalPaymentMethodInfo.java
index 8b94f15..0977071 100644
--- a/api/src/main/java/com/ning/billing/payment/api/PaypalPaymentMethodInfo.java
+++ b/api/src/main/java/com/ning/billing/payment/api/PaypalPaymentMethodInfo.java
@@ -32,6 +32,8 @@ public final class PaypalPaymentMethodInfo extends PaymentMethodInfo {
public Builder(PaypalPaymentMethodInfo src) {
super(Builder.class, src);
+ this.baid = src.baid;
+ this.email = src.email;
}
public Builder setBaid(String baid) {
@@ -59,8 +61,8 @@ public final class PaypalPaymentMethodInfo extends PaymentMethodInfo {
String email) {
super(id, accountId, defaultMethod, TYPE);
- if (Strings.isNullOrEmpty(accountId) || Strings.isNullOrEmpty(baid) || Strings.isNullOrEmpty(email)) {
- throw new IllegalArgumentException("accountId, baid and email should be present");
+ if (Strings.isNullOrEmpty(baid) || Strings.isNullOrEmpty(email)) {
+ throw new IllegalArgumentException("baid and email should be present");
}
this.baid = baid;
@@ -74,4 +76,10 @@ public final class PaypalPaymentMethodInfo extends PaymentMethodInfo {
public String getEmail() {
return email;
}
+
+ @Override
+ public String toString() {
+ return "PaypalPaymentMethodInfo [baid=" + baid + ", email=" + email + "]";
+ }
+
}
diff --git a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
index 74ad7f1..e89e799 100644
--- a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
+++ b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
@@ -179,9 +179,9 @@ public class DefaultPaymentApi implements PaymentApi {
}
@Override
- public Either<PaymentError, Void> updatePaymentProviderAccount(Account account) {
+ public Either<PaymentError, Void> updatePaymentProviderAccountContact(Account account) {
final PaymentProviderPlugin plugin = getPaymentProviderPlugin(account);
- return plugin.updatePaymentProviderAccountWithExistingContact(account);
+ return plugin.updatePaymentProviderAccountExistingContact(account);
}
@Override
diff --git a/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPlugin.java b/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPlugin.java
index e1bc1c3..7a9ae71 100644
--- a/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPlugin.java
+++ b/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPlugin.java
@@ -40,7 +40,7 @@ public interface PaymentProviderPlugin {
Either<PaymentError, PaymentMethodInfo> updatePaymentMethod(String accountKey, PaymentMethodInfo paymentMethodInfo);
Either<PaymentError, Void> deletePaymentMethod(String accountKey, String paymentMethodId);
- Either<PaymentError, Void> updatePaymentProviderAccountWithExistingContact(Account account);
+ Either<PaymentError, Void> updatePaymentProviderAccountExistingContact(Account account);
Either<PaymentError, Void> updatePaymentProviderAccountWithNewContact(Account account);
}
diff --git a/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java b/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java
index a1b02b3..c756963 100644
--- a/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java
+++ b/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java
@@ -25,7 +25,9 @@ import java.util.Arrays;
import java.util.List;
import java.util.UUID;
+import org.apache.commons.lang.RandomStringUtils;
import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -33,6 +35,7 @@ import org.testng.annotations.Test;
import com.google.inject.Inject;
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.AccountApiException;
+import com.ning.billing.account.api.user.AccountBuilder;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.model.DefaultInvoiceItem;
@@ -58,10 +61,9 @@ public abstract class TestPaymentApi {
eventBus.stop();
}
-// @Test(groups = "fast")
@Test
public void testCreatePayment() throws AccountApiException {
- final DateTime now = new DateTime();
+ final DateTime now = new DateTime(DateTimeZone.UTC);
final Account account = testHelper.createTestAccount();
final Invoice invoice = testHelper.createTestInvoice(account, now, Currency.USD);
final BigDecimal amount = new BigDecimal("10.00");
@@ -84,6 +86,113 @@ public abstract class TestPaymentApi {
PaymentInfo paymentInfo = results.get(0).getRight();
assertNotNull(paymentInfo.getPaymentId());
- assertEquals(paymentInfo.getAmount().doubleValue(), amount.doubleValue());
+ assertTrue(paymentInfo.getAmount().compareTo(amount) == 0);
+ assertNotNull(paymentInfo.getPaymentNumber());
+
+ PaymentAttempt paymentAttempt = paymentApi.getPaymentAttemptForPaymentId(paymentInfo.getPaymentId());
+ assertNotNull(paymentAttempt);
+ assertNotNull(paymentAttempt.getPaymentAttemptId());
+ assertEquals(paymentAttempt.getInvoiceId(), invoice.getId());
+ assertTrue(paymentAttempt.getAmount().compareTo(amount) == 0);
+ assertEquals(paymentAttempt.getCurrency(), Currency.USD);
+ assertEquals(paymentAttempt.getPaymentId(), paymentInfo.getPaymentId());
+ assertEquals(paymentAttempt.getPaymentAttemptDate().withMillisOfSecond(0), now.withMillisOfSecond(0));
+
+ }
+
+ private PaymentProviderAccount setupAccountWithPaymentMethod() throws AccountApiException {
+ final Account account = testHelper.createTestAccount();
+ paymentApi.createPaymentProviderAccount(account);
+
+ String accountKey = account.getExternalKey();
+
+ PaypalPaymentMethodInfo paymentMethod = new PaypalPaymentMethodInfo.Builder()
+ .setBaid("12345")
+ .setEmail(account.getEmail())
+ .setDefaultMethod(true)
+ .build();
+ Either<PaymentError, String> paymentMethodIdOrError = paymentApi.addPaymentMethod(accountKey, paymentMethod);
+
+ assertTrue(paymentMethodIdOrError.isRight());
+ assertNotNull(paymentMethodIdOrError.getRight());
+
+ Either<PaymentError, PaymentMethodInfo> paymentMethodInfoOrError = paymentApi.getPaymentMethod(accountKey, paymentMethodIdOrError.getRight());
+
+ assertTrue(paymentMethodInfoOrError.isRight());
+ assertNotNull(paymentMethodInfoOrError.getRight());
+
+ Either<PaymentError, PaymentProviderAccount> accountOrError = paymentApi.getPaymentProviderAccount(accountKey);
+
+ assertTrue(accountOrError.isRight());
+
+ return accountOrError.getRight();
+ }
+
+ @Test
+ public void testCreatePaymentMethod() throws AccountApiException {
+ PaymentProviderAccount account = setupAccountWithPaymentMethod();
+ assertNotNull(account);
+ }
+
+ @Test
+ public void testUpdatePaymentProviderAccountContact() throws AccountApiException {
+ final Account account = testHelper.createTestAccount();
+ paymentApi.createPaymentProviderAccount(account);
+
+ String newName = "Tester " + RandomStringUtils.randomAlphanumeric(10);
+ String newNumber = "888-888-" + RandomStringUtils.randomNumeric(4);
+
+ final Account accountToUpdate = new AccountBuilder(account.getId())
+ .name(newName)
+ .firstNameLength(newName.length())
+ .externalKey(account.getExternalKey())
+ .phone(newNumber)
+ .email(account.getEmail())
+ .currency(account.getCurrency())
+ .billingCycleDay(account.getBillCycleDay())
+ .build();
+
+ Either<PaymentError, Void> voidOrError = paymentApi.updatePaymentProviderAccountContact(accountToUpdate);
+ assertTrue(voidOrError.isRight());
+ }
+
+ @Test
+ public void testCannotDeleteDefaultPaymentMethod() throws AccountApiException {
+ PaymentProviderAccount account = setupAccountWithPaymentMethod();
+
+ Either<PaymentError, Void> errorOrVoid = paymentApi.deletePaymentMethod(account.getAccountKey(), account.getDefaultPaymentMethodId());
+
+ assertTrue(errorOrVoid.isLeft());
+ }
+
+ @Test
+ public void testDeleteNonDefaultPaymentMethod() throws AccountApiException {
+ final Account account = testHelper.createTestAccount();
+ paymentApi.createPaymentProviderAccount(account);
+
+ String accountKey = account.getExternalKey();
+
+ PaypalPaymentMethodInfo paymentMethod1 = new PaypalPaymentMethodInfo.Builder().setDefaultMethod(false).setBaid("12345").setEmail(account.getEmail()).build();
+ Either<PaymentError, String> paymentMethodIdOrError1 = paymentApi.addPaymentMethod(accountKey, paymentMethod1);
+
+ assertTrue(paymentMethodIdOrError1.isRight());
+ assertNotNull(paymentMethodIdOrError1.getRight());
+
+ PaypalPaymentMethodInfo paymentMethod2 = new PaypalPaymentMethodInfo.Builder().setDefaultMethod(true).setBaid("12345").setEmail(account.getEmail()).build();
+
+ Either<PaymentError, String> paymentMethodIdOrError2 = paymentApi.addPaymentMethod(accountKey, paymentMethod2);
+
+ assertTrue(paymentMethodIdOrError2.isRight());
+ assertNotNull(paymentMethodIdOrError2.getRight());
+
+ Either<PaymentError, List<PaymentMethodInfo>> paymentMethodsOrError = paymentApi.getPaymentMethods(accountKey);
+
+ assertTrue(paymentMethodsOrError.isRight());
+
+ Either<PaymentError, Void> errorOrVoid1 = paymentApi.deletePaymentMethod(accountKey, paymentMethodIdOrError1.getRight());
+ Either<PaymentError, Void> errorOrVoid2 = paymentApi.deletePaymentMethod(accountKey, paymentMethodIdOrError2.getRight());
+
+ assertTrue(errorOrVoid1.isRight());
+ assertTrue(errorOrVoid2.isLeft());
}
}
diff --git a/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPlugin.java b/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPlugin.java
index 583fc1a..97e6136 100644
--- a/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPlugin.java
+++ b/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPlugin.java
@@ -75,10 +75,9 @@ public class MockPaymentProviderPlugin implements PaymentProviderPlugin {
@Override
public Either<PaymentError, String> createPaymentProviderAccount(Account account) {
if (account != null) {
- String id = String.valueOf(RandomStringUtils.random(10));
+ String id = String.valueOf(RandomStringUtils.randomAlphanumeric(10));
accounts.put(account.getExternalKey(),
- new PaymentProviderAccount.Builder().setAccountNumber(String.valueOf(RandomStringUtils.random(10)))
- .setDefaultPaymentMethod(String.valueOf(RandomStringUtils.random(10)))
+ new PaymentProviderAccount.Builder().setAccountKey(account.getExternalKey())
.setId(id)
.build());
@@ -102,30 +101,76 @@ public class MockPaymentProviderPlugin implements PaymentProviderPlugin {
@Override
public Either<PaymentError, String> addPaymentMethod(String accountKey, PaymentMethodInfo paymentMethod) {
if (paymentMethod != null) {
- String paymentMethodId = RandomStringUtils.random(10);
- PaymentMethodInfo realPaymentMethod = null;
-
- if (paymentMethod instanceof PaypalPaymentMethodInfo) {
- PaypalPaymentMethodInfo paypalPaymentMethod = (PaypalPaymentMethodInfo)paymentMethod;
- realPaymentMethod = new PaypalPaymentMethodInfo.Builder(paypalPaymentMethod).setId(paymentMethodId).build();
- }
- else if (paymentMethod instanceof CreditCardPaymentMethodInfo) {
- CreditCardPaymentMethodInfo ccPaymentMethod = (CreditCardPaymentMethodInfo)paymentMethod;
- realPaymentMethod = new CreditCardPaymentMethodInfo.Builder(ccPaymentMethod).setId(paymentMethodId).build();
- }
- if (realPaymentMethod == null) {
- return Either.left(new PaymentError("unsupported", "Payment method " + paymentMethod.getType() + " not supported by the plugin"));
- }
- else {
- paymentMethods.put(paymentMethodId, paymentMethod);
- return Either.right(paymentMethodId);
+ PaymentProviderAccount account = accounts.get(accountKey);
+
+ if (account != null && account.getId() != null) {
+ String existingDefaultMethod = account.getDefaultPaymentMethodId();
+
+ String paymentMethodId = RandomStringUtils.randomAlphanumeric(10);
+ boolean shouldBeDefault = Boolean.TRUE.equals(paymentMethod.getDefaultMethod()) || existingDefaultMethod == null;
+ PaymentMethodInfo realPaymentMethod = null;
+
+ if (paymentMethod instanceof PaypalPaymentMethodInfo) {
+ PaypalPaymentMethodInfo paypalPaymentMethod = (PaypalPaymentMethodInfo)paymentMethod;
+
+ realPaymentMethod = new PaypalPaymentMethodInfo.Builder(paypalPaymentMethod)
+ .setId(paymentMethodId)
+ .setAccountId(accountKey)
+ .setDefaultMethod(shouldBeDefault)
+ .setBaid(paypalPaymentMethod.getBaid())
+ .setEmail(paypalPaymentMethod.getEmail())
+ .build();
+ }
+ else if (paymentMethod instanceof CreditCardPaymentMethodInfo) {
+ CreditCardPaymentMethodInfo ccPaymentMethod = (CreditCardPaymentMethodInfo)paymentMethod;
+ realPaymentMethod = new CreditCardPaymentMethodInfo.Builder(ccPaymentMethod).setId(paymentMethodId).build();
+ }
+ if (realPaymentMethod == null) {
+ return Either.left(new PaymentError("unsupported", "Payment method " + paymentMethod.getType() + " not supported by the plugin"));
+ }
+ else {
+ if (shouldBeDefault) {
+ setDefaultPaymentMethodOnAccount(account, paymentMethodId);
+ }
+ paymentMethods.put(paymentMethodId, realPaymentMethod);
+ return Either.right(paymentMethodId);
+ }
}
+ else {
+ return Either.left(new PaymentError("noaccount", "Could not retrieve account for accountKey " + accountKey));
+ }
}
else {
return Either.left(new PaymentError("unknown", "Could not create add payment method " + paymentMethod + " for " + accountKey));
}
}
+ public void setDefaultPaymentMethodOnAccount(PaymentProviderAccount account, String paymentMethodId) {
+ if (paymentMethodId != null && account != null) {
+ accounts.put(account.getAccountKey(),
+ new PaymentProviderAccount.Builder()
+ .copyFrom(account)
+ .setDefaultPaymentMethod(paymentMethodId)
+ .build());
+ List<PaymentMethodInfo> paymentMethodsToUpdate = new ArrayList<PaymentMethodInfo>();
+ for (PaymentMethodInfo paymentMethod : paymentMethods.values()) {
+ if (account.getAccountKey().equals(paymentMethod.getAccountId()) && !paymentMethodId.equals(paymentMethod.getId())) {
+ if (paymentMethod instanceof PaypalPaymentMethodInfo) {
+ PaypalPaymentMethodInfo paypalPaymentMethod = (PaypalPaymentMethodInfo)paymentMethod;
+ paymentMethodsToUpdate.add(new PaypalPaymentMethodInfo.Builder(paypalPaymentMethod).setDefaultMethod(false).build());
+ }
+ else if (paymentMethod instanceof CreditCardPaymentMethodInfo) {
+ CreditCardPaymentMethodInfo ccPaymentMethod = (CreditCardPaymentMethodInfo)paymentMethod;
+ paymentMethodsToUpdate.add(new CreditCardPaymentMethodInfo.Builder(ccPaymentMethod).setDefaultMethod(false).build());
+ }
+ }
+ }
+ for (PaymentMethodInfo paymentMethod : paymentMethodsToUpdate) {
+ paymentMethods.put(paymentMethod.getId(), paymentMethod);
+ }
+ }
+ }
+
@Override
public Either<PaymentError, PaymentMethodInfo> updatePaymentMethod(String accountKey, PaymentMethodInfo paymentMethod) {
if (paymentMethod != null) {
@@ -154,17 +199,23 @@ public class MockPaymentProviderPlugin implements PaymentProviderPlugin {
@Override
public Either<PaymentError, Void> deletePaymentMethod(String accountKey, String paymentMethodId) {
- if (paymentMethods.remove(paymentMethodId) == null) {
- return Either.left(new PaymentError("unknown", "Did not get any result back"));
- }
- else {
- return Either.right(null);
+ PaymentMethodInfo paymentMethodInfo = paymentMethods.get(paymentMethodId);
+ if (paymentMethodInfo != null) {
+ if (Boolean.FALSE.equals(paymentMethodInfo.getDefaultMethod()) || paymentMethodInfo.getDefaultMethod() == null) {
+ if (paymentMethods.remove(paymentMethodId) == null) {
+ return Either.left(new PaymentError("unknown", "Did not get any result back"));
+ }
+ }
+ else {
+ return Either.left(new PaymentError("error", "Cannot delete default payment method"));
+ }
}
+ return Either.right(null);
}
@Override
public Either<PaymentError, PaymentMethodInfo> getPaymentMethodInfo(String paymentMethodId) {
- if (paymentMethodId != null) {
+ if (paymentMethodId == null) {
return Either.left(new PaymentError("unknown", "Could not retrieve payment method for paymentMethodId " + paymentMethodId));
}
@@ -172,12 +223,12 @@ public class MockPaymentProviderPlugin implements PaymentProviderPlugin {
}
@Override
- public Either<PaymentError, List<PaymentMethodInfo>> getPaymentMethods(final String accountId) {
+ public Either<PaymentError, List<PaymentMethodInfo>> getPaymentMethods(final String accountKey) {
Collection<PaymentMethodInfo> filteredPaymentMethods = Collections2.filter(paymentMethods.values(), new Predicate<PaymentMethodInfo>() {
@Override
public boolean apply(PaymentMethodInfo input) {
- return accountId.equals(input.getAccountId());
+ return accountKey.equals(input.getAccountId());
}
});
List<PaymentMethodInfo> result = new ArrayList<PaymentMethodInfo>(filteredPaymentMethods);
@@ -190,7 +241,7 @@ public class MockPaymentProviderPlugin implements PaymentProviderPlugin {
}
@Override
- public Either<PaymentError, Void> updatePaymentProviderAccountWithExistingContact(Account account) {
+ public Either<PaymentError, Void> updatePaymentProviderAccountExistingContact(Account account) {
// nothing to do here
return Either.right(null);
}
diff --git a/payment/src/test/java/com/ning/billing/payment/TestHelper.java b/payment/src/test/java/com/ning/billing/payment/TestHelper.java
index 862d98c..2a1ce91 100644
--- a/payment/src/test/java/com/ning/billing/payment/TestHelper.java
+++ b/payment/src/test/java/com/ning/billing/payment/TestHelper.java
@@ -46,10 +46,11 @@ public class TestHelper {
}
public Account createTestAccount() throws AccountApiException {
- final String name = "First" + RandomStringUtils.random(5) + " " + "Last" + RandomStringUtils.random(5);
+ final String name = "First" + RandomStringUtils.randomAlphanumeric(5) + " " + "Last" + RandomStringUtils.randomAlphanumeric(5);
+ final String externalKey = RandomStringUtils.randomAlphanumeric(10);
final Account account = new AccountBuilder(UUID.randomUUID()).name(name)
.firstNameLength(name.length())
- .externalKey("12345")
+ .externalKey(externalKey)
.phone("123-456-7890")
.email("user@example.com")
.currency(Currency.USD)