killbill-memoizeit
Changes
.gitignore 1(+1 -0)
beatrix/pom.xml 4(+4 -0)
entitlement/pom.xml 153(+153 -0)
entitlement/src/main/java/com/ning/billing/entitlement/api/BlockingSubscriptionUserApi.java 4(+2 -2)
entitlement/src/main/java/com/ning/billing/entitlement/api/svcs/DefaultInternalBlockingApi.java 13(+6 -7)
entitlement/src/main/java/com/ning/billing/entitlement/glue/DefaultEntitlementModule.java 66(+66 -0)
entitlement/src/main/resources/com/ning/billing/entitlement/dao/BlockingStateSqlDao.sql.stg 0(+0 -0)
entitlement/src/test/java/com/ning/billing/entitlement/block/TestDefaultBlockingApi.java 41(+20 -21)
entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java 62(+62 -0)
entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleNoDB.java 31(+31 -0)
entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleWithEmbeddedDB.java 23(+23 -0)
junction/pom.xml 11(+11 -0)
junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java 47(+23 -24)
pom.xml 1(+1 -0)
Details
.gitignore 1(+1 -0)
diff --git a/.gitignore b/.gitignore
index ccd6ef3..a7077d4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
*.ipr
*.iws
*.DS_Store
+*.bak
target
staging
overlays
diff --git a/api/src/main/java/com/ning/billing/glue/EntitlementModule.java b/api/src/main/java/com/ning/billing/glue/EntitlementModule.java
new file mode 100644
index 0000000..29ac72f
--- /dev/null
+++ b/api/src/main/java/com/ning/billing/glue/EntitlementModule.java
@@ -0,0 +1,32 @@
+/*
+ * 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.glue;
+
+public interface EntitlementModule {
+ public void installAccountUserApi();
+
+ public void installSubscriptionUserApi();
+
+
+ public void installBlockingStateDao();
+
+ public void installBlockingApi();
+
+ public void installEntitlementApi();
+
+ public void installBlockingChecker();
+}
diff --git a/api/src/main/java/com/ning/billing/glue/JunctionModule.java b/api/src/main/java/com/ning/billing/glue/JunctionModule.java
index 0566fd7..b47b550 100644
--- a/api/src/main/java/com/ning/billing/glue/JunctionModule.java
+++ b/api/src/main/java/com/ning/billing/glue/JunctionModule.java
@@ -18,15 +18,5 @@ package com.ning.billing.glue;
public interface JunctionModule {
-
public void installBillingApi();
-
- public void installAccountUserApi();
-
- public void installBlockingApi();
-
- public void installSubscriptionUserApi();
-
- public void installJunctionApi();
-
}
beatrix/pom.xml 4(+4 -0)
diff --git a/beatrix/pom.xml b/beatrix/pom.xml
index 9cd1141..43e61b2 100644
--- a/beatrix/pom.xml
+++ b/beatrix/pom.xml
@@ -70,6 +70,10 @@
</dependency>
<dependency>
<groupId>com.ning.billing</groupId>
+ <artifactId>killbill-entitlement</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing</groupId>
<artifactId>killbill-internal-api</artifactId>
</dependency>
<dependency>
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java
index ed0359f..9fe2a7d 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java
@@ -20,6 +20,7 @@ import java.io.IOException;
import java.net.URL;
import java.util.Set;
+import com.ning.billing.entitlement.glue.DefaultEntitlementModule;
import org.skife.config.ConfigSource;
import com.ning.billing.GuicyKillbillTestWithEmbeddedDBModule;
@@ -109,6 +110,7 @@ public class BeatrixIntegrationModule extends AbstractModule {
install(new DefaultAccountModule(configSource));
install(new CatalogModule(configSource));
install(new DefaultSubscriptionModule(configSource));
+ install(new DefaultEntitlementModule(configSource));
install(new DefaultInvoiceModuleWithSwitchRepairLogic(configSource));
install(new TemplateModule());
install(new PaymentPluginMockModule(configSource));
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBundleTransfer.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBundleTransfer.java
index 9650a47..e3cfad7 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBundleTransfer.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBundleTransfer.java
@@ -16,13 +16,7 @@
package com.ning.billing.beatrix.integration;
-import java.math.BigDecimal;
-import java.util.List;
-
-import org.joda.time.DateTime;
-import org.joda.time.LocalDate;
-import org.testng.annotations.Test;
-
+import com.google.common.collect.ImmutableList;
import com.ning.billing.account.api.Account;
import com.ning.billing.api.TestApiListener.NextEvent;
import com.ning.billing.beatrix.util.InvoiceChecker.ExpectedInvoiceItemCheck;
@@ -30,13 +24,17 @@ import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.catalog.api.PriceListSet;
import com.ning.billing.catalog.api.ProductCategory;
-import com.ning.billing.subscription.api.user.SubscriptionData;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoiceItemType;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
+import com.ning.billing.subscription.api.user.SubscriptionData;
+import org.joda.time.DateTime;
+import org.joda.time.LocalDate;
+import org.testng.annotations.Test;
-import com.google.common.collect.ImmutableList;
+import java.math.BigDecimal;
+import java.util.List;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
@@ -66,9 +64,9 @@ public class TestBundleTransfer extends TestIntegrationBase {
busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.INVOICE);
final PlanPhaseSpecifier bpPlanPhaseSpecifier = new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, planSetName, null);
final SubscriptionData bpSubscription = subscriptionDataFromSubscription(subscriptionUserApi.createSubscription(bundle.getId(),
- bpPlanPhaseSpecifier,
- null,
- callContext));
+ bpPlanPhaseSpecifier,
+ null,
+ callContext));
assertNotNull(bpSubscription);
assertTrue(busHandler.isCompleted(DELAY));
assertListenerStatus();
@@ -126,9 +124,9 @@ public class TestBundleTransfer extends TestIntegrationBase {
busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.INVOICE);
final PlanPhaseSpecifier bpPlanPhaseSpecifier = new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, planSetName, null);
final SubscriptionData bpSubscription = subscriptionDataFromSubscription(subscriptionUserApi.createSubscription(bundle.getId(),
- bpPlanPhaseSpecifier,
- null,
- callContext));
+ bpPlanPhaseSpecifier,
+ null,
+ callContext));
assertNotNull(bpSubscription);
assertTrue(busHandler.isCompleted(DELAY));
assertListenerStatus();
@@ -193,9 +191,9 @@ public class TestBundleTransfer extends TestIntegrationBase {
busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.INVOICE);
final PlanPhaseSpecifier bpPlanPhaseSpecifier = new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, planSetName, null);
final SubscriptionData bpSubscription = subscriptionDataFromSubscription(subscriptionUserApi.createSubscription(bundle.getId(),
- bpPlanPhaseSpecifier,
- null,
- callContext));
+ bpPlanPhaseSpecifier,
+ null,
+ callContext));
assertNotNull(bpSubscription);
assertTrue(busHandler.isCompleted(DELAY));
assertListenerStatus();
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
index 1177ede..82b5e58 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
@@ -16,24 +16,13 @@
package com.ning.billing.beatrix.integration;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.UUID;
-
-import javax.annotation.Nullable;
-
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-import org.joda.time.LocalDate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-
+import com.google.common.base.Function;
+import com.google.common.base.Joiner;
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+import com.google.inject.Stage;
+import com.google.inject.name.Named;
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.AccountData;
import com.ning.billing.account.api.AccountService;
@@ -46,16 +35,17 @@ import com.ning.billing.beatrix.glue.BeatrixModule;
import com.ning.billing.beatrix.lifecycle.Lifecycle;
import com.ning.billing.beatrix.osgi.SetupBundleWithAssertion;
import com.ning.billing.beatrix.util.AccountChecker;
-import com.ning.billing.beatrix.util.SubscriptionChecker;
import com.ning.billing.beatrix.util.InvoiceChecker;
import com.ning.billing.beatrix.util.PaymentChecker;
import com.ning.billing.beatrix.util.RefundChecker;
+import com.ning.billing.beatrix.util.SubscriptionChecker;
import com.ning.billing.bus.api.PersistentBus;
import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.catalog.api.PriceListSet;
import com.ning.billing.catalog.api.ProductCategory;
+import com.ning.billing.entitlement.api.BlockingSubscription;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.api.InvoicePayment;
@@ -63,7 +53,6 @@ import com.ning.billing.invoice.api.InvoicePaymentApi;
import com.ning.billing.invoice.api.InvoiceService;
import com.ning.billing.invoice.api.InvoiceUserApi;
import com.ning.billing.invoice.model.InvoicingConfiguration;
-import com.ning.billing.junction.plumbing.api.BlockingSubscription;
import com.ning.billing.mock.MockAccountBuilder;
import com.ning.billing.overdue.OverdueUserApi;
import com.ning.billing.overdue.wrapper.OverdueWrapperFactory;
@@ -88,14 +77,22 @@ import com.ning.billing.util.config.OSGIConfig;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
import com.ning.billing.util.svcsapi.bus.BusService;
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.joda.time.LocalDate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.Assert;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
-import com.google.common.base.Function;
-import com.google.common.base.Joiner;
-import com.google.inject.Guice;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
-import com.google.inject.Stage;
-import com.google.inject.name.Named;
+import javax.annotation.Nullable;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
@@ -354,17 +351,17 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
protected AccountData getAccountData(final int billingDay) {
return new MockAccountBuilder().name(UUID.randomUUID().toString().substring(1, 8))
- .firstNameLength(6)
- .email(UUID.randomUUID().toString().substring(1, 8))
- .phone(UUID.randomUUID().toString().substring(1, 8))
- .migrated(false)
- .isNotifiedForInvoices(false)
- .externalKey(UUID.randomUUID().toString().substring(1, 8))
- .billingCycleDayLocal(billingDay)
- .currency(Currency.USD)
- .paymentMethodId(UUID.randomUUID())
- .timeZone(DateTimeZone.UTC)
- .build();
+ .firstNameLength(6)
+ .email(UUID.randomUUID().toString().substring(1, 8))
+ .phone(UUID.randomUUID().toString().substring(1, 8))
+ .migrated(false)
+ .isNotifiedForInvoices(false)
+ .externalKey(UUID.randomUUID().toString().substring(1, 8))
+ .billingCycleDayLocal(billingDay)
+ .currency(Currency.USD)
+ .paymentMethodId(UUID.randomUUID())
+ .timeZone(DateTimeZone.UTC)
+ .build();
}
protected void addMonthsAndCheckForCompletion(final int nbMonth, final NextEvent... events) {
@@ -497,9 +494,9 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
public Subscription apply(@Nullable final Void dontcare) {
try {
final Subscription subscription = subscriptionUserApi.createSubscription(bundleId,
- new PlanPhaseSpecifier(productName, productCategory, billingPeriod, PriceListSet.DEFAULT_PRICELIST_NAME, null),
- null,
- callContext);
+ new PlanPhaseSpecifier(productName, productCategory, billingPeriod, PriceListSet.DEFAULT_PRICELIST_NAME, null),
+ null,
+ callContext);
assertNotNull(subscription);
return subscription;
} catch (SubscriptionUserApiException e) {
@@ -555,7 +552,7 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
public Void apply(@Nullable final Void input) {
try {
invoiceUserApi.insertCreditForInvoice(account.getId(), invoice.getId(), invoice.getBalance(), invoice.getInvoiceDate(),
- account.getCurrency(), callContext);
+ account.getCurrency(), callContext);
} catch (InvoiceApiException e) {
fail(e.toString());
}
@@ -570,7 +567,7 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
public Void apply(@Nullable final Void input) {
try {
invoiceUserApi.insertInvoiceItemAdjustment(account.getId(), invoice.getId(), invoice.getInvoiceItems().get(itemNb - 1).getId(),
- invoice.getInvoiceDate(), callContext);
+ invoice.getInvoiceDate(), callContext);
} catch (InvoiceApiException e) {
fail(e.toString());
}
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/util/SubscriptionChecker.java b/beatrix/src/test/java/com/ning/billing/beatrix/util/SubscriptionChecker.java
index ec855f2..7db4b52 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/util/SubscriptionChecker.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/util/SubscriptionChecker.java
@@ -16,24 +16,22 @@
package com.ning.billing.beatrix.util;
-import java.util.List;
-import java.util.UUID;
-
-import javax.inject.Inject;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.Assert;
-
-import com.ning.billing.subscription.api.user.SubscriptionData;
-import com.ning.billing.subscription.api.user.SubscriptionTransitionData;
-import com.ning.billing.junction.plumbing.api.BlockingSubscription;
+import com.ning.billing.entitlement.api.BlockingSubscription;
import com.ning.billing.subscription.api.user.Subscription;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
+import com.ning.billing.subscription.api.user.SubscriptionData;
import com.ning.billing.subscription.api.user.SubscriptionTransition;
+import com.ning.billing.subscription.api.user.SubscriptionTransitionData;
import com.ning.billing.subscription.api.user.SubscriptionUserApi;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
import com.ning.billing.util.callcontext.CallContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.Assert;
+
+import javax.inject.Inject;
+import java.util.List;
+import java.util.UUID;
public class SubscriptionChecker {
entitlement/pom.xml 153(+153 -0)
diff --git a/entitlement/pom.xml b/entitlement/pom.xml
new file mode 100644
index 0000000..c2e9192
--- /dev/null
+++ b/entitlement/pom.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>killbill</artifactId>
+ <groupId>com.ning.billing</groupId>
+ <version>0.3.4-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>killbill-entitlement</artifactId>
+ <packaging>jar</packaging>
+ <name>killbill-entitlement</name>
+ <dependencies>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.inject</groupId>
+ <artifactId>guice</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing</groupId>
+ <artifactId>killbill-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing</groupId>
+ <artifactId>killbill-catalog</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing</groupId>
+ <artifactId>killbill-catalog</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing</groupId>
+ <artifactId>killbill-internal-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing</groupId>
+ <artifactId>killbill-util</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing</groupId>
+ <artifactId>killbill-util</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing.commons</groupId>
+ <artifactId>killbill-clock</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing.commons</groupId>
+ <artifactId>killbill-clock</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing.commons</groupId>
+ <artifactId>killbill-queue</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing.commons</groupId>
+ <artifactId>killbill-queue</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>joda-time</groupId>
+ <artifactId>joda-time</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-mxj</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-mxj-db-files</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.antlr</groupId>
+ <artifactId>stringtemplate</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jdbi</groupId>
+ <artifactId>jdbi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.skife.config</groupId>
+ <artifactId>config-magic</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/glue/DefaultEntitlementModule.java b/entitlement/src/main/java/com/ning/billing/entitlement/glue/DefaultEntitlementModule.java
new file mode 100644
index 0000000..3a9a99f
--- /dev/null
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/glue/DefaultEntitlementModule.java
@@ -0,0 +1,66 @@
+package com.ning.billing.entitlement.glue;
+
+import com.google.inject.AbstractModule;
+import com.ning.billing.account.api.AccountUserApi;
+import com.ning.billing.entitlement.api.BlockingAccountUserApi;
+import com.ning.billing.entitlement.api.BlockingSubscriptionUserApi;
+import com.ning.billing.entitlement.api.DefaultEntitlementApi;
+import com.ning.billing.entitlement.api.svcs.DefaultInternalBlockingApi;
+import com.ning.billing.entitlement.block.BlockingChecker;
+import com.ning.billing.entitlement.block.DefaultBlockingChecker;
+import com.ning.billing.entitlement.dao.BlockingStateDao;
+import com.ning.billing.entitlement.dao.DefaultBlockingStateDao;
+import com.ning.billing.glue.EntitlementModule;
+import com.ning.billing.junction.api.JunctionApi;
+import com.ning.billing.subscription.api.user.SubscriptionUserApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
+import org.skife.config.ConfigSource;
+
+public class DefaultEntitlementModule extends AbstractModule implements EntitlementModule {
+
+
+ public DefaultEntitlementModule(final ConfigSource configSource) {
+ }
+
+ @Override
+ protected void configure() {
+ installAccountUserApi();
+ installSubscriptionUserApi();
+ installBlockingStateDao();
+ installBlockingApi();
+ installEntitlementApi();
+ installBlockingChecker();
+ }
+
+ @Override
+ public void installBlockingStateDao() {
+ bind(BlockingStateDao.class).to(DefaultBlockingStateDao.class).asEagerSingleton();
+ }
+
+ @Override
+ public void installBlockingApi() {
+ bind(BlockingInternalApi.class).to(DefaultInternalBlockingApi.class).asEagerSingleton();
+ }
+
+ @Override
+ public void installAccountUserApi() {
+ bind(AccountUserApi.class).to(BlockingAccountUserApi.class).asEagerSingleton();
+ }
+
+
+ @Override
+ public void installSubscriptionUserApi() {
+ bind(SubscriptionUserApi.class).to(BlockingSubscriptionUserApi.class).asEagerSingleton();
+ }
+
+ @Override
+ public void installEntitlementApi() {
+ bind(JunctionApi.class).to(DefaultEntitlementApi.class).asEagerSingleton();
+ }
+
+ public void installBlockingChecker() {
+ bind(BlockingChecker.class).to(DefaultBlockingChecker.class).asEagerSingleton();
+ }
+
+
+}
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteNoDB.java b/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteNoDB.java
new file mode 100644
index 0000000..33467ec
--- /dev/null
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteNoDB.java
@@ -0,0 +1,66 @@
+package com.ning.billing.entitlement;
+
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+import com.ning.billing.GuicyKillbillTestSuiteNoDB;
+import com.ning.billing.bus.api.PersistentBus;
+import com.ning.billing.catalog.api.CatalogService;
+import com.ning.billing.entitlement.block.BlockingChecker;
+import com.ning.billing.entitlement.dao.BlockingStateDao;
+import com.ning.billing.entitlement.glue.TestEntitlementModuleNoDB;
+import com.ning.billing.subscription.api.user.SubscriptionUserApi;
+import com.ning.billing.util.glue.RealImplementation;
+import com.ning.billing.util.svcapi.account.AccountInternalApi;
+import com.ning.billing.util.svcapi.junction.BillingInternalApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
+import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
+import com.ning.billing.util.svcapi.tag.TagInternalApi;
+import com.ning.billing.util.tag.dao.TagDao;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+
+public abstract class EntitlementTestSuiteNoDB extends GuicyKillbillTestSuiteNoDB {
+
+ @Inject
+ protected AccountInternalApi accountInternalApi;
+ @Inject
+ protected BlockingInternalApi blockingInternalApi;
+ @Inject
+ protected BlockingStateDao blockingStateDao;
+ @Inject
+ protected CatalogService catalogService;
+ @Inject
+ @RealImplementation
+ protected SubscriptionUserApi subscriptionUserApi;
+ @Inject
+ protected SubscriptionInternalApi subscriptionInternalApi;
+ @Inject
+ protected PersistentBus bus;
+ @Inject
+ protected TagDao tagDao;
+ @Inject
+ protected TagInternalApi tagInternalApi;
+
+ @Inject
+ protected BlockingChecker blockingChecker;
+
+ @BeforeClass(groups = "fast")
+ protected void beforeClass() throws Exception {
+ final Injector injector = Guice.createInjector(new TestEntitlementModuleNoDB(configSource));
+ injector.injectMembers(this);
+ }
+
+ @BeforeMethod(groups = "fast")
+ public void beforeMethod() throws Exception {
+ bus.start();
+ }
+
+ @AfterMethod(groups = "fast")
+ public void afterMethod() {
+ bus.stop();
+ }
+
+
+}
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java b/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java
new file mode 100644
index 0000000..b9999fa
--- /dev/null
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java
@@ -0,0 +1,62 @@
+package com.ning.billing.entitlement;
+
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+import com.ning.billing.GuicyKillbillTestSuiteWithEmbeddedDB;
+import com.ning.billing.bus.api.PersistentBus;
+import com.ning.billing.catalog.api.CatalogService;
+import com.ning.billing.entitlement.dao.BlockingStateDao;
+import com.ning.billing.entitlement.glue.TestEntitlementModuleWithEmbeddedDB;
+import com.ning.billing.subscription.api.user.SubscriptionUserApi;
+import com.ning.billing.util.glue.RealImplementation;
+import com.ning.billing.util.svcapi.account.AccountInternalApi;
+import com.ning.billing.util.svcapi.junction.BillingInternalApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
+import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
+import com.ning.billing.util.svcapi.tag.TagInternalApi;
+import com.ning.billing.util.tag.dao.TagDao;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+
+public class EntitlementTestSuiteWithEmbeddedDB extends GuicyKillbillTestSuiteWithEmbeddedDB {
+
+
+ @Inject
+ protected AccountInternalApi accountInternalApi;
+ @Inject
+ protected BlockingInternalApi blockingInternalApi;
+ @Inject
+ protected BlockingStateDao blockingStateDao;
+ @Inject
+ protected CatalogService catalogService;
+ @Inject
+ @RealImplementation
+ protected SubscriptionUserApi subscriptionUserApi;
+ @Inject
+ protected SubscriptionInternalApi subscriptionInternalApi;
+ @Inject
+ protected PersistentBus bus;
+ @Inject
+ protected TagDao tagDao;
+ @Inject
+ protected TagInternalApi tagInternalApi;
+
+ @BeforeClass(groups = "slow")
+ protected void beforeClass() throws Exception {
+ final Injector injector = Guice.createInjector(new TestEntitlementModuleWithEmbeddedDB(configSource));
+ injector.injectMembers(this);
+ }
+
+ @BeforeMethod(groups = "slow")
+ public void beforeMethod() throws Exception {
+ super.beforeMethod();
+ bus.start();
+ }
+
+ @AfterMethod(groups = "slow")
+ public void afterMethod() {
+ bus.stop();
+ }
+}
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModule.java b/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModule.java
new file mode 100644
index 0000000..425b87b
--- /dev/null
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModule.java
@@ -0,0 +1,29 @@
+package com.ning.billing.entitlement.glue;
+
+import com.ning.billing.catalog.MockCatalogModule;
+import com.ning.billing.mock.glue.MockAccountModule;
+import com.ning.billing.mock.glue.MockSubscriptionModule;
+import com.ning.billing.util.glue.CacheModule;
+import com.ning.billing.util.glue.CallContextModule;
+import org.skife.config.ConfigSource;
+
+public class TestEntitlementModule extends DefaultEntitlementModule {
+
+ final protected ConfigSource configSource;
+
+ public TestEntitlementModule(final ConfigSource configSource) {
+ super(configSource);
+ this.configSource = configSource;
+ }
+
+ @Override
+ protected void configure() {
+ super.configure();
+ install(new CacheModule(configSource));
+ install(new CallContextModule());
+ install(new MockAccountModule());
+ install(new MockCatalogModule());
+ install(new MockSubscriptionModule());
+
+ }
+}
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleNoDB.java b/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleNoDB.java
new file mode 100644
index 0000000..6d3319d
--- /dev/null
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleNoDB.java
@@ -0,0 +1,31 @@
+package com.ning.billing.entitlement.glue;
+
+import com.ning.billing.GuicyKillbillTestNoDBModule;
+import com.ning.billing.entitlement.dao.BlockingStateDao;
+import com.ning.billing.entitlement.dao.MockBlockingStateDao;
+import com.ning.billing.mock.glue.MockNonEntityDaoModule;
+import com.ning.billing.mock.glue.MockTagModule;
+import com.ning.billing.util.bus.InMemoryBusModule;
+import org.skife.config.ConfigSource;
+
+public class TestEntitlementModuleNoDB extends TestEntitlementModule {
+
+ public TestEntitlementModuleNoDB(final ConfigSource configSource) {
+ super(configSource);
+ }
+
+ @Override
+ protected void configure() {
+ super.configure();
+ install(new GuicyKillbillTestNoDBModule());
+ install(new MockNonEntityDaoModule());
+ install(new InMemoryBusModule(configSource));
+ install(new MockTagModule());
+ }
+
+ @Override
+ public void installBlockingStateDao() {
+ bind(BlockingStateDao.class).to(MockBlockingStateDao.class).asEagerSingleton();
+ }
+
+}
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleWithEmbeddedDB.java b/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleWithEmbeddedDB.java
new file mode 100644
index 0000000..75f2325
--- /dev/null
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleWithEmbeddedDB.java
@@ -0,0 +1,23 @@
+package com.ning.billing.entitlement.glue;
+
+import com.ning.billing.GuicyKillbillTestWithEmbeddedDBModule;
+import com.ning.billing.util.glue.BusModule;
+import com.ning.billing.util.glue.NonEntityDaoModule;
+import com.ning.billing.util.glue.TagStoreModule;
+import org.skife.config.ConfigSource;
+
+public class TestEntitlementModuleWithEmbeddedDB extends TestEntitlementModule {
+
+ public TestEntitlementModuleWithEmbeddedDB(final ConfigSource configSource) {
+ super(configSource);
+ }
+
+ @Override
+ protected void configure() {
+ super.configure();
+ install(new GuicyKillbillTestWithEmbeddedDBModule());
+ install(new NonEntityDaoModule());
+ install(new BusModule(configSource));
+ install(new TagStoreModule());
+ }
+}
junction/pom.xml 11(+11 -0)
diff --git a/junction/pom.xml b/junction/pom.xml
index 41e1860..42a7c6d 100644
--- a/junction/pom.xml
+++ b/junction/pom.xml
@@ -66,6 +66,17 @@
</dependency>
<dependency>
<groupId>com.ning.billing</groupId>
+ <artifactId>killbill-entitlement</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing</groupId>
+ <artifactId>killbill-entitlement</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing</groupId>
<artifactId>killbill-internal-api</artifactId>
</dependency>
<dependency>
diff --git a/junction/src/main/java/com/ning/billing/junction/glue/DefaultJunctionModule.java b/junction/src/main/java/com/ning/billing/junction/glue/DefaultJunctionModule.java
index d9e4722..532fb35 100644
--- a/junction/src/main/java/com/ning/billing/junction/glue/DefaultJunctionModule.java
+++ b/junction/src/main/java/com/ning/billing/junction/glue/DefaultJunctionModule.java
@@ -16,26 +16,12 @@
package com.ning.billing.junction.glue;
-import org.skife.config.ConfigSource;
-
-import com.ning.billing.account.api.AccountUserApi;
+import com.google.inject.AbstractModule;
import com.ning.billing.glue.JunctionModule;
-import com.ning.billing.junction.api.DefaultJunctionApi;
-import com.ning.billing.junction.api.JunctionApi;
-import com.ning.billing.junction.api.svcs.DefaultInternalBlockingApi;
-import com.ning.billing.junction.block.BlockingChecker;
-import com.ning.billing.junction.block.DefaultBlockingChecker;
-import com.ning.billing.junction.dao.BlockingStateDao;
-import com.ning.billing.junction.dao.DefaultBlockingStateDao;
-import com.ning.billing.junction.plumbing.api.BlockingAccountUserApi;
-import com.ning.billing.junction.plumbing.api.BlockingSubscriptionUserApi;
import com.ning.billing.junction.plumbing.billing.BlockingCalculator;
import com.ning.billing.junction.plumbing.billing.DefaultInternalBillingApi;
-import com.ning.billing.subscription.api.user.SubscriptionUserApi;
import com.ning.billing.util.svcapi.junction.BillingInternalApi;
-import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
-
-import com.google.inject.AbstractModule;
+import org.skife.config.ConfigSource;
public class DefaultJunctionModule extends AbstractModule implements JunctionModule {
@@ -47,49 +33,18 @@ public class DefaultJunctionModule extends AbstractModule implements JunctionMod
@Override
protected void configure() {
- // External
- installBlockingApi();
- installAccountUserApi();
installBillingApi();
- installSubscriptionUserApi();
- installBlockingChecker();
- installJunctionApi();
-
- // Internal
installBlockingCalculator();
- installBlockingStateDao();
- }
-
- public void installBlockingChecker() {
- bind(BlockingChecker.class).to(DefaultBlockingChecker.class).asEagerSingleton();
}
+ @Override
public void installBillingApi() {
bind(BillingInternalApi.class).to(DefaultInternalBillingApi.class).asEagerSingleton();
}
- public void installBlockingStateDao() {
- bind(BlockingStateDao.class).to(DefaultBlockingStateDao.class).asEagerSingleton();
- }
-
- public void installAccountUserApi() {
- bind(AccountUserApi.class).to(BlockingAccountUserApi.class).asEagerSingleton();
- }
-
- public void installSubscriptionUserApi() {
- bind(SubscriptionUserApi.class).to(BlockingSubscriptionUserApi.class).asEagerSingleton();
- }
-
- public void installBlockingApi() {
- bind(BlockingInternalApi.class).to(DefaultInternalBlockingApi.class).asEagerSingleton();
- }
public void installBlockingCalculator() {
bind(BlockingCalculator.class).asEagerSingleton();
}
- @Override
- public void installJunctionApi() {
- bind(JunctionApi.class).to(DefaultJunctionApi.class).asEagerSingleton();
- }
}
diff --git a/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModule.java b/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModule.java
index 732ff93..1324917 100644
--- a/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModule.java
+++ b/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModule.java
@@ -16,6 +16,11 @@
package com.ning.billing.junction.glue;
+import com.ning.billing.entitlement.api.svcs.DefaultInternalBlockingApi;
+import com.ning.billing.entitlement.dao.BlockingStateDao;
+import com.ning.billing.entitlement.dao.MockBlockingStateDao;
+import com.ning.billing.mock.glue.MockEntitlementModule;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
import org.skife.config.ConfigSource;
import com.ning.billing.catalog.MockCatalogModule;
@@ -39,5 +44,19 @@ public class TestJunctionModule extends DefaultJunctionModule {
install(new MockAccountModule());
install(new MockCatalogModule());
install(new MockSubscriptionModule());
+ install(new MockEntitlementModuleForJunction());
+ }
+
+ public class MockEntitlementModuleForJunction extends MockEntitlementModule {
+
+ @Override
+ public void installBlockingApi() {
+ bind(BlockingInternalApi.class).to(DefaultInternalBlockingApi.class).asEagerSingleton();
+ }
+
+ @Override
+ public void installBlockingStateDao() {
+ bind(BlockingStateDao.class).to(MockBlockingStateDao.class).asEagerSingleton();
+ }
}
}
diff --git a/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModuleNoDB.java b/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModuleNoDB.java
index 2139fe6..c7d2be2 100644
--- a/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModuleNoDB.java
+++ b/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModuleNoDB.java
@@ -19,8 +19,6 @@ package com.ning.billing.junction.glue;
import org.skife.config.ConfigSource;
import com.ning.billing.GuicyKillbillTestNoDBModule;
-import com.ning.billing.junction.dao.BlockingStateDao;
-import com.ning.billing.junction.dao.MockBlockingStateDao;
import com.ning.billing.mock.glue.MockNonEntityDaoModule;
import com.ning.billing.mock.glue.MockTagModule;
import com.ning.billing.util.bus.InMemoryBusModule;
@@ -32,11 +30,6 @@ public class TestJunctionModuleNoDB extends TestJunctionModule {
}
@Override
- public void installBlockingStateDao() {
- bind(BlockingStateDao.class).toInstance(new MockBlockingStateDao());
- }
-
- @Override
protected void configure() {
super.configure();
diff --git a/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteNoDB.java b/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteNoDB.java
index 978268f..cc65b12 100644
--- a/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteNoDB.java
+++ b/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteNoDB.java
@@ -16,30 +16,27 @@
package com.ning.billing.junction;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
import com.ning.billing.GuicyKillbillTestSuiteNoDB;
import com.ning.billing.bus.api.PersistentBus;
import com.ning.billing.catalog.api.CatalogService;
-import com.ning.billing.junction.block.BlockingChecker;
-import com.ning.billing.junction.dao.BlockingStateDao;
+import com.ning.billing.entitlement.dao.BlockingStateDao;
import com.ning.billing.junction.glue.TestJunctionModuleNoDB;
import com.ning.billing.junction.plumbing.billing.BillCycleDayCalculator;
import com.ning.billing.junction.plumbing.billing.BlockingCalculator;
import com.ning.billing.subscription.api.user.SubscriptionUserApi;
import com.ning.billing.util.glue.RealImplementation;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
-import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
import com.ning.billing.util.svcapi.junction.BillingInternalApi;
import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
+import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
import com.ning.billing.util.svcapi.tag.TagInternalApi;
import com.ning.billing.util.tag.dao.TagDao;
-
-import com.google.inject.Guice;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
public abstract class JunctionTestSuiteNoDB extends GuicyKillbillTestSuiteNoDB {
@@ -52,12 +49,8 @@ public abstract class JunctionTestSuiteNoDB extends GuicyKillbillTestSuiteNoDB {
@Inject
protected BlockingCalculator blockingCalculator;
@Inject
- protected BlockingChecker blockingChecker;
- @Inject
protected BlockingInternalApi blockingInternalApi;
@Inject
- protected BlockingStateDao blockingStateDao;
- @Inject
protected CatalogService catalogService;
@Inject
@RealImplementation
@@ -70,6 +63,8 @@ public abstract class JunctionTestSuiteNoDB extends GuicyKillbillTestSuiteNoDB {
protected TagDao tagDao;
@Inject
protected TagInternalApi tagInternalApi;
+ @Inject
+ protected BlockingStateDao blockingStateDao;
@BeforeClass(groups = "fast")
protected void beforeClass() throws Exception {
diff --git a/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteWithEmbeddedDB.java b/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteWithEmbeddedDB.java
index a4625c9..28e5a88 100644
--- a/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteWithEmbeddedDB.java
+++ b/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteWithEmbeddedDB.java
@@ -16,29 +16,25 @@
package com.ning.billing.junction;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
import com.ning.billing.GuicyKillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.bus.api.PersistentBus;
import com.ning.billing.catalog.api.CatalogService;
-import com.ning.billing.junction.block.BlockingChecker;
-import com.ning.billing.junction.dao.BlockingStateDao;
import com.ning.billing.junction.glue.TestJunctionModuleWithEmbeddedDB;
import com.ning.billing.junction.plumbing.billing.BlockingCalculator;
import com.ning.billing.subscription.api.user.SubscriptionUserApi;
import com.ning.billing.util.glue.RealImplementation;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
-import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
import com.ning.billing.util.svcapi.junction.BillingInternalApi;
import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
+import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
import com.ning.billing.util.svcapi.tag.TagInternalApi;
import com.ning.billing.util.tag.dao.TagDao;
-
-import com.google.inject.Guice;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
public abstract class JunctionTestSuiteWithEmbeddedDB extends GuicyKillbillTestSuiteWithEmbeddedDB {
@@ -49,12 +45,8 @@ public abstract class JunctionTestSuiteWithEmbeddedDB extends GuicyKillbillTestS
@Inject
protected BlockingCalculator blockingCalculator;
@Inject
- protected BlockingChecker blockingChecker;
- @Inject
protected BlockingInternalApi blockingInternalApi;
@Inject
- protected BlockingStateDao blockingStateDao;
- @Inject
protected CatalogService catalogService;
@Inject
@RealImplementation
diff --git a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java
index 98f7e6c..932b9e9 100644
--- a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java
+++ b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java
@@ -16,20 +16,7 @@
package com.ning.billing.junction.plumbing.billing;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.SortedSet;
-import java.util.UUID;
-
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-import org.mockito.Mockito;
-import org.testng.Assert;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
+import com.google.common.collect.ImmutableList;
import com.ning.billing.ObjectType;
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.AccountApiException;
@@ -42,16 +29,16 @@ import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.catalog.api.PriceList;
import com.ning.billing.catalog.api.PriceListSet;
-import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
-import com.ning.billing.subscription.api.user.SubscriptionState;
-import com.ning.billing.subscription.api.user.SubscriptionBundle;
+import com.ning.billing.entitlement.dao.MockBlockingStateDao;
import com.ning.billing.junction.JunctionTestSuiteNoDB;
import com.ning.billing.junction.api.BlockingState;
import com.ning.billing.junction.api.Type;
-import com.ning.billing.junction.dao.MockBlockingStateDao;
import com.ning.billing.mock.MockEffectiveSubscriptionEvent;
import com.ning.billing.mock.MockSubscription;
+import com.ning.billing.subscription.api.SubscriptionTransitionType;
+import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.user.SubscriptionBundle;
+import com.ning.billing.subscription.api.user.SubscriptionState;
import com.ning.billing.util.api.TagApiException;
import com.ning.billing.util.callcontext.InternalTenantContext;
import com.ning.billing.util.events.EffectiveSubscriptionInternalEvent;
@@ -61,8 +48,19 @@ import com.ning.billing.util.svcapi.junction.BillingModeType;
import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
import com.ning.billing.util.tag.ControlTagType;
import com.ning.billing.util.tag.dao.MockTagDao;
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.mockito.Mockito;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
-import com.google.common.collect.ImmutableList;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.SortedSet;
+import java.util.UUID;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNull;
@@ -81,7 +79,7 @@ public class TestBillingApi extends JunctionTestSuiteNoDB {
private MockCatalog catalog;
@BeforeMethod(groups = "fast")
- public void beforeMethod() throws Exception {
+ public void beforeMethod() throws Exception {
super.beforeMethod();
final SubscriptionBundle bundle = Mockito.mock(SubscriptionBundle.class);
Mockito.when(bundle.getId()).thenReturn(bunId);
@@ -282,7 +280,7 @@ public class TestBillingApi extends JunctionTestSuiteNoDB {
eventId, subId, bunId, then, now, null, null, null, null, SubscriptionState.ACTIVE,
nextPlan.getName(), nextPhase.getName(),
nextPriceList.getName(), 1L,
- SubscriptionTransitionType.CREATE, 1, null, 1L, 2L, null);
+ SubscriptionTransitionType.CREATE, 1, null, 1L, 2L, null);
effectiveSubscriptionTransitions.add(t);
return now;
diff --git a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java
index 172ffd3..46eef52 100644
--- a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java
+++ b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java
@@ -16,22 +16,6 @@
package com.ning.billing.junction.plumbing.billing;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import java.util.UUID;
-
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-import org.joda.time.LocalDate;
-import org.mockito.Mockito;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
import com.ning.billing.account.api.Account;
import com.ning.billing.catalog.MockPlan;
import com.ning.billing.catalog.MockPlanPhase;
@@ -39,16 +23,31 @@ import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
-import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.entitlement.dao.MockBlockingStateDao;
import com.ning.billing.junction.JunctionTestSuiteNoDB;
-import com.ning.billing.junction.api.Type;
import com.ning.billing.junction.api.BlockingState;
-import com.ning.billing.junction.dao.MockBlockingStateDao;
+import com.ning.billing.junction.api.Type;
import com.ning.billing.junction.plumbing.billing.BlockingCalculator.DisabledDuration;
+import com.ning.billing.subscription.api.SubscriptionTransitionType;
+import com.ning.billing.subscription.api.user.Subscription;
import com.ning.billing.util.svcapi.junction.BillingEvent;
import com.ning.billing.util.svcapi.junction.BillingModeType;
import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.joda.time.LocalDate;
+import org.mockito.Mockito;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.UUID;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
@@ -539,9 +538,9 @@ public class TestBlockingCalculator extends JunctionTestSuiteNoDB {
final DateTimeZone tz = DateTimeZone.UTC;
return new DefaultBillingEvent(account, subscription, effectiveDate, plan, planPhase,
- fixedPrice, recurringPrice, currency,
- billingPeriod, billCycleDay, billingModeType,
- description, totalOrdering, type, tz);
+ fixedPrice, recurringPrice, currency,
+ billingPeriod, billCycleDay, billingModeType,
+ description, totalOrdering, type, tz);
}
@Test(groups = "fast")
@@ -611,7 +610,7 @@ public class TestBlockingCalculator extends JunctionTestSuiteNoDB {
public MockBillingEvent() {
super(account, subscription1, clock.getUTCNow(), null, null, BigDecimal.ZERO, BigDecimal.TEN, Currency.USD, BillingPeriod.ANNUAL,
- 4, BillingModeType.IN_ADVANCE, "", 3L, SubscriptionTransitionType.CREATE, DateTimeZone.UTC);
+ 4, BillingModeType.IN_ADVANCE, "", 3L, SubscriptionTransitionType.CREATE, DateTimeZone.UTC);
}
}
diff --git a/overdue/src/test/java/com/ning/billing/overdue/glue/ApplicatorMockJunctionModule.java b/overdue/src/test/java/com/ning/billing/overdue/glue/ApplicatorMockJunctionModule.java
index 7d010dc..33422cc 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/glue/ApplicatorMockJunctionModule.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/glue/ApplicatorMockJunctionModule.java
@@ -16,21 +16,26 @@
package com.ning.billing.overdue.glue;
-import java.util.List;
-import java.util.UUID;
-
-import org.joda.time.DateTime;
-
+import com.google.inject.AbstractModule;
import com.ning.billing.junction.api.Blockable;
-import com.ning.billing.junction.api.Type;
import com.ning.billing.junction.api.BlockingState;
+import com.ning.billing.junction.api.Type;
import com.ning.billing.mock.glue.MockJunctionModule;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
+import org.joda.time.DateTime;
-public class ApplicatorMockJunctionModule extends MockJunctionModule {
+import java.util.List;
+import java.util.UUID;
+
+public class ApplicatorMockJunctionModule extends AbstractModule {
+
+ @Override
+ protected void configure() {
+ installBlockingApi();
+ }
public static class ApplicatorBlockingApi implements BlockingInternalApi {
@@ -134,7 +139,6 @@ public class ApplicatorMockJunctionModule extends MockJunctionModule {
}
- @Override
public void installBlockingApi() {
bind(BlockingInternalApi.class).toInstance(new ApplicatorBlockingApi());
}
pom.xml 1(+1 -0)
diff --git a/pom.xml b/pom.xml
index fcdb4f2..6fe176c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,6 +33,7 @@
<module>beatrix</module>
<module>catalog</module>
<module>subscription</module>
+ <module>entitlement</module>
<module>invoice</module>
<module>junction</module>
<module>overdue</module>
diff --git a/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java b/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
index 8fd4034..bde80c8 100644
--- a/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
+++ b/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
@@ -16,6 +16,7 @@
package com.ning.billing.server.modules;
+import com.ning.billing.entitlement.glue.DefaultEntitlementModule;
import org.skife.config.ConfigSource;
import org.skife.config.SimplePropertyConfigSource;
import org.skife.jdbi.v2.DBI;
@@ -130,6 +131,7 @@ public class KillbillServerModule extends AbstractModule {
install(new DefaultInvoiceModule(configSource));
install(new TemplateModule());
install(new DefaultSubscriptionModule(configSource));
+ install(new DefaultEntitlementModule(configSource));
install(new PaymentModule(configSource));
install(new BeatrixModule());
install(new DefaultJunctionModule(configSource));
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
index 3233ebb..855471a 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
@@ -26,6 +26,7 @@ import java.util.Map;
import javax.inject.Inject;
import javax.servlet.Servlet;
+import com.ning.billing.entitlement.glue.DefaultEntitlementModule;
import org.eclipse.jetty.servlet.FilterHolder;
import org.joda.time.LocalDate;
import org.skife.config.ConfigSource;
@@ -209,6 +210,7 @@ public class TestJaxrsBase extends KillbillClient {
install(new InvoiceModuleWithMockSender(configSource));
install(new TemplateModule());
install(new DefaultSubscriptionModule(configSource));
+ install(new DefaultEntitlementModule(configSource));
install(new PaymentMockModule(configSource));
install(new BeatrixModule());
install(new DefaultJunctionModule(configSource));
diff --git a/util/src/test/java/com/ning/billing/dbi/DBTestingHelper.java b/util/src/test/java/com/ning/billing/dbi/DBTestingHelper.java
index 9c106af..a887961 100644
--- a/util/src/test/java/com/ning/billing/dbi/DBTestingHelper.java
+++ b/util/src/test/java/com/ning/billing/dbi/DBTestingHelper.java
@@ -96,7 +96,7 @@ public abstract class DBTestingHelper {
initDb("drop table if exists subscriptions; create table subscriptions(record_id int(11) unsigned not null auto_increment, id char(36) not null, " +
"account_record_id int(11) unsigned not null, tenant_record_id int(11) unsigned default 0, primary key(record_id));");
- for (final String pack : new String[]{"account", "analytics", "beatrix", "subscription", "util", "payment", "invoice", "junction", "usage", "meter", "tenant"}) {
+ for (final String pack : new String[]{"account", "analytics", "beatrix", "subscription", "util", "payment", "invoice", "entitlement", "usage", "meter", "tenant"}) {
for (final String ddlFile : new String[]{"ddl.sql", "ddl_test.sql"}) {
final String ddl;
try {
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java
new file mode 100644
index 0000000..944ae7d
--- /dev/null
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java
@@ -0,0 +1,71 @@
+/*
+ * 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.mock.glue;
+
+import com.google.inject.AbstractModule;
+import com.ning.billing.account.api.AccountUserApi;
+import com.ning.billing.glue.EntitlementModule;
+import com.ning.billing.junction.api.JunctionApi;
+import com.ning.billing.subscription.api.user.SubscriptionUserApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
+import org.mockito.Mockito;
+
+public class MockEntitlementModule extends AbstractModule implements EntitlementModule {
+
+ private final AccountUserApi userApi = Mockito.mock(AccountUserApi.class);
+ private final SubscriptionUserApi entUserApi = Mockito.mock(SubscriptionUserApi.class);
+ private final BlockingInternalApi blockingApi = Mockito.mock(BlockingInternalApi.class);
+ private final JunctionApi junctionApi = Mockito.mock(JunctionApi.class);
+
+ @Override
+ protected void configure() {
+ installAccountUserApi();
+ installSubscriptionUserApi();
+ installBlockingStateDao();
+ installBlockingApi();
+ installEntitlementApi();
+ }
+
+ @Override
+ public void installAccountUserApi() {
+ bind(AccountUserApi.class).toInstance(userApi);
+ }
+
+ @Override
+ public void installSubscriptionUserApi() {
+ bind(SubscriptionUserApi.class).toInstance(entUserApi);
+ }
+
+ @Override
+ public void installBlockingStateDao() {
+ }
+
+ @Override
+ public void installBlockingApi() {
+ bind(BlockingInternalApi.class).toInstance(blockingApi);
+ }
+
+ @Override
+ public void installEntitlementApi() {
+ bind(JunctionApi.class).toInstance(junctionApi);
+ }
+
+ @Override
+ public void installBlockingChecker() {
+ }
+
+}
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockJunctionModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockJunctionModule.java
index 710026d..91ebb72 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockJunctionModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockJunctionModule.java
@@ -16,56 +16,21 @@
package com.ning.billing.mock.glue;
-import org.mockito.Mockito;
-
-import com.ning.billing.account.api.AccountUserApi;
-import com.ning.billing.subscription.api.user.SubscriptionUserApi;
+import com.google.inject.AbstractModule;
import com.ning.billing.glue.JunctionModule;
-import com.ning.billing.junction.api.JunctionApi;
import com.ning.billing.util.svcapi.junction.BillingInternalApi;
-import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
-
-import com.google.inject.AbstractModule;
+import org.mockito.Mockito;
public class MockJunctionModule extends AbstractModule implements JunctionModule {
private final BillingInternalApi billingApi = Mockito.mock(BillingInternalApi.class);
- private final BlockingInternalApi blockingApi = Mockito.mock(BlockingInternalApi.class);
- private final AccountUserApi userApi = Mockito.mock(AccountUserApi.class);
- private final SubscriptionUserApi entUserApi = Mockito.mock(SubscriptionUserApi.class);
- private final JunctionApi junctionApi = Mockito.mock(JunctionApi.class);
@Override
protected void configure() {
- installBlockingApi();
- installAccountUserApi();
installBillingApi();
- installSubscriptionUserApi();
- installJunctionApi();
}
@Override
public void installBillingApi() {
bind(BillingInternalApi.class).toInstance(billingApi);
}
-
- @Override
- public void installAccountUserApi() {
- bind(AccountUserApi.class).toInstance(userApi);
- }
-
- @Override
- public void installBlockingApi() {
- bind(BlockingInternalApi.class).toInstance(blockingApi);
- }
-
- @Override
- public void installSubscriptionUserApi() {
- bind(SubscriptionUserApi.class).toInstance(entUserApi);
- }
-
- @Override
- public void installJunctionApi() {
- bind(JunctionApi.class).toInstance(junctionApi);
- }
-
}