killbill-aplcache
Details
diff --git a/api/src/main/java/com/ning/billing/glue/InvoiceModule.java b/api/src/main/java/com/ning/billing/glue/InvoiceModule.java
index 5b98407..7e55895 100644
--- a/api/src/main/java/com/ning/billing/glue/InvoiceModule.java
+++ b/api/src/main/java/com/ning/billing/glue/InvoiceModule.java
@@ -24,4 +24,6 @@ public interface InvoiceModule {
public abstract void installInvoiceMigrationApi();
+ public abstract void installInvoiceTestApi();
+
}
\ No newline at end of file
beatrix/pom.xml 13(+13 -0)
diff --git a/beatrix/pom.xml b/beatrix/pom.xml
index e7ed282..da3f0e6 100644
--- a/beatrix/pom.xml
+++ b/beatrix/pom.xml
@@ -65,6 +65,13 @@
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
+
+ <!-- TEST SCOPE -->
+ <dependency>
+ <groupId>com.jayway.awaitility</groupId>
+ <artifactId>awaitility</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>com.ning.billing</groupId>
<artifactId>killbill-junction</artifactId>
@@ -79,6 +86,12 @@
</dependency>
<dependency>
<groupId>com.ning.billing</groupId>
+ <artifactId>killbill-invoice</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing</groupId>
<artifactId>killbill-account</artifactId>
<type>test-jar</type>
<scope>test</scope>
diff --git a/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java b/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java
index 5a2b883..f440071 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java
@@ -31,6 +31,8 @@ import com.ning.billing.invoice.api.InvoiceUserApi;
import com.ning.billing.invoice.api.formatters.InvoiceFormatterFactory;
import com.ning.billing.invoice.api.invoice.DefaultInvoicePaymentApi;
import com.ning.billing.invoice.api.migration.DefaultInvoiceMigrationApi;
+import com.ning.billing.invoice.api.test.DefaultInvoiceTestApi;
+import com.ning.billing.invoice.api.test.InvoiceTestApi;
import com.ning.billing.invoice.api.user.DefaultInvoiceUserApi;
import com.ning.billing.invoice.dao.DefaultInvoiceDao;
import com.ning.billing.invoice.dao.InvoiceDao;
@@ -56,6 +58,14 @@ public class DefaultInvoiceModule extends AbstractModule implements InvoiceModul
public void installInvoiceUserApi() {
bind(InvoiceUserApi.class).to(DefaultInvoiceUserApi.class).asEagerSingleton();
}
+
+ /* (non-Javadoc)
+ * @see com.ning.billing.invoice.glue.InvoiceModule#installInvoiceUserApi()
+ */
+ @Override
+ public void installInvoiceTestApi() {
+ bind(InvoiceTestApi.class).to(DefaultInvoiceTestApi.class).asEagerSingleton();
+ }
/* (non-Javadoc)
* @see com.ning.billing.invoice.glue.InvoiceModule#installInvoicePaymentApi()
@@ -110,5 +120,6 @@ public class DefaultInvoiceModule extends AbstractModule implements InvoiceModul
installInvoiceUserApi();
installInvoicePaymentApi();
installInvoiceMigrationApi();
+ installInvoiceTestApi();
}
}
payment/pom.xml 27(+1 -26)
diff --git a/payment/pom.xml b/payment/pom.xml
index b29f5a0..9df551f 100644
--- a/payment/pom.xml
+++ b/payment/pom.xml
@@ -87,32 +87,7 @@
<type>test-jar</type>
<scope>test</scope>
</dependency>
- <!-- TODO: MDW REMOVE -->
- <dependency>
- <groupId>com.ning.billing</groupId>
- <artifactId>killbill-account</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <!-- TODO: MDW REMOVE -->
- <dependency>
- <groupId>com.ning.billing</groupId>
- <artifactId>killbill-invoice</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <!-- TODO: MDW REMOVE -->
- <dependency>
- <groupId>com.ning.billing</groupId>
- <artifactId>killbill-invoice</artifactId>
- <scope>test</scope>
- </dependency>
- <!-- TODO: MDW REMOVE -->
- <dependency>
- <groupId>com.ning.billing</groupId>
- <artifactId>killbill-account</artifactId>
- <scope>test</scope>
- </dependency>
+
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-mxj</artifactId>
diff --git a/payment/src/test/java/com/ning/billing/payment/api/TestMockPaymentApi.java b/payment/src/test/java/com/ning/billing/payment/api/TestMockPaymentApi.java
index 833f926..0ff39d2 100644
--- a/payment/src/test/java/com/ning/billing/payment/api/TestMockPaymentApi.java
+++ b/payment/src/test/java/com/ning/billing/payment/api/TestMockPaymentApi.java
@@ -20,13 +20,13 @@ import org.testng.annotations.Guice;
import org.testng.annotations.Test;
import com.google.inject.Inject;
-import com.ning.billing.account.glue.AccountModuleWithMocks;
-import com.ning.billing.invoice.glue.InvoiceModuleWithMocks;
import com.ning.billing.mock.glue.MockJunctionModule;
import com.ning.billing.payment.setup.PaymentTestModuleWithMocks;
import com.ning.billing.util.clock.Clock;
+import com.ning.billing.util.clock.MockClockModule;
+import com.ning.billing.util.glue.CallContextModule;
-@Guice(modules = { PaymentTestModuleWithMocks.class, AccountModuleWithMocks.class, InvoiceModuleWithMocks.class, MockJunctionModule.class })
+@Guice(modules = { PaymentTestModuleWithMocks.class, MockClockModule.class, MockJunctionModule.class, CallContextModule.class })
@Test(groups = "fast")
public class TestMockPaymentApi extends TestPaymentApi {
@Inject
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 1c2a712..4d3c630 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
@@ -37,10 +37,13 @@ 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.RecurringInvoiceItem;
+import com.ning.billing.invoice.api.InvoicePaymentApi;
+import com.ning.billing.mock.BrainDeadProxyFactory;
+import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
+import com.ning.billing.mock.MockAccountBuilder;
+import com.ning.billing.payment.MockRecurringInvoiceItem;
import com.ning.billing.payment.TestHelper;
import com.ning.billing.util.bus.Bus;
import com.ning.billing.util.bus.Bus.EventBusException;
@@ -58,6 +61,8 @@ public abstract class TestPaymentApi {
protected PaymentApi paymentApi;
@Inject
protected TestHelper testHelper;
+ @Inject
+ protected InvoicePaymentApi invoicePaymentApi;
protected CallContext context;
@@ -77,7 +82,9 @@ public abstract class TestPaymentApi {
}
@Test(enabled=true)
- public void testCreateCreditCardPayment() throws AccountApiException, EntityPersistenceException {
+ public void testCreateCreditCardPayment() throws Exception {
+ ((ZombieControl)invoicePaymentApi).addResult("notifyOfPaymentAttempt", BrainDeadProxyFactory.ZOMBIE_VOID);
+
final DateTime now = new DateTime(DateTimeZone.UTC);
final Account account = testHelper.createTestCreditCardAccount();
final Invoice invoice = testHelper.createTestInvoice(account, now, Currency.USD);
@@ -85,7 +92,7 @@ public abstract class TestPaymentApi {
final UUID subscriptionId = UUID.randomUUID();
final UUID bundleId = UUID.randomUUID();
- invoice.addInvoiceItem(new RecurringInvoiceItem(invoice.getId(), account.getId(),
+ invoice.addInvoiceItem(new MockRecurringInvoiceItem(invoice.getId(), account.getId(),
subscriptionId,
bundleId,
"test plan", "test phase",
@@ -181,7 +188,7 @@ public abstract class TestPaymentApi {
String newName = "Tester " + RandomStringUtils.randomAlphanumeric(10);
String newNumber = "888-888-" + RandomStringUtils.randomNumeric(4);
- final Account accountToUpdate = new AccountBuilder(account.getId())
+ final Account accountToUpdate = new MockAccountBuilder(account.getId())
.name(newName)
.firstNameLength(newName.length())
.externalKey(account.getExternalKey())
@@ -204,35 +211,6 @@ public abstract class TestPaymentApi {
assertTrue(errorOrVoid.isLeft());
}
- @Test(enabled=true)
- public void testDeleteNonDefaultPaymentMethod() throws AccountApiException, EntityPersistenceException {
- final Account account = testHelper.createTestPayPalAccount();
- paymentApi.createPaymentProviderAccount(account, context);
-
- String accountKey = account.getExternalKey();
-
- PaypalPaymentMethodInfo paymentMethod1 = new PaypalPaymentMethodInfo.Builder().setDefaultMethod(false).setBaid("12345").setEmail(account.getEmail()).build();
- Either<PaymentErrorEvent, String> paymentMethodIdOrError1 = paymentApi.addPaymentMethod(accountKey, paymentMethod1, context);
-
- assertTrue(paymentMethodIdOrError1.isRight());
- assertNotNull(paymentMethodIdOrError1.getRight());
-
- PaypalPaymentMethodInfo paymentMethod2 = new PaypalPaymentMethodInfo.Builder().setDefaultMethod(true).setBaid("12345").setEmail(account.getEmail()).build();
-
- Either<PaymentErrorEvent, String> paymentMethodIdOrError2 = paymentApi.addPaymentMethod(accountKey, paymentMethod2, context);
-
- assertTrue(paymentMethodIdOrError2.isRight());
- assertNotNull(paymentMethodIdOrError2.getRight());
-
- Either<PaymentErrorEvent, List<PaymentMethodInfo>> paymentMethodsOrError = paymentApi.getPaymentMethods(accountKey);
-
- assertTrue(paymentMethodsOrError.isRight());
-
- Either<PaymentErrorEvent, Void> errorOrVoid1 = paymentApi.deletePaymentMethod(accountKey, paymentMethodIdOrError1.getRight(), context);
- Either<PaymentErrorEvent, Void> errorOrVoid2 = paymentApi.deletePaymentMethod(accountKey, paymentMethodIdOrError2.getRight(), context);
-
- assertTrue(errorOrVoid1.isRight());
- assertTrue(errorOrVoid2.isLeft());
- }
+
}
diff --git a/payment/src/test/java/com/ning/billing/payment/dao/TestPaymentDaoWithEmbeddedDb.java b/payment/src/test/java/com/ning/billing/payment/dao/TestPaymentDaoWithEmbeddedDb.java
index 84e3e5a..7c2fe65 100644
--- a/payment/src/test/java/com/ning/billing/payment/dao/TestPaymentDaoWithEmbeddedDb.java
+++ b/payment/src/test/java/com/ning/billing/payment/dao/TestPaymentDaoWithEmbeddedDb.java
@@ -33,9 +33,11 @@ public class TestPaymentDaoWithEmbeddedDb extends TestPaymentDao {
@BeforeClass(groups = { "slow", "database" })
public void startMysql() throws IOException {
final String paymentddl = IOUtils.toString(MysqlTestingHelper.class.getResourceAsStream("/com/ning/billing/payment/ddl.sql"));
+ final String utilddl = IOUtils.toString(MysqlTestingHelper.class.getResourceAsStream("/com/ning/billing/util/ddl.sql"));
helper.startMysql();
helper.initDb(paymentddl);
+ helper.initDb(utilddl);
}
@AfterClass(groups = { "slow", "database" })
diff --git a/payment/src/test/java/com/ning/billing/payment/setup/PaymentTestModuleWithEmbeddedDb.java b/payment/src/test/java/com/ning/billing/payment/setup/PaymentTestModuleWithEmbeddedDb.java
index cf56d78..da38b34 100644
--- a/payment/src/test/java/com/ning/billing/payment/setup/PaymentTestModuleWithEmbeddedDb.java
+++ b/payment/src/test/java/com/ning/billing/payment/setup/PaymentTestModuleWithEmbeddedDb.java
@@ -20,8 +20,6 @@ import org.apache.commons.collections.MapUtils;
import com.google.common.collect.ImmutableMap;
import com.google.inject.Provider;
-import com.ning.billing.account.api.AccountUserApi;
-import com.ning.billing.account.api.user.DefaultAccountUserApi;
import com.ning.billing.config.PaymentConfig;
import com.ning.billing.junction.api.BillingApi;
import com.ning.billing.mock.BrainDeadProxyFactory;
diff --git a/payment/src/test/java/com/ning/billing/payment/setup/PaymentTestModuleWithMocks.java b/payment/src/test/java/com/ning/billing/payment/setup/PaymentTestModuleWithMocks.java
index 8ec8862..14f2ab9 100644
--- a/payment/src/test/java/com/ning/billing/payment/setup/PaymentTestModuleWithMocks.java
+++ b/payment/src/test/java/com/ning/billing/payment/setup/PaymentTestModuleWithMocks.java
@@ -16,8 +16,6 @@
package com.ning.billing.payment.setup;
-import com.ning.billing.invoice.api.test.DefaultInvoiceTestApi;
-import com.ning.billing.invoice.api.test.InvoiceTestApi;
import org.apache.commons.collections.MapUtils;
import com.google.common.collect.ImmutableMap;
@@ -25,14 +23,14 @@ import com.google.inject.Provider;
import com.ning.billing.config.PaymentConfig;
import com.ning.billing.junction.api.BillingApi;
import com.ning.billing.mock.BrainDeadProxyFactory;
-import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
+import com.ning.billing.mock.glue.MockInvoiceModule;
+import com.ning.billing.mock.glue.MockNotificationQueueModule;
+import com.ning.billing.mock.glue.TestDbiModule;
import com.ning.billing.payment.dao.MockPaymentDao;
import com.ning.billing.payment.dao.PaymentDao;
import com.ning.billing.payment.provider.MockPaymentProviderPluginModule;
-import com.ning.billing.util.bus.Bus;
-import com.ning.billing.util.bus.InMemoryBus;
-import com.ning.billing.util.notificationq.MockNotificationQueueService;
-import com.ning.billing.util.notificationq.NotificationQueueService;
+import com.ning.billing.util.glue.BusModule;
+import com.ning.billing.util.glue.BusModule.BusType;
public class PaymentTestModuleWithMocks extends PaymentModule {
public static class MockProvider implements Provider<BillingApi> {
@@ -62,9 +60,9 @@ public class PaymentTestModuleWithMocks extends PaymentModule {
@Override
protected void configure() {
super.configure();
- bind(Bus.class).to(InMemoryBus.class).asEagerSingleton();
- bind(InvoiceTestApi.class).to(DefaultInvoiceTestApi.class).asEagerSingleton();
-
- bind(NotificationQueueService.class).to(MockNotificationQueueService.class).asEagerSingleton();
+ install(new BusModule(BusType.MEMORY));
+ install(new MockNotificationQueueModule());
+ install(new MockInvoiceModule());
+ install(new TestDbiModule());
}
}
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 2939c05..c38e887 100644
--- a/payment/src/test/java/com/ning/billing/payment/TestHelper.java
+++ b/payment/src/test/java/com/ning/billing/payment/TestHelper.java
@@ -19,7 +19,6 @@ package com.ning.billing.payment;
import java.math.BigDecimal;
import java.util.UUID;
-import com.ning.billing.invoice.api.test.InvoiceTestApi;
import org.apache.commons.lang.RandomStringUtils;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
@@ -27,13 +26,15 @@ import org.joda.time.DateTimeZone;
import com.google.inject.Inject;
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.AccountUserApi;
-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.api.InvoiceCreationEvent;
import com.ning.billing.invoice.api.InvoiceItem;
-import com.ning.billing.invoice.model.DefaultInvoice;
-import com.ning.billing.invoice.model.RecurringInvoiceItem;
+import com.ning.billing.invoice.api.InvoicePaymentApi;
import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
+import com.ning.billing.mock.MockAccountBuilder;
+import com.ning.billing.util.bus.Bus;
+import com.ning.billing.util.bus.Bus.EventBusException;
import com.ning.billing.util.callcontext.CallContext;
import com.ning.billing.util.callcontext.CallContextFactory;
import com.ning.billing.util.callcontext.CallOrigin;
@@ -42,13 +43,15 @@ import com.ning.billing.util.entity.EntityPersistenceException;
public class TestHelper {
protected final AccountUserApi accountUserApi;
- protected final InvoiceTestApi invoiceTestApi;
+ protected final InvoicePaymentApi invoicePaymentApi;
private final CallContext context;
+ private final Bus eventBus;
@Inject
- public TestHelper(CallContextFactory factory, AccountUserApi accountUserApi, InvoiceTestApi invoiceTestApi) {
+ public TestHelper(CallContextFactory factory, AccountUserApi accountUserApi, InvoicePaymentApi invoicePaymentApi, Bus eventBus) {
+ this.eventBus = eventBus;
this.accountUserApi = accountUserApi;
- this.invoiceTestApi = invoiceTestApi;
+ this.invoicePaymentApi = invoicePaymentApi;
context = factory.createCallContext("Princess Buttercup", CallOrigin.TEST, UserType.TEST);
}
@@ -56,7 +59,7 @@ public class TestHelper {
public Account createTestCreditCardAccount() throws EntityPersistenceException {
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)
+ final Account account = new MockAccountBuilder(UUID.randomUUID()).name(name)
.firstNameLength(name.length())
.externalKey(externalKey)
.phone("123-456-7890")
@@ -72,7 +75,7 @@ public class TestHelper {
public Account createTestPayPalAccount() throws EntityPersistenceException {
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)
+ final Account account = new MockAccountBuilder(UUID.randomUUID()).name(name)
.firstNameLength(name.length())
.externalKey(externalKey)
.phone("123-456-7890")
@@ -88,13 +91,13 @@ public class TestHelper {
public Invoice createTestInvoice(Account account,
DateTime targetDate,
Currency currency,
- InvoiceItem... items) {
- Invoice invoice = new DefaultInvoice(account.getId(), new DateTime(), targetDate, currency);
+ InvoiceItem... items) throws EventBusException {
+ Invoice invoice = new MockInvoice(account.getId(), new DateTime(), targetDate, currency);
for (InvoiceItem item : items) {
- if (item instanceof RecurringInvoiceItem) {
- RecurringInvoiceItem recurringInvoiceItem = (RecurringInvoiceItem) item;
- invoice.addInvoiceItem(new RecurringInvoiceItem(invoice.getId(),
+ if (item instanceof MockRecurringInvoiceItem) {
+ MockRecurringInvoiceItem recurringInvoiceItem = (MockRecurringInvoiceItem) item;
+ invoice.addInvoiceItem(new MockRecurringInvoiceItem(invoice.getId(),
account.getId(),
recurringInvoiceItem.getBundleId(),
recurringInvoiceItem.getSubscriptionId(),
@@ -108,17 +111,24 @@ public class TestHelper {
}
}
- invoiceTestApi.create(invoice, context);
+ // invoiceTestApi.create(invoice, context);
+ ((ZombieControl)invoicePaymentApi).addResult("getInvoice", invoice);
+ InvoiceCreationEvent event = new MockInvoiceCreationEvent(invoice.getId(), invoice.getAccountId(),
+ invoice.getBalance(), invoice.getCurrency(),
+ invoice.getInvoiceDate(),
+ context.getUserToken());
+
+ eventBus.post(event);
return invoice;
}
- public Invoice createTestInvoice(Account account) {
+ public Invoice createTestInvoice(Account account) throws EventBusException {
final DateTime now = new DateTime(DateTimeZone.UTC);
final UUID subscriptionId = UUID.randomUUID();
final UUID bundleId = UUID.randomUUID();
final BigDecimal amount = new BigDecimal("10.00");
- final InvoiceItem item = new RecurringInvoiceItem(null, account.getId(), bundleId, subscriptionId, "test plan", "test phase", now, now.plusMonths(1),
+ final InvoiceItem item = new MockRecurringInvoiceItem(null, account.getId(), bundleId, subscriptionId, "test plan", "test phase", now, now.plusMonths(1),
amount, new BigDecimal("1.0"), Currency.USD);
diff --git a/payment/src/test/java/com/ning/billing/payment/TestRetryService.java b/payment/src/test/java/com/ning/billing/payment/TestRetryService.java
index aa9a664..5ab2157 100644
--- a/payment/src/test/java/com/ning/billing/payment/TestRetryService.java
+++ b/payment/src/test/java/com/ning/billing/payment/TestRetryService.java
@@ -25,10 +25,6 @@ import java.util.Arrays;
import java.util.List;
import java.util.UUID;
-import com.ning.billing.util.callcontext.CallContext;
-import com.ning.billing.util.callcontext.CallOrigin;
-import com.ning.billing.util.callcontext.DefaultCallContext;
-import com.ning.billing.util.callcontext.UserType;
import org.joda.time.DateTime;
import org.joda.time.Days;
import org.testng.annotations.AfterMethod;
@@ -39,12 +35,12 @@ import org.testng.annotations.Test;
import com.google.inject.Inject;
import com.ning.billing.account.api.Account;
-import com.ning.billing.account.glue.AccountModuleWithMocks;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.config.PaymentConfig;
import com.ning.billing.invoice.api.Invoice;
-import com.ning.billing.invoice.glue.InvoiceModuleWithMocks;
-import com.ning.billing.invoice.model.RecurringInvoiceItem;
+import com.ning.billing.invoice.api.InvoicePaymentApi;
+import com.ning.billing.mock.BrainDeadProxyFactory;
+import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
import com.ning.billing.mock.glue.MockJunctionModule;
import com.ning.billing.payment.api.Either;
import com.ning.billing.payment.api.PaymentApi;
@@ -57,13 +53,19 @@ import com.ning.billing.payment.provider.MockPaymentProviderPlugin;
import com.ning.billing.payment.provider.PaymentProviderPluginRegistry;
import com.ning.billing.payment.setup.PaymentTestModuleWithMocks;
import com.ning.billing.util.bus.Bus;
+import com.ning.billing.util.callcontext.CallContext;
+import com.ning.billing.util.callcontext.CallOrigin;
+import com.ning.billing.util.callcontext.DefaultCallContext;
+import com.ning.billing.util.callcontext.UserType;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.ClockMock;
+import com.ning.billing.util.clock.MockClockModule;
+import com.ning.billing.util.glue.CallContextModule;
import com.ning.billing.util.notificationq.MockNotificationQueue;
import com.ning.billing.util.notificationq.Notification;
import com.ning.billing.util.notificationq.NotificationQueueService;
-@Guice(modules = { PaymentTestModuleWithMocks.class, AccountModuleWithMocks.class, InvoiceModuleWithMocks.class, MockJunctionModule.class })
+@Guice(modules = { PaymentTestModuleWithMocks.class, MockClockModule.class, MockJunctionModule.class, CallContextModule.class })
@Test(groups = "fast")
public class TestRetryService {
@Inject
@@ -73,6 +75,8 @@ public class TestRetryService {
@Inject
private PaymentApi paymentApi;
@Inject
+ private InvoicePaymentApi invoicePaymentApi;
+ @Inject
private TestHelper testHelper;
@Inject
private PaymentProviderPluginRegistry registry;
@@ -103,6 +107,8 @@ public class TestRetryService {
mockPaymentProviderPlugin = (MockPaymentProviderPlugin)registry.getPlugin(null);
mockNotificationQueue = (MockNotificationQueue)notificationQueueService.getNotificationQueue(RetryService.SERVICE_NAME, RetryService.QUEUE_NAME);
context = new DefaultCallContext("RetryServiceTests", CallOrigin.INTERNAL, UserType.TEST, clock);
+ ((ZombieControl)invoicePaymentApi).addResult("notifyOfPaymentAttempt", BrainDeadProxyFactory.ZOMBIE_VOID);
+
}
@AfterMethod(alwaysRun = true)
@@ -121,7 +127,7 @@ public class TestRetryService {
final DateTime startDate = clock.getUTCNow();
final DateTime endDate = startDate.plusMonths(1);
- invoice.addInvoiceItem(new RecurringInvoiceItem(invoice.getId(),
+ invoice.addInvoiceItem(new MockRecurringInvoiceItem(invoice.getId(),
account.getId(),
subscriptionId,
bundleId,
@@ -164,7 +170,7 @@ public class TestRetryService {
final DateTime now = clock.getUTCNow();
- invoice.addInvoiceItem(new RecurringInvoiceItem(invoice.getId(),
+ invoice.addInvoiceItem(new MockRecurringInvoiceItem(invoice.getId(),
account.getId(),
subscriptionId,
bundleId,
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
index d621df9..f499e9a 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
@@ -21,6 +21,7 @@ import com.ning.billing.glue.InvoiceModule;
import com.ning.billing.invoice.api.InvoiceMigrationApi;
import com.ning.billing.invoice.api.InvoicePaymentApi;
import com.ning.billing.invoice.api.InvoiceUserApi;
+import com.ning.billing.invoice.api.test.InvoiceTestApi;
import com.ning.billing.mock.BrainDeadProxyFactory;
public class MockInvoiceModule extends AbstractModule implements InvoiceModule {
@@ -41,10 +42,16 @@ public class MockInvoiceModule extends AbstractModule implements InvoiceModule {
}
@Override
+ public void installInvoiceTestApi() {
+ bind(InvoiceTestApi.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(InvoiceTestApi.class));
+ }
+
+ @Override
protected void configure() {
installInvoiceUserApi();
installInvoicePaymentApi();
installInvoiceMigrationApi();
+ installInvoiceTestApi();
}
}