Details
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 1d62eb5..8e665ed 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
@@ -42,9 +42,9 @@ public interface PaymentApi {
Either<PaymentError, PaymentProviderAccount> getPaymentProviderAccount(String accountKey);
- Either<PaymentError, PaymentProviderAccount> createPaymentProviderAccount(PaymentProviderAccount account);
+ Either<PaymentError, String> createPaymentProviderAccount(Account account);
- Either<PaymentError, PaymentProviderAccount> updatePaymentProviderAccount(PaymentProviderAccount account);
+ Either<PaymentError, PaymentProviderAccount> updatePaymentProviderAccount(Account account);
PaymentAttempt getPaymentAttemptForPaymentId(String id);
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 5674972..30c4c03 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
@@ -171,15 +171,15 @@ public class DefaultPaymentApi implements PaymentApi {
}
@Override
- public Either<PaymentError, PaymentProviderAccount> createPaymentProviderAccount(PaymentProviderAccount account) {
+ public Either<PaymentError, String> createPaymentProviderAccount(Account account) {
final PaymentProviderPlugin plugin = getPaymentProviderPlugin((Account)null);
return plugin.createPaymentProviderAccount(account);
}
@Override
- public Either<PaymentError, PaymentProviderAccount> updatePaymentProviderAccount(PaymentProviderAccount account) {
- //TODO
- throw new UnsupportedOperationException();
+ public Either<PaymentError, PaymentProviderAccount> updatePaymentProviderAccount(Account account) {
+ final PaymentProviderPlugin plugin = getPaymentProviderPlugin(account);
+ return plugin.updatePaymentProviderAccount(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 4f19eb7..460951d 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
@@ -29,8 +29,9 @@ import com.ning.billing.payment.api.PaypalPaymentMethodInfo;
public interface PaymentProviderPlugin {
Either<PaymentError, PaymentInfo> processInvoice(Account account, Invoice invoice);
- Either<PaymentError, PaymentProviderAccount> createPaymentProviderAccount(PaymentProviderAccount account);
+ Either<PaymentError, String> createPaymentProviderAccount(Account account);
Either<PaymentError, String> addPaypalPaymentMethod(String accountId, PaypalPaymentMethodInfo paypalPaymentMethod);
+ Either<PaymentError, PaymentProviderAccount> updatePaymentProviderAccount(Account account);
Either<PaymentError, PaymentInfo> getPaymentInfo(String paymentId);
Either<PaymentError, PaymentMethodInfo> getPaymentMethodInfo(String paymentMethodId);
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 321631e..32d0d71 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
@@ -21,6 +21,7 @@ import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.commons.lang.math.RandomUtils;
import org.joda.time.DateTime;
import com.ning.billing.account.api.Account;
@@ -66,15 +67,15 @@ public class MockPaymentProviderPlugin implements PaymentProviderPlugin {
}
@Override
- public Either<PaymentError, PaymentProviderAccount> createPaymentProviderAccount(PaymentProviderAccount account) {
+ public Either<PaymentError, String> createPaymentProviderAccount(Account account) {
if (account != null) {
- PaymentProviderAccount paymentProviderAccount = accounts.put(account.getAccountName(),
- new PaymentProviderAccount.Builder().setAccountName(account.getAccountName())
- .setAccountNumber(account.getAccountName())
- .setId(account.getId())
+ PaymentProviderAccount paymentProviderAccount = accounts.put(account.getExternalKey(),
+ new PaymentProviderAccount.Builder().setAccountNumber(String.valueOf(RandomUtils.nextInt(10)))
+ .setDefaultPaymentMethod(String.valueOf(RandomUtils.nextInt(10)))
+ .setId(String.valueOf(RandomUtils.nextInt(10)))
.build());
- return Either.right(paymentProviderAccount);
+ return Either.right(paymentProviderAccount.getId());
}
else {
return Either.left(new PaymentError("unknown", "Did not get account to create payment provider account"));
@@ -82,6 +83,12 @@ public class MockPaymentProviderPlugin implements PaymentProviderPlugin {
}
@Override
+ public Either<PaymentError, PaymentProviderAccount> updatePaymentProviderAccount(Account account) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
public Either<PaymentError, PaymentMethodInfo> getPaymentMethodInfo(String paymentMethodId) {
// TODO
return Either.left(new PaymentError("unknown", "Not implemented"));
@@ -122,4 +129,5 @@ public class MockPaymentProviderPlugin implements PaymentProviderPlugin {
// TODO
return Either.left(new PaymentError("unknown", "Not implemented"));
}
+
}