killbill-memoizeit
Changes
overdue/src/test/java/com/ning/billing/overdue/applicator/formatters/TestDefaultBillingStateFormatter.java 4(+2 -2)
overdue/src/test/java/com/ning/billing/overdue/applicator/TestOverdueStateApplicator.java 35(+10 -25)
overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculator.java 13(+3 -10)
overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculatorBundle.java 22(+3 -19)
overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java 147(+30 -117)
Details
diff --git a/account/src/test/java/com/ning/billing/account/glue/TestAccountModuleNoDB.java b/account/src/test/java/com/ning/billing/account/glue/TestAccountModuleNoDB.java
index 42378b0..53ed416 100644
--- a/account/src/test/java/com/ning/billing/account/glue/TestAccountModuleNoDB.java
+++ b/account/src/test/java/com/ning/billing/account/glue/TestAccountModuleNoDB.java
@@ -32,6 +32,7 @@ public class TestAccountModuleNoDB extends TestAccountModule {
@Override
public void configure() {
super.configure();
+
install(new GuicyKillbillTestNoDBModule());
install(new MockNonEntityDaoModule());
install(new InMemoryBusModule(configSource));
diff --git a/overdue/src/test/java/com/ning/billing/overdue/applicator/formatters/TestDefaultBillingStateFormatter.java b/overdue/src/test/java/com/ning/billing/overdue/applicator/formatters/TestDefaultBillingStateFormatter.java
index b0e7f0f..657750f 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/applicator/formatters/TestDefaultBillingStateFormatter.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/applicator/formatters/TestDefaultBillingStateFormatter.java
@@ -24,10 +24,10 @@ import org.joda.time.LocalDate;
import org.testng.Assert;
import org.testng.annotations.Test;
-import com.ning.billing.overdue.OverdueTestSuite;
+import com.ning.billing.overdue.OverdueTestSuiteNoDB;
import com.ning.billing.overdue.config.api.BillingState;
-public class TestDefaultBillingStateFormatter extends OverdueTestSuite {
+public class TestDefaultBillingStateFormatter extends OverdueTestSuiteNoDB {
@Test(groups = "fast")
public void testBalanceFormatting() throws Exception {
diff --git a/overdue/src/test/java/com/ning/billing/overdue/applicator/OverdueBusListenerTester.java b/overdue/src/test/java/com/ning/billing/overdue/applicator/OverdueBusListenerTester.java
index 692eadd..b8bb21d 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/applicator/OverdueBusListenerTester.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/applicator/OverdueBusListenerTester.java
@@ -22,27 +22,27 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.eventbus.Subscribe;
-
import com.ning.billing.util.events.OverdueChangeInternalEvent;
+import com.google.common.eventbus.Subscribe;
+
public class OverdueBusListenerTester {
- public static final Logger log = LoggerFactory.getLogger(OverdueBusListenerTester.class);
-
- private List<OverdueChangeInternalEvent> eventsReceived = new ArrayList<OverdueChangeInternalEvent>();
-
+
+ private static final Logger log = LoggerFactory.getLogger(OverdueBusListenerTester.class);
+
+ private final List<OverdueChangeInternalEvent> eventsReceived = new ArrayList<OverdueChangeInternalEvent>();
+
@Subscribe
public void handleOverdueChange(final OverdueChangeInternalEvent changeEvent) {
log.info("Received subscription transition.");
eventsReceived.add(changeEvent);
}
-
+
public List<OverdueChangeInternalEvent> getEventsReceived() {
return eventsReceived;
}
-
+
public void clearEventsReceived() {
eventsReceived.clear();
}
-
}
diff --git a/overdue/src/test/java/com/ning/billing/overdue/applicator/TestOverdueStateApplicator.java b/overdue/src/test/java/com/ning/billing/overdue/applicator/TestOverdueStateApplicator.java
index 6c2a9f7..5274d18 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/applicator/TestOverdueStateApplicator.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/applicator/TestOverdueStateApplicator.java
@@ -16,9 +16,6 @@
package com.ning.billing.overdue.applicator;
-import static com.jayway.awaitility.Awaitility.await;
-import static java.util.concurrent.TimeUnit.SECONDS;
-
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.List;
@@ -31,32 +28,21 @@ import org.testng.annotations.Test;
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
import com.ning.billing.overdue.OverdueState;
-import com.ning.billing.overdue.OverdueTestBase;
+import com.ning.billing.overdue.OverdueTestSuiteWithEmbeddedDB;
import com.ning.billing.overdue.config.OverdueConfig;
-import com.ning.billing.util.svcsapi.bus.InternalBus;
import com.ning.billing.util.config.catalog.XMLLoader;
import com.ning.billing.util.events.OverdueChangeInternalEvent;
import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
-import com.google.inject.Inject;
-
-public class TestOverdueStateApplicator extends OverdueTestBase {
-
- @Inject
- OverdueStateApplicator<SubscriptionBundle> applicator;
-
- @Inject
- OverdueBusListenerTester listener;
+import static com.jayway.awaitility.Awaitility.await;
+import static java.util.concurrent.TimeUnit.SECONDS;
- @Inject
- InternalBus bus;
+public class TestOverdueStateApplicator extends OverdueTestSuiteWithEmbeddedDB {
@Test(groups = "slow")
public void testApplicator() throws Exception {
- bus.register(listener);
- bus.start();
- final InputStream is = new ByteArrayInputStream(configXml.getBytes());
- config = XMLLoader.getObjectFromStreamNoValidation(is, OverdueConfig.class);
+ final InputStream is = new ByteArrayInputStream(testOverdueHelper.getConfigXml().getBytes());
+ final OverdueConfig config = XMLLoader.getObjectFromStreamNoValidation(is, OverdueConfig.class);
overdueWrapperFactory.setOverdueConfig(config);
final SubscriptionBundle bundle = Mockito.mock(SubscriptionBundle.class);
@@ -66,19 +52,18 @@ public class TestOverdueStateApplicator extends OverdueTestBase {
state = config.getBundleStateSet().findState("OD1");
applicator.apply(null, null, bundle, DefaultBlockingState.CLEAR_STATE_NAME, state, internalCallContext);
- checkStateApplied(state);
+ testOverdueHelper.checkStateApplied(state);
checkBussEvent("OD1");
state = config.getBundleStateSet().findState("OD2");
- applicator.apply(null, null,bundle, DefaultBlockingState.CLEAR_STATE_NAME, state, internalCallContext);
- checkStateApplied(state);
+ applicator.apply(null, null, bundle, DefaultBlockingState.CLEAR_STATE_NAME, state, internalCallContext);
+ testOverdueHelper.checkStateApplied(state);
checkBussEvent("OD2");
state = config.getBundleStateSet().findState("OD3");
applicator.apply(null, null, bundle, DefaultBlockingState.CLEAR_STATE_NAME, state, internalCallContext);
- checkStateApplied(state);
+ testOverdueHelper.checkStateApplied(state);
checkBussEvent("OD3");
- bus.stop();
}
private void checkBussEvent(final String state) throws Exception {
diff --git a/overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculator.java b/overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculator.java
index 57b83b4..bdc8112 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculator.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculator.java
@@ -34,20 +34,13 @@ import com.ning.billing.account.api.Account;
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItem;
-import com.ning.billing.overdue.OverdueTestSuite;
+import com.ning.billing.overdue.OverdueTestSuiteNoDB;
import com.ning.billing.overdue.config.api.BillingState;
import com.ning.billing.util.callcontext.InternalTenantContext;
-import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.clock.ClockMock;
-import com.ning.billing.util.svcapi.account.AccountInternalApi;
-import com.ning.billing.util.svcapi.invoice.InvoiceInternalApi;
-public class TestBillingStateCalculator extends OverdueTestSuite {
+public class TestBillingStateCalculator extends OverdueTestSuiteNoDB {
- Clock clock = new ClockMock();
- InvoiceInternalApi invoiceApi = Mockito.mock(InvoiceInternalApi.class);
- AccountInternalApi accountApi = Mockito.mock(AccountInternalApi.class);
- LocalDate now;
+ protected LocalDate now;
@BeforeMethod(groups = "fast")
public void setUp() throws Exception {
diff --git a/overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculatorBundle.java b/overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculatorBundle.java
index 029aba2..7c9f323 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculatorBundle.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculatorBundle.java
@@ -41,16 +41,14 @@ import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.overdue.config.api.BillingStateBundle;
import com.ning.billing.overdue.config.api.PaymentResponse;
import com.ning.billing.util.callcontext.InternalTenantContext;
-import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.clock.ClockMock;
import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
-import com.ning.billing.util.svcapi.invoice.InvoiceInternalApi;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
public class TestBillingStateCalculatorBundle extends TestBillingStateCalculator {
+
private List<InvoiceItem> createInvoiceItems(final UUID[] bundleIds) {
final List<InvoiceItem> result = new ArrayList<InvoiceItem>();
for (final UUID id : bundleIds) {
@@ -95,9 +93,6 @@ public class TestBillingStateCalculatorBundle extends TestBillingStateCalculator
invoices.add(createInvoice(now.plusDays(3), new BigDecimal("1000.00"), createInvoiceItems(new UUID[]{thisBundleId})));
invoices.add(createInvoice(now.plusDays(4), new BigDecimal("10000.00"), createInvoiceItems(new UUID[]{thatBundleId, thisBundleId})));
- final Clock clock = new ClockMock();
- final InvoiceInternalApi invoiceApi = Mockito.mock(InvoiceInternalApi.class);
- final EntitlementInternalApi entitlementApi = Mockito.mock(EntitlementInternalApi.class);
Mockito.when(invoiceApi.getUnpaidInvoicesByAccountId(Mockito.<UUID>any(), Mockito.<LocalDate>any(), Mockito.<InternalTenantContext>any())).thenReturn(Collections2.filter(invoices, new Predicate<Invoice>() {
@Override
public boolean apply(@Nullable final Invoice invoice) {
@@ -126,15 +121,12 @@ public class TestBillingStateCalculatorBundle extends TestBillingStateCalculator
invoices.add(createInvoice(now.minusDays(2), new BigDecimal("1000.00"), createInvoiceItems(new UUID[]{thisBundleId})));
invoices.add(createInvoice(now.minusDays(1), new BigDecimal("10000.00"), createInvoiceItems(new UUID[]{thatBundleId, thisBundleId})));
- final Clock clock = new ClockMock();
- final InvoiceInternalApi invoiceApi = Mockito.mock(InvoiceInternalApi.class);
Mockito.when(invoiceApi.getUnpaidInvoicesByAccountId(Mockito.<UUID>any(), Mockito.<LocalDate>any(), Mockito.<InternalTenantContext>any())).thenReturn(invoices);
final SubscriptionBundle bundle = Mockito.mock(SubscriptionBundle.class);
Mockito.when(bundle.getId()).thenReturn(thisBundleId);
Mockito.when(bundle.getAccountId()).thenReturn(UUID.randomUUID());
- final EntitlementInternalApi entitlementApi = Mockito.mock(EntitlementInternalApi.class);
final Subscription subscription = Mockito.mock(Subscription.class);
Mockito.when(entitlementApi.getBaseSubscription(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(subscription);
@@ -144,9 +136,7 @@ public class TestBillingStateCalculatorBundle extends TestBillingStateCalculator
Mockito.when(subscription.getCurrentPriceList()).thenReturn(pricelist);
Mockito.when(subscription.getCurrentPhase()).thenReturn(plan.getFinalPhase());
- final BillingStateCalculatorBundle calc = new BillingStateCalculatorBundle(entitlementApi, invoiceApi, accountApi, clock);
-
- final BillingStateBundle state = calc.calculateBillingState(bundle, internalCallContext);
+ final BillingStateBundle state = calculatorBundle.calculateBillingState(bundle, internalCallContext);
Assert.assertEquals(state.getNumberOfUnpaidInvoices(), 4);
Assert.assertEquals(state.getBalanceOfUnpaidInvoices().intValue(), 11100);
@@ -157,7 +147,6 @@ public class TestBillingStateCalculatorBundle extends TestBillingStateCalculator
Assert.assertEquals(state.getBasePlanPhaseType(), plan.getFinalPhase().getPhaseType());
Assert.assertEquals(state.getBasePlanPriceList(), pricelist);
Assert.assertEquals(state.getBasePlanProduct(), plan.getProduct());
-
}
@Test(groups = "fast")
@@ -167,15 +156,12 @@ public class TestBillingStateCalculatorBundle extends TestBillingStateCalculator
now = new LocalDate();
final List<Invoice> invoices = new ArrayList<Invoice>(5);
- final Clock clock = new ClockMock();
- final InvoiceInternalApi invoiceApi = Mockito.mock(InvoiceInternalApi.class);
Mockito.when(invoiceApi.getUnpaidInvoicesByAccountId(Mockito.<UUID>any(), Mockito.<LocalDate>any(), Mockito.<InternalTenantContext>any())).thenReturn(invoices);
final SubscriptionBundle bundle = Mockito.mock(SubscriptionBundle.class);
Mockito.when(bundle.getId()).thenReturn(thisBundleId);
Mockito.when(bundle.getAccountId()).thenReturn(UUID.randomUUID());
- final EntitlementInternalApi entitlementApi = Mockito.mock(EntitlementInternalApi.class);
final Subscription subscription = Mockito.mock(Subscription.class);
Mockito.when(entitlementApi.getBaseSubscription(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(subscription);
@@ -185,9 +171,7 @@ public class TestBillingStateCalculatorBundle extends TestBillingStateCalculator
Mockito.when(subscription.getCurrentPriceList()).thenReturn(pricelist);
Mockito.when(subscription.getCurrentPhase()).thenReturn(plan.getFinalPhase());
- final BillingStateCalculatorBundle calc = new BillingStateCalculatorBundle(entitlementApi, invoiceApi, accountApi, clock);
-
- final BillingStateBundle state = calc.calculateBillingState(bundle, internalCallContext);
+ final BillingStateBundle state = calculatorBundle.calculateBillingState(bundle, internalCallContext);
Assert.assertEquals(state.getNumberOfUnpaidInvoices(), 0);
Assert.assertEquals(state.getBalanceOfUnpaidInvoices().intValue(), 0);
diff --git a/overdue/src/test/java/com/ning/billing/overdue/config/io/TestReadConfig.java b/overdue/src/test/java/com/ning/billing/overdue/config/io/TestReadConfig.java
index efc1660..f194fd8 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/config/io/TestReadConfig.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/config/io/TestReadConfig.java
@@ -18,12 +18,14 @@ package com.ning.billing.overdue.config.io;
import org.testng.annotations.Test;
-import com.google.common.io.Resources;
-import com.ning.billing.overdue.OverdueTestSuite;
+import com.ning.billing.overdue.OverdueTestSuiteNoDB;
import com.ning.billing.overdue.config.OverdueConfig;
import com.ning.billing.util.config.catalog.XMLLoader;
-public class TestReadConfig extends OverdueTestSuite {
+import com.google.common.io.Resources;
+
+public class TestReadConfig extends OverdueTestSuiteNoDB {
+
@Test(groups = "fast")
public void testConfigLoad() throws Exception {
XMLLoader.getObjectFromString(Resources.getResource("OverdueConfig.xml").toExternalForm(), OverdueConfig.class);
diff --git a/overdue/src/test/java/com/ning/billing/overdue/config/MockOverdueRules.java b/overdue/src/test/java/com/ning/billing/overdue/config/MockOverdueRules.java
index 1452d9e..8c7e8bc 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/config/MockOverdueRules.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/config/MockOverdueRules.java
@@ -16,11 +16,10 @@
package com.ning.billing.overdue.config;
-
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
-
public class MockOverdueRules extends OverdueConfig {
+
public static final String CLEAR_STATE = "Clear";
@SuppressWarnings("unchecked")
diff --git a/overdue/src/test/java/com/ning/billing/overdue/config/MockOverdueStatesBundle.java b/overdue/src/test/java/com/ning/billing/overdue/config/MockOverdueStatesBundle.java
index 3519b7d..93c0fa4 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/config/MockOverdueStatesBundle.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/config/MockOverdueStatesBundle.java
@@ -21,11 +21,9 @@ import com.ning.billing.entitlement.api.user.SubscriptionBundle;
public class MockOverdueStatesBundle extends OverdueStatesBundle {
public MockOverdueStatesBundle() {
-
}
public MockOverdueStatesBundle(final DefaultOverdueState<SubscriptionBundle>[] states) {
setBundleOverdueStates(states);
}
-
}
diff --git a/overdue/src/test/java/com/ning/billing/overdue/config/TestCondition.java b/overdue/src/test/java/com/ning/billing/overdue/config/TestCondition.java
index 5f3542b..1a75d33 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/config/TestCondition.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/config/TestCondition.java
@@ -30,24 +30,20 @@ import org.testng.annotations.Test;
import com.ning.billing.ObjectType;
import com.ning.billing.junction.api.Blockable;
-import com.ning.billing.overdue.OverdueTestSuite;
+import com.ning.billing.overdue.OverdueTestSuiteNoDB;
import com.ning.billing.overdue.config.api.BillingState;
import com.ning.billing.overdue.config.api.PaymentResponse;
-import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.clock.ClockMock;
import com.ning.billing.util.config.catalog.XMLLoader;
import com.ning.billing.util.tag.ControlTagType;
import com.ning.billing.util.tag.DefaultControlTag;
import com.ning.billing.util.tag.DescriptiveTag;
import com.ning.billing.util.tag.Tag;
-public class TestCondition extends OverdueTestSuite {
+public class TestCondition extends OverdueTestSuiteNoDB {
@XmlRootElement(name = "condition")
private static class MockCondition extends DefaultCondition<Blockable> {}
- private Clock clock = new ClockMock();
-
@Test(groups = "fast")
public void testNumberOfUnpaidInvoicesEqualsOrExceeds() throws Exception {
final String xml =
@@ -157,8 +153,8 @@ public class TestCondition extends OverdueTestSuite {
final UUID objectId = new UUID(0L, 1L);
final BillingState<Blockable> state0 = new BillingState<Blockable>(objectId, 0, BigDecimal.ZERO, null,
DateTimeZone.UTC, unpaidInvoiceId, PaymentResponse.LOST_OR_STOLEN_CARD,
- new Tag[]{new DefaultControlTag( ControlTagType.AUTO_INVOICING_OFF, objectType, objectId, clock.getUTCNow()),
- new DescriptiveTag(UUID.randomUUID(), objectType, objectId, clock.getUTCNow())});
+ new Tag[]{new DefaultControlTag(ControlTagType.AUTO_INVOICING_OFF, objectType, objectId, clock.getUTCNow()),
+ new DescriptiveTag(UUID.randomUUID(), objectType, objectId, clock.getUTCNow())});
final BillingState<Blockable> state1 = new BillingState<Blockable>(objectId, 1, new BigDecimal("100.00"), now.minusDays(10),
DateTimeZone.UTC, unpaidInvoiceId, PaymentResponse.INSUFFICIENT_FUNDS,
diff --git a/overdue/src/test/java/com/ning/billing/overdue/config/TestOverdueConfig.java b/overdue/src/test/java/com/ning/billing/overdue/config/TestOverdueConfig.java
index 47043c4..c16d9c0 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/config/TestOverdueConfig.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/config/TestOverdueConfig.java
@@ -23,10 +23,10 @@ import org.testng.Assert;
import org.testng.annotations.Test;
import com.ning.billing.overdue.EmailNotification;
-import com.ning.billing.overdue.OverdueTestSuite;
+import com.ning.billing.overdue.OverdueTestSuiteNoDB;
import com.ning.billing.util.config.catalog.XMLLoader;
-public class TestOverdueConfig extends OverdueTestSuite {
+public class TestOverdueConfig extends OverdueTestSuiteNoDB {
@Test(groups = "fast")
public void testParseConfig() throws Exception {
diff --git a/overdue/src/test/java/com/ning/billing/overdue/glue/TestOverdueModule.java b/overdue/src/test/java/com/ning/billing/overdue/glue/TestOverdueModule.java
new file mode 100644
index 0000000..e5a4cca
--- /dev/null
+++ b/overdue/src/test/java/com/ning/billing/overdue/glue/TestOverdueModule.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2010-2013 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.overdue.glue;
+
+import java.util.Properties;
+
+import org.skife.config.ConfigSource;
+import org.skife.config.SimplePropertyConfigSource;
+
+import com.ning.billing.mock.glue.MockAccountModule;
+import com.ning.billing.mock.glue.MockEntitlementModule;
+import com.ning.billing.mock.glue.MockInvoiceModule;
+import com.ning.billing.mock.glue.MockTagModule;
+import com.ning.billing.overdue.TestOverdueHelper;
+import com.ning.billing.overdue.applicator.OverdueBusListenerTester;
+import com.ning.billing.util.email.EmailModule;
+import com.ning.billing.util.email.templates.TemplateModule;
+import com.ning.billing.util.glue.AuditModule;
+import com.ning.billing.util.glue.CacheModule;
+import com.ning.billing.util.glue.CallContextModule;
+import com.ning.billing.util.glue.CustomFieldModule;
+
+public class TestOverdueModule extends DefaultOverdueModule {
+
+ protected final ConfigSource configSource;
+
+ public TestOverdueModule() {
+ final Properties properties = new Properties(System.getProperties());
+ // Speed up the bus
+ properties.put("killbill.billing.util.persistent.bus.sleep", "10");
+ properties.put("killbill.billing.util.persistent.bus.nbThreads", "1");
+ configSource = new SimplePropertyConfigSource(properties);
+
+ // Ignore ehcache checks. Unfortunately, ehcache looks at system properties directly...
+ System.setProperty("net.sf.ehcache.skipUpdateCheck", "true");
+ }
+
+ @Override
+ protected void configure() {
+ super.configure();
+
+ install(new AuditModule());
+ install(new CacheModule());
+ install(new CallContextModule());
+ install(new CustomFieldModule());
+ install(new EmailModule());
+ install(new MockAccountModule());
+ install(new MockEntitlementModule());
+ install(new MockInvoiceModule());
+ install(new MockTagModule());
+ install(new TemplateModule());
+
+ // We can't use the dumb mocks in MockJunctionModule here
+ install(new ApplicatorMockJunctionModule());
+
+ bind(OverdueBusListenerTester.class).asEagerSingleton();
+ bind(TestOverdueHelper.class).asEagerSingleton();
+ }
+}
diff --git a/overdue/src/test/java/com/ning/billing/overdue/notification/MockOverdueCheckNotifier.java b/overdue/src/test/java/com/ning/billing/overdue/notification/MockOverdueCheckNotifier.java
index a427ddb..2aa6c71 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/notification/MockOverdueCheckNotifier.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/notification/MockOverdueCheckNotifier.java
@@ -19,6 +19,7 @@ package com.ning.billing.overdue.notification;
import com.ning.billing.ovedue.notification.OverdueCheckNotifier;
public class MockOverdueCheckNotifier implements OverdueCheckNotifier {
+
@Override
public void initialize() {
// do nothing
diff --git a/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java b/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java
index 7b21af7..4ac3149 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java
@@ -16,91 +16,42 @@
package com.ning.billing.overdue.notification;
-import java.io.IOException;
-import java.sql.SQLException;
import java.util.UUID;
import java.util.concurrent.Callable;
import org.joda.time.DateTime;
import org.mockito.Mockito;
-import org.skife.config.ConfigurationObjectFactory;
-import org.skife.jdbi.v2.IDBI;
import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.ning.billing.account.api.Account;
-import com.ning.billing.account.api.AccountApiException;
-import com.ning.billing.catalog.DefaultCatalogService;
-import com.ning.billing.catalog.api.CatalogService;
-import com.ning.billing.entitlement.api.user.EntitlementUserApiException;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.junction.api.Blockable;
-import com.ning.billing.lifecycle.KillbillService.ServiceException;
-import com.ning.billing.mock.glue.MockInvoiceModule;
-import com.ning.billing.mock.glue.MockJunctionModule;
-import com.ning.billing.mock.glue.MockPaymentModule;
import com.ning.billing.ovedue.notification.DefaultOverdueCheckNotifier;
-import com.ning.billing.ovedue.notification.DefaultOverdueCheckPoster;
import com.ning.billing.ovedue.notification.OverdueCheckNotificationKey;
-import com.ning.billing.ovedue.notification.OverdueCheckPoster;
-import com.ning.billing.overdue.OverdueProperties;
+import com.ning.billing.ovedue.notification.OverdueCheckNotifier;
import com.ning.billing.overdue.OverdueTestSuiteWithEmbeddedDB;
-import com.ning.billing.overdue.glue.DefaultOverdueModule;
import com.ning.billing.overdue.listener.OverdueListener;
-import com.ning.billing.util.cache.CacheControllerDispatcher;
-import com.ning.billing.util.callcontext.CallContextFactory;
-import com.ning.billing.util.callcontext.DefaultCallContextFactory;
import com.ning.billing.util.callcontext.InternalCallContextFactory;
import com.ning.billing.util.callcontext.InternalTenantContext;
-import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.clock.ClockMock;
-import com.ning.billing.util.config.CatalogConfig;
-import com.ning.billing.util.config.InvoiceConfig;
-import com.ning.billing.util.customfield.dao.CustomFieldDao;
-import com.ning.billing.util.customfield.dao.DefaultCustomFieldDao;
-import com.ning.billing.util.dao.DefaultNonEntityDao;
-import com.ning.billing.util.dao.NonEntityDao;
-import com.ning.billing.util.email.EmailModule;
-import com.ning.billing.util.email.templates.TemplateModule;
-import com.ning.billing.util.globallocker.GlobalLocker;
-import com.ning.billing.util.globallocker.MySqlGlobalLocker;
-import com.ning.billing.util.glue.BusModule;
-import com.ning.billing.util.glue.CacheModule;
-import com.ning.billing.util.glue.NonEntityDaoModule;
-import com.ning.billing.util.glue.NotificationQueueModule;
-import com.ning.billing.util.glue.TagStoreModule;
-import com.ning.billing.util.notificationq.NotificationQueueService;
-import com.ning.billing.util.svcapi.account.AccountInternalApi;
-import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
-import com.ning.billing.util.svcsapi.bus.InternalBus;
-import com.ning.billing.util.tag.dao.DefaultTagDao;
-import com.ning.billing.util.tag.dao.TagDao;
-
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Stage;
import static com.jayway.awaitility.Awaitility.await;
-import static java.util.concurrent.TimeUnit.MINUTES;
+import static java.util.concurrent.TimeUnit.SECONDS;
public class TestOverdueCheckNotifier extends OverdueTestSuiteWithEmbeddedDB {
- private Clock clock;
- private DefaultOverdueCheckNotifier notifier;
-
- private InternalBus eventBus;
- private OverdueListenerMock listener;
- private NotificationQueueService notificationQueueService;
+ private OverdueListenerMock mockListener;
+ private OverdueCheckNotifier notifierForMock;
private static final class OverdueListenerMock extends OverdueListener {
int eventCount = 0;
UUID latestSubscriptionId = null;
- public OverdueListenerMock() {
- super(null, new InternalCallContextFactory(new ClockMock(), new DefaultNonEntityDao(getDBI()), new CacheControllerDispatcher()));
+ public OverdueListenerMock(final InternalCallContextFactory internalCallContextFactory) {
+ super(null, internalCallContextFactory);
}
@Override
@@ -118,61 +69,30 @@ public class TestOverdueCheckNotifier extends OverdueTestSuiteWithEmbeddedDB {
}
}
- @BeforeClass(groups = "slow")
- public void setup() throws ServiceException, IOException, ClassNotFoundException, SQLException, EntitlementUserApiException, AccountApiException {
- final Injector g = Guice.createInjector(Stage.PRODUCTION, new MockInvoiceModule(), new MockPaymentModule(), new BusModule(), new TagStoreModule(),
- new DefaultOverdueModule() {
- @Override
- protected void configure() {
- super.configure();
- bind(Clock.class).to(ClockMock.class).asEagerSingleton();
- bind(CallContextFactory.class).to(DefaultCallContextFactory.class).asEagerSingleton();
- final InvoiceConfig invoiceConfig = new ConfigurationObjectFactory(System.getProperties()).build(InvoiceConfig.class);
- bind(InvoiceConfig.class).toInstance(invoiceConfig);
- final CatalogConfig catalogConfig = new ConfigurationObjectFactory(System.getProperties()).build(CatalogConfig.class);
- bind(CatalogConfig.class).toInstance(catalogConfig);
- bind(CatalogService.class).to(DefaultCatalogService.class).asEagerSingleton();
- final IDBI dbi = getDBI();
- bind(IDBI.class).toInstance(dbi);
- bind(TagDao.class).to(DefaultTagDao.class).asEagerSingleton();
- bind(CustomFieldDao.class).to(DefaultCustomFieldDao.class).asEagerSingleton();
- bind(GlobalLocker.class).to(MySqlGlobalLocker.class).asEagerSingleton();
- install(new MockJunctionModule());
- install(new EmailModule());
- install(new TemplateModule());
- install(new NotificationQueueModule());
- install(new CacheModule());
- install(new NonEntityDaoModule());
- final AccountInternalApi accountApi = Mockito.mock(AccountInternalApi.class);
- bind(AccountInternalApi.class).toInstance(accountApi);
-
- final EntitlementInternalApi entitlementApi = Mockito.mock(EntitlementInternalApi.class);
- bind(EntitlementInternalApi.class).toInstance(entitlementApi);
- }
- });
-
- clock = g.getInstance(Clock.class);
-
- eventBus = g.getInstance(InternalBus.class);
- notificationQueueService = g.getInstance(NotificationQueueService.class);
-
- final OverdueProperties properties = g.getInstance(OverdueProperties.class);
+ @Override
+ @BeforeMethod(groups = "slow")
+ public void setupTest() throws Exception {
+ // We override the parent method on purpose, because we want to register a different DefaultOverdueCheckNotifier
final Account account = Mockito.mock(Account.class);
- final AccountInternalApi accountApi = g.getInstance(AccountInternalApi.class);
Mockito.when(accountApi.getAccountById(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(account);
final Subscription subscription = Mockito.mock(Subscription.class);
- final EntitlementInternalApi entitlementApi = g.getInstance(EntitlementInternalApi.class);
Mockito.when(entitlementApi.getSubscriptionFromId(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(subscription);
- listener = new OverdueListenerMock();
- notifier = new DefaultOverdueCheckNotifier(notificationQueueService,
- properties, listener);
+ mockListener = new OverdueListenerMock(internalCallContextFactory);
+ notifierForMock = new DefaultOverdueCheckNotifier(notificationQueueService, overdueProperties, mockListener);
+
+ bus.start();
+ notifierForMock.initialize();
+ notifierForMock.start();
+ }
- eventBus.start();
- notifier.initialize();
- notifier.start();
+ @Override
+ @AfterMethod(groups = "slow")
+ public void cleanupTest() throws Exception {
+ notifierForMock.stop();
+ bus.stop();
}
@Test(groups = "slow")
@@ -180,29 +100,22 @@ public class TestOverdueCheckNotifier extends OverdueTestSuiteWithEmbeddedDB {
final UUID subscriptionId = new UUID(0L, 1L);
final Blockable blockable = Mockito.mock(Subscription.class);
Mockito.when(blockable.getId()).thenReturn(subscriptionId);
- final DateTime now = new DateTime();
+ final DateTime now = clock.getUTCNow();
final DateTime readyTime = now.plusMillis(2000);
- final OverdueCheckPoster poster = new DefaultOverdueCheckPoster(notificationQueueService);
poster.insertOverdueCheckNotification(blockable, readyTime, internalCallContext);
// Move time in the future after the notification effectiveDate
- ((ClockMock) clock).setDeltaFromReality(3000);
+ clock.setDeltaFromReality(3000);
- await().atMost(1, MINUTES).until(new Callable<Boolean>() {
+ await().atMost(5, SECONDS).until(new Callable<Boolean>() {
@Override
public Boolean call() throws Exception {
- return listener.getEventCount() == 1;
+ return mockListener.getEventCount() == 1;
}
});
- Assert.assertEquals(listener.getEventCount(), 1);
- Assert.assertEquals(listener.getLatestSubscriptionId(), subscriptionId);
- }
-
- @AfterClass(groups = "slow")
- public void tearDown() {
- eventBus.stop();
- notifier.stop();
+ Assert.assertEquals(mockListener.getEventCount(), 1);
+ Assert.assertEquals(mockListener.getLatestSubscriptionId(), subscriptionId);
}
}
diff --git a/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueNotificationKeyJson.java b/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueNotificationKeyJson.java
index 183ffae..4e3bb8e 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueNotificationKeyJson.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueNotificationKeyJson.java
@@ -13,9 +13,8 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
-package com.ning.billing.overdue.notification;
-import static org.testng.Assert.assertEquals;
+package com.ning.billing.overdue.notification;
import java.util.UUID;
@@ -26,16 +25,16 @@ import com.ning.billing.junction.api.Blockable;
import com.ning.billing.ovedue.notification.OverdueCheckNotificationKey;
import com.ning.billing.util.jackson.ObjectMapper;
-public class TestOverdueNotificationKeyJson {
+import static org.testng.Assert.assertEquals;
+public class TestOverdueNotificationKeyJson {
private final ObjectMapper mapper = new ObjectMapper();
@Test(groups = "fast")
public void testOverdueNotificationKeyJson() throws Exception {
-
final UUID uuid = UUID.randomUUID();
- final Blockable.Type type = Blockable.Type.SUBSCRIPTION;
+ final Blockable.Type type = Blockable.Type.SUBSCRIPTION;
final OverdueCheckNotificationKey e = new OverdueCheckNotificationKey(uuid, type);
@@ -48,9 +47,8 @@ public class TestOverdueNotificationKeyJson {
@Test(groups = "fast")
public void testOverdueNotificationKeyJsonWithNoKey() throws Exception {
-
final String uuidString = "bab0fca4-c628-4997-8980-14d6c3a98c48";
- final String json = "{\"uuidKey\":\"" + uuidString + "\"}";
+ final String json = "{\"uuidKey\":\"" + uuidString + "\"}";
final Class<?> claz = Class.forName(OverdueCheckNotificationKey.class.getName());
final OverdueCheckNotificationKey obj = (OverdueCheckNotificationKey) mapper.readValue(json, claz);
diff --git a/overdue/src/test/java/com/ning/billing/overdue/OverdueTestSuiteNoDB.java b/overdue/src/test/java/com/ning/billing/overdue/OverdueTestSuiteNoDB.java
new file mode 100644
index 0000000..e92fd8d
--- /dev/null
+++ b/overdue/src/test/java/com/ning/billing/overdue/OverdueTestSuiteNoDB.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2010-2012 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.overdue;
+
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+
+import com.ning.billing.GuicyKillbillTestSuiteNoDB;
+import com.ning.billing.entitlement.api.user.SubscriptionBundle;
+import com.ning.billing.ovedue.notification.OverdueCheckNotifier;
+import com.ning.billing.ovedue.notification.OverdueCheckPoster;
+import com.ning.billing.overdue.applicator.OverdueBusListenerTester;
+import com.ning.billing.overdue.applicator.OverdueStateApplicator;
+import com.ning.billing.overdue.calculator.BillingStateCalculatorBundle;
+import com.ning.billing.overdue.glue.TestOverdueModuleNoDB;
+import com.ning.billing.overdue.service.DefaultOverdueService;
+import com.ning.billing.overdue.wrapper.OverdueWrapperFactory;
+import com.ning.billing.util.callcontext.InternalCallContextFactory;
+import com.ning.billing.util.notificationq.NotificationQueueService;
+import com.ning.billing.util.notificationq.NotificationQueueService.NotificationQueueAlreadyExists;
+import com.ning.billing.util.svcapi.account.AccountInternalApi;
+import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
+import com.ning.billing.util.svcapi.invoice.InvoiceInternalApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
+import com.ning.billing.util.svcsapi.bus.BusService;
+import com.ning.billing.util.svcsapi.bus.InternalBus;
+
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+
+public abstract class OverdueTestSuiteNoDB extends GuicyKillbillTestSuiteNoDB {
+
+ @Inject
+ protected AccountInternalApi accountApi;
+ @Inject
+ protected BillingStateCalculatorBundle calculatorBundle;
+ @Inject
+ protected BlockingInternalApi blockingApi;
+ @Inject
+ protected BusService busService;
+ @Inject
+ protected DefaultOverdueService service;
+ @Inject
+ protected EntitlementInternalApi entitlementApi;
+ @Inject
+ protected InternalBus bus;
+ @Inject
+ protected InternalCallContextFactory internalCallContextFactory;
+ @Inject
+ protected InvoiceInternalApi invoiceApi;
+ @Inject
+ protected NotificationQueueService notificationQueueService;
+ @Inject
+ protected OverdueBusListenerTester listener;
+ @Inject
+ protected OverdueCheckNotifier notifier;
+ @Inject
+ protected OverdueCheckPoster poster;
+ @Inject
+ protected OverdueStateApplicator<SubscriptionBundle> applicator;
+ @Inject
+ protected OverdueUserApi overdueApi;
+ @Inject
+ protected OverdueProperties overdueProperties;
+ @Inject
+ protected OverdueWrapperFactory overdueWrapperFactory;
+ @Inject
+ protected TestOverdueHelper testOverdueHelper;
+
+ @BeforeClass(groups = "fast")
+ protected void setup() throws Exception {
+ final Injector injector = Guice.createInjector(new TestOverdueModuleNoDB());
+ injector.injectMembers(this);
+ }
+
+ @BeforeMethod(groups = "fast")
+ public void setupTest() {
+ bus.start();
+
+ service.registerForBus();
+ try {
+ service.initialize();
+ } catch (RuntimeException e) {
+ if (!(e.getCause() instanceof NotificationQueueAlreadyExists)) {
+ throw e;
+ }
+ }
+ service.start();
+ }
+
+ @AfterMethod(groups = "fast")
+ public void cleanupTest() {
+ service.stop();
+ bus.stop();
+ }
+}
diff --git a/overdue/src/test/java/com/ning/billing/overdue/OverdueTestSuiteWithEmbeddedDB.java b/overdue/src/test/java/com/ning/billing/overdue/OverdueTestSuiteWithEmbeddedDB.java
index 17380be..d439e55 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/OverdueTestSuiteWithEmbeddedDB.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/OverdueTestSuiteWithEmbeddedDB.java
@@ -16,7 +16,92 @@
package com.ning.billing.overdue;
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
-public abstract class OverdueTestSuiteWithEmbeddedDB extends KillbillTestSuiteWithEmbeddedDB {
+import com.ning.billing.GuicyKillbillTestSuiteWithEmbeddedDB;
+import com.ning.billing.entitlement.api.user.SubscriptionBundle;
+import com.ning.billing.ovedue.notification.OverdueCheckNotifier;
+import com.ning.billing.ovedue.notification.OverdueCheckPoster;
+import com.ning.billing.overdue.applicator.OverdueBusListenerTester;
+import com.ning.billing.overdue.applicator.OverdueStateApplicator;
+import com.ning.billing.overdue.calculator.BillingStateCalculatorBundle;
+import com.ning.billing.overdue.glue.TestOverdueModuleWithEmbeddedDB;
+import com.ning.billing.overdue.service.DefaultOverdueService;
+import com.ning.billing.overdue.wrapper.OverdueWrapperFactory;
+import com.ning.billing.util.callcontext.InternalCallContextFactory;
+import com.ning.billing.util.notificationq.NotificationQueueService;
+import com.ning.billing.util.svcapi.account.AccountInternalApi;
+import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
+import com.ning.billing.util.svcapi.invoice.InvoiceInternalApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
+import com.ning.billing.util.svcsapi.bus.BusService;
+import com.ning.billing.util.svcsapi.bus.InternalBus;
+
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+
+public abstract class OverdueTestSuiteWithEmbeddedDB extends GuicyKillbillTestSuiteWithEmbeddedDB {
+
+ @Inject
+ protected AccountInternalApi accountApi;
+ @Inject
+ protected BillingStateCalculatorBundle calculatorBundle;
+ @Inject
+ protected BlockingInternalApi blockingApi;
+ @Inject
+ protected BusService busService;
+ @Inject
+ protected DefaultOverdueService service;
+ @Inject
+ protected EntitlementInternalApi entitlementApi;
+ @Inject
+ protected InternalBus bus;
+ @Inject
+ protected InternalCallContextFactory internalCallContextFactory;
+ @Inject
+ protected InvoiceInternalApi invoiceApi;
+ @Inject
+ protected NotificationQueueService notificationQueueService;
+ @Inject
+ protected OverdueBusListenerTester listener;
+ @Inject
+ protected OverdueCheckNotifier notifier;
+ @Inject
+ protected OverdueCheckPoster poster;
+ @Inject
+ protected OverdueStateApplicator<SubscriptionBundle> applicator;
+ @Inject
+ protected OverdueUserApi overdueApi;
+ @Inject
+ protected OverdueProperties overdueProperties;
+ @Inject
+ protected OverdueWrapperFactory overdueWrapperFactory;
+ @Inject
+ protected TestOverdueHelper testOverdueHelper;
+
+ @BeforeClass(groups = "slow")
+ protected void setup() throws Exception {
+ final Injector injector = Guice.createInjector(new TestOverdueModuleWithEmbeddedDB());
+ injector.injectMembers(this);
+ }
+
+ @BeforeMethod(groups = "slow")
+ public void setupTest() throws Exception {
+ bus.register(listener);
+ bus.start();
+
+ // The service will initialize and start the notifier
+ service.registerForBus();
+ service.initialize();
+ service.start();
+ }
+
+ @AfterMethod(groups = "slow")
+ public void cleanupTest() throws Exception {
+ service.stop();
+ bus.stop();
+ }
}
diff --git a/overdue/src/test/java/com/ning/billing/overdue/wrapper/TestOverdueWrapper.java b/overdue/src/test/java/com/ning/billing/overdue/wrapper/TestOverdueWrapper.java
index d2aad4d..0a23fde 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/wrapper/TestOverdueWrapper.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/wrapper/TestOverdueWrapper.java
@@ -24,16 +24,17 @@ import org.testng.annotations.Test;
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
import com.ning.billing.overdue.OverdueState;
-import com.ning.billing.overdue.OverdueTestBase;
+import com.ning.billing.overdue.OverdueTestSuiteWithEmbeddedDB;
import com.ning.billing.overdue.config.OverdueConfig;
import com.ning.billing.util.config.catalog.XMLLoader;
import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
-public class TestOverdueWrapper extends OverdueTestBase {
+public class TestOverdueWrapper extends OverdueTestSuiteWithEmbeddedDB {
+
@Test(groups = "slow")
public void testWrapperBasic() throws Exception {
- final InputStream is = new ByteArrayInputStream(configXml.getBytes());
- config = XMLLoader.getObjectFromStreamNoValidation(is, OverdueConfig.class);
+ final InputStream is = new ByteArrayInputStream(testOverdueHelper.getConfigXml().getBytes());
+ final OverdueConfig config = XMLLoader.getObjectFromStreamNoValidation(is, OverdueConfig.class);
overdueWrapperFactory.setOverdueConfig(config);
SubscriptionBundle bundle;
@@ -41,22 +42,22 @@ public class TestOverdueWrapper extends OverdueTestBase {
OverdueState<SubscriptionBundle> state;
state = config.getBundleStateSet().findState("OD1");
- bundle = createBundle(clock.getUTCToday().minusDays(31));
+ bundle = testOverdueHelper.createBundle(clock.getUTCToday().minusDays(31));
wrapper = overdueWrapperFactory.createOverdueWrapperFor(bundle);
wrapper.refresh(internalCallContext);
- checkStateApplied(state);
+ testOverdueHelper.checkStateApplied(state);
state = config.getBundleStateSet().findState("OD2");
- bundle = createBundle(clock.getUTCToday().minusDays(41));
+ bundle = testOverdueHelper.createBundle(clock.getUTCToday().minusDays(41));
wrapper = overdueWrapperFactory.createOverdueWrapperFor(bundle);
wrapper.refresh(internalCallContext);
- checkStateApplied(state);
+ testOverdueHelper.checkStateApplied(state);
state = config.getBundleStateSet().findState("OD3");
- bundle = createBundle(clock.getUTCToday().minusDays(51));
+ bundle = testOverdueHelper.createBundle(clock.getUTCToday().minusDays(51));
wrapper = overdueWrapperFactory.createOverdueWrapperFor(bundle);
wrapper.refresh(internalCallContext);
- checkStateApplied(state);
+ testOverdueHelper.checkStateApplied(state);
}
@Test(groups = "slow")
@@ -67,10 +68,10 @@ public class TestOverdueWrapper extends OverdueTestBase {
final OverdueWrapper<SubscriptionBundle> wrapper;
final OverdueState<SubscriptionBundle> state;
- final InputStream is = new ByteArrayInputStream(configXml.getBytes());
- config = XMLLoader.getObjectFromStreamNoValidation(is, OverdueConfig.class);
+ final InputStream is = new ByteArrayInputStream(testOverdueHelper.getConfigXml().getBytes());
+ final OverdueConfig config = XMLLoader.getObjectFromStreamNoValidation(is, OverdueConfig.class);
state = config.getBundleStateSet().findState(DefaultBlockingState.CLEAR_STATE_NAME);
- bundle = createBundle(clock.getUTCToday().minusDays(31));
+ bundle = testOverdueHelper.createBundle(clock.getUTCToday().minusDays(31));
wrapper = overdueWrapperFactory.createOverdueWrapperFor(bundle);
final OverdueState<SubscriptionBundle> result = wrapper.refresh(internalCallContext);