Details
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 e12d963..3376288 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
@@ -180,13 +180,8 @@ public class DefaultPaymentApi implements PaymentApi {
Invoice invoice = invoicePaymentApi.getInvoice(UUID.fromString(invoiceId));
if (invoice.getBalance().compareTo(BigDecimal.ZERO) <= 0 ) {
- // TODO: send a notification that invoice was ignored?
- log.info("Received invoice for payment with balance of 0 {} ", invoice);
- Either<PaymentError, PaymentInfo> result = Either.left(new PaymentError("invoice_balance_0",
- "Invoice balance was 0 or less",
- account.getId(),
- UUID.fromString(invoiceId)));
- processedPaymentsOrErrors.add(result);
+ log.debug("Received invoice for payment with balance of 0 {} ", invoice);
+
}
else if (invoice.isMigrationInvoice()) {
log.info("Received invoice for payment that is a migration invoice - don't know how to handle those yet: {}", invoice);
@@ -305,8 +300,8 @@ public class DefaultPaymentApi implements PaymentApi {
@Override
public List<Either<PaymentError, PaymentInfo>> createRefund(Account account, List<String> invoiceIds) {
- //TODO
- throw new UnsupportedOperationException();
+ final PaymentProviderPlugin plugin = getPaymentProviderPlugin(account);
+ return plugin.processRefund(account);
}
@Override
diff --git a/payment/src/main/java/com/ning/billing/payment/provider/NoOpPaymentProviderPlugin.java b/payment/src/main/java/com/ning/billing/payment/provider/NoOpPaymentProviderPlugin.java
index 280d1e0..a23a4f7 100644
--- a/payment/src/main/java/com/ning/billing/payment/provider/NoOpPaymentProviderPlugin.java
+++ b/payment/src/main/java/com/ning/billing/payment/provider/NoOpPaymentProviderPlugin.java
@@ -108,4 +108,10 @@ public class NoOpPaymentProviderPlugin implements PaymentProviderPlugin {
return Either.right(null);
}
+ @Override
+ public List<Either<PaymentError, PaymentInfo>> processRefund(Account account) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
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 7a9ae71..fd9d160 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
@@ -42,5 +42,6 @@ public interface PaymentProviderPlugin {
Either<PaymentError, Void> updatePaymentProviderAccountExistingContact(Account account);
Either<PaymentError, Void> updatePaymentProviderAccountWithNewContact(Account account);
+ List<Either<PaymentError, PaymentInfo>> processRefund(Account account);
}
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 47713bb..adda477 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
@@ -24,13 +24,11 @@ import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
-import com.google.inject.Inject;
-import com.ning.billing.util.clock.Clock;
import org.apache.commons.lang.RandomStringUtils;
-import org.joda.time.DateTime;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
+import com.google.inject.Inject;
import com.ning.billing.account.api.Account;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.payment.api.CreditCardPaymentMethodInfo;
@@ -40,6 +38,7 @@ import com.ning.billing.payment.api.PaymentInfo;
import com.ning.billing.payment.api.PaymentMethodInfo;
import com.ning.billing.payment.api.PaymentProviderAccount;
import com.ning.billing.payment.api.PaypalPaymentMethodInfo;
+import com.ning.billing.util.clock.Clock;
public class MockPaymentProviderPlugin implements PaymentProviderPlugin {
private final AtomicBoolean makeNextInvoiceFail = new AtomicBoolean(false);
@@ -266,8 +265,14 @@ public class MockPaymentProviderPlugin implements PaymentProviderPlugin {
@Override
public Either<PaymentError, Void> updatePaymentProviderAccountWithNewContact(Account account) {
- // nothing to do here
- return Either.right(null);
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public List<Either<PaymentError, PaymentInfo>> processRefund(Account account) {
+ // TODO Auto-generated method stub
+ return null;
}
}