Details
diff --git a/account/src/main/java/com/ning/billing/account/api/DefaultAccount.java b/account/src/main/java/com/ning/billing/account/api/DefaultAccount.java
index 0c22000..fd97eec 100644
--- a/account/src/main/java/com/ning/billing/account/api/DefaultAccount.java
+++ b/account/src/main/java/com/ning/billing/account/api/DefaultAccount.java
@@ -53,12 +53,27 @@ public class DefaultAccount extends CustomizableEntityBase implements Account {
private final DateTime createdDate;
private final DateTime updatedDate;
- public DefaultAccount(final AccountData data) {
- this(UUID.randomUUID(), data, null, null);
+ /**
+ * This call is used to create a new account
+ * @param data
+ * @param createdDate
+ */
+ public DefaultAccount(final AccountData data, DateTime createdDate) {
+ this(UUID.randomUUID(), data.getExternalKey(), data.getEmail(), data.getName(), data.getFirstNameLength(),
+ data.getCurrency(), data.getBillCycleDay(), data.getPaymentProviderName(),
+ data.getTimeZone(), data.getLocale(),
+ data.getAddress1(), data.getAddress2(), data.getCompanyName(),
+ data.getCity(), data.getStateOrProvince(), data.getCountry(),
+ data.getPostalCode(), data.getPhone(), createdDate, createdDate);
}
- public DefaultAccount(final UUID id, final AccountData data, DateTime createdDate, DateTime updatedDate) {
- this(id, data.getExternalKey(), data.getEmail(), data.getName(), data.getFirstNameLength(),
+ /**
+ * This call is used to migrate an account
+ * @param data
+ * @param createdDate
+ */
+ public DefaultAccount(final AccountData data, DateTime createdDate, DateTime updatedDate) {
+ this(UUID.randomUUID(), data.getExternalKey(), data.getEmail(), data.getName(), data.getFirstNameLength(),
data.getCurrency(), data.getBillCycleDay(), data.getPaymentProviderName(),
data.getTimeZone(), data.getLocale(),
data.getAddress1(), data.getAddress2(), data.getCompanyName(),
@@ -66,6 +81,45 @@ public class DefaultAccount extends CustomizableEntityBase implements Account {
data.getPostalCode(), data.getPhone(), createdDate, updatedDate);
}
+
+ /**
+ * This call is used to update an existing account
+ *
+ * @param id
+ * @param data
+ */
+ public DefaultAccount(final UUID id, final AccountData data) {
+ this(id, data.getExternalKey(), data.getEmail(), data.getName(), data.getFirstNameLength(),
+ data.getCurrency(), data.getBillCycleDay(), data.getPaymentProviderName(),
+ data.getTimeZone(), data.getLocale(),
+ data.getAddress1(), data.getAddress2(), data.getCompanyName(),
+ data.getCity(), data.getStateOrProvince(), data.getCountry(),
+ data.getPostalCode(), data.getPhone(), null, null);
+ }
+
+ /**
+ * This call is used for testing
+ * @param id
+ * @param externalKey
+ * @param email
+ * @param name
+ * @param firstNameLength
+ * @param currency
+ * @param billCycleDay
+ * @param paymentProviderName
+ * @param timeZone
+ * @param locale
+ * @param address1
+ * @param address2
+ * @param companyName
+ * @param city
+ * @param stateOrProvince
+ * @param country
+ * @param postalCode
+ * @param phone
+ * @param createdDate
+ * @param updatedDate
+ */
public DefaultAccount(final UUID id, final String externalKey, final String email, final String name, final int firstNameLength,
final Currency currency, final int billCycleDay, final String paymentProviderName,
final DateTimeZone timeZone, final String locale,
@@ -91,8 +145,8 @@ public class DefaultAccount extends CustomizableEntityBase implements Account {
this.postalCode = postalCode;
this.country = country;
this.phone = phone;
- this.createdDate = createdDate == null ? new DateTime(DateTimeZone.UTC) : createdDate;
- this.updatedDate = updatedDate == null ? new DateTime(DateTimeZone.UTC) : updatedDate;
+ this.createdDate = createdDate == null ? new DateTime(DateTimeZone.UTC) : createdDate; // This is a fallback, we are only expecting these to be set to null
+ this.updatedDate = updatedDate == null ? new DateTime(DateTimeZone.UTC) : updatedDate; // in the case that the account is being updated. In which case the values are ignored anyway
this.tags = new DefaultTagStore(id, getObjectName());
}
diff --git a/account/src/main/java/com/ning/billing/account/api/user/DefaultAccountUserApi.java b/account/src/main/java/com/ning/billing/account/api/user/DefaultAccountUserApi.java
index fdc70e6..a6e2b7e 100644
--- a/account/src/main/java/com/ning/billing/account/api/user/DefaultAccountUserApi.java
+++ b/account/src/main/java/com/ning/billing/account/api/user/DefaultAccountUserApi.java
@@ -18,28 +18,30 @@ package com.ning.billing.account.api.user;
import java.util.List;
import java.util.UUID;
+
import com.google.inject.Inject;
-import com.ning.billing.ErrorCode;
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.AccountApiException;
import com.ning.billing.account.api.AccountData;
import com.ning.billing.account.api.DefaultAccount;
import com.ning.billing.account.dao.AccountDao;
+import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.customfield.CustomField;
-import com.ning.billing.util.eventbus.EventBus;
import com.ning.billing.util.tag.Tag;
public class DefaultAccountUserApi implements com.ning.billing.account.api.AccountUserApi {
private final AccountDao dao;
+ private Clock clock;
@Inject
- public DefaultAccountUserApi(final AccountDao dao) {
+ public DefaultAccountUserApi(final AccountDao dao, final Clock clock) {
this.dao = dao;
+ this.clock = clock;
}
@Override
public Account createAccount(final AccountData data, final List<CustomField> fields, List<Tag> tags) throws AccountApiException {
- Account account = new DefaultAccount(data);
+ Account account = new DefaultAccount(data, clock.getUTCNow());
account.addFields(fields);
account.addTags(tags);
diff --git a/account/src/main/java/com/ning/billing/account/glue/AccountModule.java b/account/src/main/java/com/ning/billing/account/glue/AccountModule.java
index f6e51f4..48cd4f6 100644
--- a/account/src/main/java/com/ning/billing/account/glue/AccountModule.java
+++ b/account/src/main/java/com/ning/billing/account/glue/AccountModule.java
@@ -25,6 +25,7 @@ import com.ning.billing.account.api.DefaultAccountService;
import com.ning.billing.account.api.user.DefaultAccountUserApi;
import com.ning.billing.account.dao.AccountDao;
import com.ning.billing.account.dao.DefaultAccountDao;
+import com.ning.billing.util.glue.ClockModule;
public class AccountModule extends AbstractModule {
@@ -44,6 +45,11 @@ public class AccountModule extends AbstractModule {
private void installAccountService() {
bind(AccountService.class).to(DefaultAccountService.class).asEagerSingleton();
}
+
+ protected void installTestModules() {
+ install(new ClockModule());
+ }
+
@Override
protected void configure() {
@@ -51,5 +57,6 @@ public class AccountModule extends AbstractModule {
installAccountDao();
installAccountService();
installAccountUserApi();
+ installTestModules() ;
}
}
diff --git a/account/src/test/java/com/ning/billing/account/api/MockAccountUserApi.java b/account/src/test/java/com/ning/billing/account/api/MockAccountUserApi.java
index 433a663..28f0107 100644
--- a/account/src/test/java/com/ning/billing/account/api/MockAccountUserApi.java
+++ b/account/src/test/java/com/ning/billing/account/api/MockAccountUserApi.java
@@ -22,6 +22,7 @@ import java.util.List;
import java.util.UUID;
import java.util.concurrent.CopyOnWriteArrayList;
+import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import com.ning.billing.catalog.api.Currency;
@@ -61,7 +62,7 @@ public class MockAccountUserApi implements AccountUserApi {
@Override
public Account createAccount(AccountData data, List<CustomField> fields, List<Tag> tags) throws AccountApiException {
- Account result = new DefaultAccount(data);
+ Account result = new DefaultAccount(data, new DateTime());
accounts.add(result);
return result;
}
diff --git a/account/src/test/java/com/ning/billing/account/dao/TestSimpleAccountDao.java b/account/src/test/java/com/ning/billing/account/dao/TestSimpleAccountDao.java
index fd5350b..1c118a9 100644
--- a/account/src/test/java/com/ning/billing/account/dao/TestSimpleAccountDao.java
+++ b/account/src/test/java/com/ning/billing/account/dao/TestSimpleAccountDao.java
@@ -252,7 +252,7 @@ public class TestSimpleAccountDao extends AccountDaoTestBase {
}
};
- Account updatedAccount = new DefaultAccount(account.getId(), accountData, null, null);
+ Account updatedAccount = new DefaultAccount(account.getId(), accountData);
accountDao.update(updatedAccount);
Account savedAccount = accountDao.getAccountByKey(account.getExternalKey());
diff --git a/account/src/test/java/com/ning/billing/account/glue/AccountModuleWithMocks.java b/account/src/test/java/com/ning/billing/account/glue/AccountModuleWithMocks.java
index fb72404..5a2da49 100644
--- a/account/src/test/java/com/ning/billing/account/glue/AccountModuleWithMocks.java
+++ b/account/src/test/java/com/ning/billing/account/glue/AccountModuleWithMocks.java
@@ -18,6 +18,7 @@ package com.ning.billing.account.glue;
import com.ning.billing.account.dao.AccountDao;
import com.ning.billing.account.dao.MockAccountDao;
+import com.ning.billing.util.clock.MockClockModule;
public class AccountModuleWithMocks extends AccountModule {
@Override
@@ -25,4 +26,9 @@ public class AccountModuleWithMocks extends AccountModule {
bind(MockAccountDao.class).asEagerSingleton();
bind(AccountDao.class).to(MockAccountDao.class);
}
+
+ @Override
+ protected void installTestModules() {
+ install(new MockClockModule());
+ }
}
diff --git a/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java b/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
index 6ec95b9..48663fa 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
@@ -16,16 +16,18 @@
package com.ning.billing.analytics;
+import org.skife.jdbi.v2.DBI;
+import org.skife.jdbi.v2.IDBI;
+
import com.ning.billing.account.glue.AccountModule;
import com.ning.billing.analytics.setup.AnalyticsModule;
import com.ning.billing.catalog.glue.CatalogModule;
import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.entitlement.glue.EntitlementModule;
+import com.ning.billing.util.glue.ClockModule;
import com.ning.billing.util.glue.EventBusModule;
import com.ning.billing.util.glue.NotificationQueueModule;
import com.ning.billing.util.glue.TagStoreModule;
-import org.skife.jdbi.v2.DBI;
-import org.skife.jdbi.v2.IDBI;
public class AnalyticsTestModule extends AnalyticsModule
{
@@ -39,6 +41,7 @@ public class AnalyticsTestModule extends AnalyticsModule
install(new CatalogModule());
install(new EventBusModule());
install(new EntitlementModule());
+ install(new ClockModule());
install(new TagStoreModule());
install(new NotificationQueueModule());
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockIAccountUserApi.java b/analytics/src/test/java/com/ning/billing/analytics/MockIAccountUserApi.java
index 2ce98b8..0722494 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockIAccountUserApi.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockIAccountUserApi.java
@@ -24,6 +24,7 @@ import com.ning.billing.account.api.AccountData;
import com.ning.billing.account.api.AccountUserApi;
import com.ning.billing.account.api.DefaultAccount;
import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.customfield.CustomField;
import com.ning.billing.util.tag.Tag;
@@ -31,11 +32,13 @@ public class MockIAccountUserApi implements AccountUserApi
{
private final AccountData account;
private final UUID id;
+ private Clock clock;
- public MockIAccountUserApi(final String accountKey, final Currency currency)
+ public MockIAccountUserApi(final String accountKey, final Currency currency, final Clock clock)
{
this.id = UUID.randomUUID();
account = new MockAccount(id, accountKey, currency);
+ this.clock = clock;
}
@Override
@@ -57,7 +60,7 @@ public class MockIAccountUserApi implements AccountUserApi
@Override
public Account getAccountById(final UUID uid) {
- return new DefaultAccount(account);
+ return new DefaultAccount(account, clock.getUTCNow());
}
@Override
diff --git a/analytics/src/test/java/com/ning/billing/analytics/TestAnalyticsListener.java b/analytics/src/test/java/com/ning/billing/analytics/TestAnalyticsListener.java
index 7bad790..a1fdc99 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/TestAnalyticsListener.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/TestAnalyticsListener.java
@@ -16,18 +16,25 @@
package com.ning.billing.analytics;
-import com.ning.billing.catalog.api.*;
-import com.ning.billing.entitlement.api.user.Subscription;
-import com.ning.billing.entitlement.api.user.SubscriptionTransitionData;
-import com.ning.billing.entitlement.events.EntitlementEvent;
-import com.ning.billing.entitlement.events.user.ApiEventType;
+import java.util.UUID;
+
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import java.util.UUID;
+import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.catalog.api.PhaseType;
+import com.ning.billing.catalog.api.Plan;
+import com.ning.billing.catalog.api.PlanPhase;
+import com.ning.billing.catalog.api.Product;
+import com.ning.billing.catalog.api.ProductCategory;
+import com.ning.billing.entitlement.api.user.Subscription;
+import com.ning.billing.entitlement.api.user.SubscriptionTransitionData;
+import com.ning.billing.entitlement.events.EntitlementEvent;
+import com.ning.billing.entitlement.events.user.ApiEventType;
+import com.ning.billing.util.clock.ClockMock;
public class TestAnalyticsListener
{
@@ -48,7 +55,7 @@ public class TestAnalyticsListener
@BeforeMethod(alwaysRun = true)
public void setUp() throws Exception
{
- final BusinessSubscriptionTransitionRecorder recorder = new BusinessSubscriptionTransitionRecorder(dao, new MockIEntitlementUserApi(bundleUUID, KEY), new MockIAccountUserApi(ACCOUNT_KEY, CURRENCY));
+ final BusinessSubscriptionTransitionRecorder recorder = new BusinessSubscriptionTransitionRecorder(dao, new MockIEntitlementUserApi(bundleUUID, KEY), new MockIAccountUserApi(ACCOUNT_KEY, CURRENCY, new ClockMock()));
listener = new AnalyticsListener(recorder, null);
}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/glue/EntitlementModule.java b/entitlement/src/main/java/com/ning/billing/entitlement/glue/EntitlementModule.java
index a5ab3d8..d2776ad 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/glue/EntitlementModule.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/glue/EntitlementModule.java
@@ -16,6 +16,8 @@
package com.ning.billing.entitlement.glue;
+import org.skife.config.ConfigurationObjectFactory;
+
import com.google.inject.AbstractModule;
import com.ning.billing.config.EntitlementConfig;
import com.ning.billing.entitlement.alignment.MigrationPlanAligner;
@@ -31,27 +33,19 @@ import com.ning.billing.entitlement.api.user.DefaultEntitlementUserApi;
import com.ning.billing.entitlement.api.user.EntitlementUserApi;
import com.ning.billing.entitlement.api.user.SubscriptionApiService;
import com.ning.billing.entitlement.engine.core.Engine;
-import com.ning.billing.entitlement.engine.core.EventNotifier;
import com.ning.billing.entitlement.engine.dao.EntitlementDao;
import com.ning.billing.entitlement.engine.dao.EntitlementSqlDao;
-import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.clock.DefaultClock;
-import org.skife.config.ConfigurationObjectFactory;
public class EntitlementModule extends AbstractModule {
-
- protected void installClock() {
- bind(Clock.class).to(DefaultClock.class).asEagerSingleton();
- }
-
protected void installConfig() {
final EntitlementConfig config = new ConfigurationObjectFactory(System.getProperties()).build(EntitlementConfig.class);
bind(EntitlementConfig.class).toInstance(config);
}
+
protected void installEntitlementDao() {
bind(EntitlementDao.class).to(EntitlementSqlDao.class).asEagerSingleton();
}
@@ -71,7 +65,6 @@ public class EntitlementModule extends AbstractModule {
@Override
protected void configure() {
installConfig();
- installClock();
installEntitlementDao();
installEntitlementCore();
}
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java
index 08b05d6..2de7872 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java
@@ -28,7 +28,6 @@ import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Stage;
@@ -56,7 +55,7 @@ import com.ning.billing.entitlement.events.EntitlementEvent.EventType;
import com.ning.billing.entitlement.events.user.ApiEventType;
import com.ning.billing.lifecycle.KillbillService.ServiceException;
import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.clock.DefaultClock;
+import com.ning.billing.util.glue.ClockModule;
public class TestDefaultEntitlementBillingApi {
private static final UUID zeroId = new UUID(0L,0L);
@@ -76,11 +75,7 @@ public class TestDefaultEntitlementBillingApi {
@BeforeClass(groups={"setup"})
public void setup() throws ServiceException {
TestApiBase.loadSystemPropertiesFromClasspath("/entitlement.properties");
- final Injector g = Guice.createInjector(Stage.PRODUCTION, new CatalogModule(), new AbstractModule() {
- protected void configure() {
- bind(Clock.class).to(DefaultClock.class).asEagerSingleton();
- }
- });
+ final Injector g = Guice.createInjector(Stage.PRODUCTION, new CatalogModule(), new ClockModule());
catalogService = g.getInstance(CatalogService.class);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/migration/TestMigration.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/migration/TestMigration.java
index 271de3c..7ef459d 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/migration/TestMigration.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/migration/TestMigration.java
@@ -28,28 +28,22 @@ import java.util.UUID;
import org.joda.time.DateTime;
import org.testng.Assert;
-import org.testng.annotations.Test;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Stage;
import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.Duration;
import com.ning.billing.catalog.api.PhaseType;
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.TestApiBase;
import com.ning.billing.entitlement.api.ApiTestListener.NextEvent;
-import com.ning.billing.entitlement.api.migration.EntitlementMigrationApiException;
+import com.ning.billing.entitlement.api.TestApiBase;
import com.ning.billing.entitlement.api.migration.EntitlementMigrationApi.EntitlementAccountMigration;
import com.ning.billing.entitlement.api.migration.EntitlementMigrationApi.EntitlementBundleMigration;
import com.ning.billing.entitlement.api.migration.EntitlementMigrationApi.EntitlementSubscriptionMigration;
import com.ning.billing.entitlement.api.migration.EntitlementMigrationApi.EntitlementSubscriptionMigrationCase;
import com.ning.billing.entitlement.api.user.Subscription;
-import com.ning.billing.entitlement.api.user.SubscriptionBundle;
import com.ning.billing.entitlement.api.user.Subscription.SubscriptionState;
-import com.ning.billing.entitlement.glue.MockEngineModuleSql;
+import com.ning.billing.entitlement.api.user.SubscriptionBundle;
public abstract class TestMigration extends TestApiBase {
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/glue/MockEngineModule.java b/entitlement/src/test/java/com/ning/billing/entitlement/glue/MockEngineModule.java
index 24bad2c..0f6fca3 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/glue/MockEngineModule.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/glue/MockEngineModule.java
@@ -18,24 +18,22 @@ package com.ning.billing.entitlement.glue;
import com.ning.billing.account.glue.AccountModuleWithMocks;
import com.ning.billing.catalog.glue.CatalogModule;
-import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.clock.ClockMock;
+import com.ning.billing.util.clock.MockClockModule;
import com.ning.billing.util.glue.EventBusModule;
-import com.ning.billing.util.glue.NotificationQueueModule;
public class MockEngineModule extends EntitlementModule {
- @Override
- protected void installClock() {
- bind(Clock.class).to(ClockMock.class).asEagerSingleton();
+ protected void installModulesForTests() {
+ install(new EventBusModule());
+ install(new CatalogModule());
+ install(new AccountModuleWithMocks());
+ install (new MockClockModule());
}
-
+
@Override
protected void configure() {
super.configure();
- install(new EventBusModule());
- install(new CatalogModule());
- install(new AccountModuleWithMocks());
+ installModulesForTests();
}
}
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/glue/MockEngineModuleSql.java b/entitlement/src/test/java/com/ning/billing/entitlement/glue/MockEngineModuleSql.java
index dbe2938..2532c6f 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/glue/MockEngineModuleSql.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/glue/MockEngineModuleSql.java
@@ -35,11 +35,6 @@ public class MockEngineModuleSql extends MockEngineModule {
bind(EntitlementDao.class).to(MockEntitlementDaoSql.class).asEagerSingleton();
}
- @Override
- protected void installClock() {
- bind(Clock.class).to(ClockMock.class).asEagerSingleton();
- }
-
protected void installDBI() {
bind(DBI.class).toProvider(DBIProvider.class).asEagerSingleton();
final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
diff --git a/invoice/src/main/java/com/ning/billing/invoice/glue/InvoiceModule.java b/invoice/src/main/java/com/ning/billing/invoice/glue/InvoiceModule.java
index 0e1c657..63ed8fb 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/glue/InvoiceModule.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/glue/InvoiceModule.java
@@ -23,6 +23,7 @@ import com.ning.billing.invoice.api.invoice.DefaultInvoicePaymentApi;
import com.ning.billing.invoice.api.user.DefaultInvoiceUserApi;
import com.ning.billing.invoice.dao.DefaultInvoiceDao;
import com.ning.billing.invoice.dao.InvoiceDao;
+import com.ning.billing.util.glue.ClockModule;
public class InvoiceModule extends AbstractModule {
protected void installInvoiceDao() {
@@ -36,6 +37,10 @@ public class InvoiceModule extends AbstractModule {
protected void installInvoicePaymentApi() {
bind(InvoicePaymentApi.class).to(DefaultInvoicePaymentApi.class).asEagerSingleton();
}
+
+ protected void installClock() {
+ install(new ClockModule());
+ }
@Override
protected void configure() {
diff --git a/util/src/main/java/com/ning/billing/util/glue/ClockModule.java b/util/src/main/java/com/ning/billing/util/glue/ClockModule.java
index 187a500..e7c7c3f 100644
--- a/util/src/main/java/com/ning/billing/util/glue/ClockModule.java
+++ b/util/src/main/java/com/ning/billing/util/glue/ClockModule.java
@@ -22,8 +22,8 @@ import com.ning.billing.util.clock.DefaultClock;
public class ClockModule extends AbstractModule {
- @Override
- protected void configure() {
- bind(Clock.class).to(DefaultClock.class).asEagerSingleton();
- }
+ @Override
+ protected void configure() {
+ bind(Clock.class).to(DefaultClock.class).asEagerSingleton();
+ }
}
diff --git a/util/src/main/java/com/ning/billing/util/glue/TagStoreModule.java b/util/src/main/java/com/ning/billing/util/glue/TagStoreModule.java
index 039ce2b..10651be 100644
--- a/util/src/main/java/com/ning/billing/util/glue/TagStoreModule.java
+++ b/util/src/main/java/com/ning/billing/util/glue/TagStoreModule.java
@@ -31,10 +31,10 @@ public class TagStoreModule extends AbstractModule
@Override
protected void configure()
{
- bind(Clock.class).to(DefaultClock.class).asEagerSingleton();
bind(TagDefinitionSqlDao.class).toProvider(TagDescriptionDaoProvider.class).asEagerSingleton();
bind(TagDefinitionDao.class).to(DefaultTagDefinitionDao.class).asEagerSingleton();
bind(TagStoreSqlDao.class).toProvider(TagStoreDaoProvider.class).asEagerSingleton();
bind(TagDefinitionUserApi.class).to(DefaultTagDefinitionUserApi.class).asEagerSingleton();
}
+
}
diff --git a/util/src/test/java/com/ning/billing/util/tag/TestTagStore.java b/util/src/test/java/com/ning/billing/util/tag/TestTagStore.java
index 633095f..f764e0c 100644
--- a/util/src/test/java/com/ning/billing/util/tag/TestTagStore.java
+++ b/util/src/test/java/com/ning/billing/util/tag/TestTagStore.java
@@ -33,6 +33,7 @@ import com.ning.billing.account.api.ControlTagType;
import com.ning.billing.util.api.TagDefinitionApiException;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.DefaultClock;
+import com.ning.billing.util.clock.MockClockModule;
import com.ning.billing.util.tag.dao.TagDefinitionDao;
import com.ning.billing.util.tag.dao.TagStoreSqlDao;
@@ -64,7 +65,7 @@ public class TestTagStore {
module.startDb();
module.initDb(utilDdl);
- final Injector injector = Guice.createInjector(Stage.DEVELOPMENT, module);
+ final Injector injector = Guice.createInjector(Stage.DEVELOPMENT, module, new MockClockModule());
dbi = injector.getInstance(IDBI.class);
tagStoreSqlDao = injector.getInstance(TagStoreSqlDao.class);