killbill-aplcache
Changes
invoice/pom.xml 5(+5 -0)
invoice/src/test/java/com/ning/billing/invoice/api/invoice/TestDefaultInvoicePaymentApi.java 5(+1 -4)
invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java 5(+2 -3)
overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java 20(+8 -12)
pom.xml 6(+6 -0)
util/pom.xml 5(+5 -0)
Details
diff --git a/account/src/main/resources/com/ning/billing/account/ddl.sql b/account/src/main/resources/com/ning/billing/account/ddl.sql
index 28dc6e1..da8ba7d 100644
--- a/account/src/main/resources/com/ning/billing/account/ddl.sql
+++ b/account/src/main/resources/com/ning/billing/account/ddl.sql
@@ -1,3 +1,5 @@
+/*! SET storage_engine=INNODB */;
+
DROP TABLE IF EXISTS accounts;
CREATE TABLE accounts (
record_id int(11) unsigned NOT NULL AUTO_INCREMENT,
@@ -28,7 +30,7 @@ CREATE TABLE accounts (
updated_by varchar(50) DEFAULT NULL,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX accounts_id ON accounts(id);
CREATE UNIQUE INDEX accounts_external_key ON accounts(external_key);
CREATE INDEX accounts_tenant_record_id ON accounts(tenant_record_id);
@@ -65,7 +67,7 @@ CREATE TABLE account_history (
updated_date datetime NOT NULL,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
- ) ENGINE=innodb;
+ );
CREATE INDEX account_history_target_record_id ON account_history(target_record_id);
CREATE INDEX account_history_tenant_record_id ON account_history(tenant_record_id);
@@ -83,7 +85,7 @@ CREATE TABLE account_emails (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX account_email_id ON account_emails(id);
CREATE INDEX account_email_account_id_email ON account_emails(account_id, email);
CREATE INDEX account_emails_tenant_account_record_id ON account_emails(tenant_record_id, account_record_id);
@@ -104,6 +106,6 @@ CREATE TABLE account_email_history (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE INDEX account_email_target_record_id ON account_email_history(target_record_id);
CREATE INDEX account_email_history_tenant_account_record_id ON account_email_history(tenant_record_id, account_record_id);
diff --git a/account/src/test/java/com/ning/billing/account/AccountTestBase.java b/account/src/test/java/com/ning/billing/account/AccountTestBase.java
index b75ec6f..6d9acdb 100644
--- a/account/src/test/java/com/ning/billing/account/AccountTestBase.java
+++ b/account/src/test/java/com/ning/billing/account/AccountTestBase.java
@@ -72,7 +72,7 @@ public abstract class AccountTestBase extends AccountTestSuiteWithEmbeddedDB {
@BeforeClass(groups = "slow")
protected void setup() throws IOException {
try {
- final IDBI dbi = getMysqlTestingHelper().getDBI();
+ final IDBI dbi = getDBI();
final InternalCallContextFactory internalCallContextFactory = new InternalCallContextFactory(dbi, clock);
accountDao = new DefaultAccountDao(dbi, bus, internalCallContextFactory);
diff --git a/analytics/src/main/resources/com/ning/billing/analytics/ddl.sql b/analytics/src/main/resources/com/ning/billing/analytics/ddl.sql
index b223a80..4ed57a9 100644
--- a/analytics/src/main/resources/com/ning/billing/analytics/ddl.sql
+++ b/analytics/src/main/resources/com/ning/billing/analytics/ddl.sql
@@ -1,3 +1,5 @@
+/*! SET storage_engine=INNODB */;
+
drop table if exists bst;
create table bst (
record_id int(11) unsigned not null auto_increment
@@ -36,7 +38,7 @@ create table bst (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Business Subscription Transitions, track bundles lifecycle';
+) comment 'Business Subscription Transitions, track bundles lifecycle';
create index bst_key_index on bst (external_key, requested_timestamp asc);
create index bst_tenant_account_record_id on bst(tenant_record_id, account_record_id);
@@ -59,7 +61,7 @@ create table bac (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Business ACcounts, keep a record of all accounts';
+) comment 'Business ACcounts, keep a record of all accounts';
create unique index bac_key_index on bac (account_key);
create index bac_tenant_account_record_id on bac(tenant_record_id, account_record_id);
@@ -82,7 +84,7 @@ create table bin (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Business INvoices, keep a record of generated invoices';
+) comment 'Business INvoices, keep a record of generated invoices';
create unique index bin_key_index on bin (invoice_id);
create index bin_tenant_account_record_id on bin(tenant_record_id, account_record_id);
@@ -109,7 +111,7 @@ create table bii (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Business Invoice Items, keep a record of all invoice items';
+) comment 'Business Invoice Items, keep a record of all invoice items';
create unique index bii_key_index on bii (item_id);
create index bii_tenant_account_record_id on bii(tenant_record_id, account_record_id);
@@ -139,7 +141,7 @@ create table bip (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Business Invoice Payments, track all payments';
+) comment 'Business Invoice Payments, track all payments';
create unique index bip_key_index on bip (payment_id);
create index bip_tenant_account_record_id on bip(tenant_record_id, account_record_id);
@@ -155,7 +157,7 @@ create table bos (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Business Overdue Status, historical bundles overdue status';
+) comment 'Business Overdue Status, historical bundles overdue status';
create index bos_tenant_account_record_id on bos(tenant_record_id, account_record_id);
drop table if exists bac_tags;
@@ -167,7 +169,7 @@ create table bac_tags (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Tags associated to accounts';
+) comment 'Tags associated to accounts';
create index bac_tags_tenant_account_record_id on bac_tags(tenant_record_id, account_record_id);
drop table if exists bac_fields;
@@ -180,7 +182,7 @@ create table bac_fields (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Custom fields associated to accounts';
+) comment 'Custom fields associated to accounts';
create index bac_fields_tenant_account_record_id on bac_fields(tenant_record_id, account_record_id);
drop table if exists bst_tags;
@@ -193,7 +195,7 @@ create table bst_tags (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Tags associated to bundles';
+) comment 'Tags associated to bundles';
create index bst_tags_tenant_account_record_id on bst_tags(tenant_record_id, account_record_id);
drop table if exists bst_fields;
@@ -207,7 +209,7 @@ create table bst_fields (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Custom fields associated to bundles';
+) comment 'Custom fields associated to bundles';
create index bst_fields_tenant_account_record_id on bst_fields(tenant_record_id, account_record_id);
drop table if exists bin_tags;
@@ -218,7 +220,7 @@ create table bin_tags (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Tags associated to invoices';
+) comment 'Tags associated to invoices';
create index bin_tags_tenant_account_record_id on bin_tags(tenant_record_id, account_record_id);
drop table if exists bin_fields;
@@ -230,7 +232,7 @@ create table bin_fields (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Custom fields associated to invoices';
+) comment 'Custom fields associated to invoices';
create index bin_fields_tenant_account_record_id on bin_fields(tenant_record_id, account_record_id);
drop table if exists bip_tags;
@@ -241,7 +243,7 @@ create table bip_tags (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Tags associated to payments';
+) comment 'Tags associated to payments';
create index bip_tags_tenant_account_record_id on bip_tags(tenant_record_id, account_record_id);
drop table if exists bip_fields;
@@ -253,5 +255,5 @@ create table bip_fields (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine=innodb comment 'Custom fields associated to payments';
+) comment 'Custom fields associated to payments';
create index bip_fields_tenant_account_record_id on bip_fields(tenant_record_id, account_record_id);
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 320d651..8a871e5 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
@@ -19,11 +19,11 @@ package com.ning.billing.analytics;
import org.mockito.Mockito;
import org.skife.jdbi.v2.IDBI;
+import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.account.glue.DefaultAccountModule;
import com.ning.billing.analytics.setup.AnalyticsModule;
import com.ning.billing.catalog.api.Catalog;
import com.ning.billing.catalog.api.CatalogService;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.entitlement.glue.DefaultEntitlementModule;
import com.ning.billing.invoice.glue.DefaultInvoiceModule;
import com.ning.billing.junction.glue.DefaultJunctionModule;
@@ -62,9 +62,7 @@ public class AnalyticsTestModule extends AnalyticsModule {
install(new DefaultJunctionModule());
// Install the Dao layer
- final MysqlTestingHelper helper = AnalyticsTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- bind(MysqlTestingHelper.class).toInstance(helper);
- final IDBI dbi = helper.getDBI();
+ final IDBI dbi = KillbillTestSuiteWithEmbeddedDB.getDBI();
bind(IDBI.class).toInstance(dbi);
bind(TagDefinitionSqlDao.class).toInstance(dbi.onDemand(TagDefinitionSqlDao.class));
diff --git a/beatrix/src/main/resources/com/ning/billing/beatrix/ddl.sql b/beatrix/src/main/resources/com/ning/billing/beatrix/ddl.sql
index 13857a7..655d4e0 100644
--- a/beatrix/src/main/resources/com/ning/billing/beatrix/ddl.sql
+++ b/beatrix/src/main/resources/com/ning/billing/beatrix/ddl.sql
@@ -1,4 +1,4 @@
-
+/*! SET storage_engine=INNODB */;
DROP TABLE IF EXISTS bus_ext_events;
CREATE TABLE bus_ext_events (
@@ -14,7 +14,7 @@ CREATE TABLE bus_ext_events (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE INDEX `idx_bus_ext_where` ON bus_ext_events (`processing_state`,`processing_owner`,`processing_available_date`);
CREATE INDEX bus_ext_events_tenant_account_record_id ON bus_ext_events(tenant_record_id, account_record_id);
@@ -27,5 +27,5 @@ CREATE TABLE claimed_bus_ext_events (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE INDEX claimed_bus_ext_events_tenant_account_record_id ON claimed_bus_ext_events(tenant_record_id, account_record_id);
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 27240be..cd04508 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
@@ -42,8 +42,8 @@ import com.ning.billing.beatrix.util.PaymentChecker;
import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.catalog.glue.CatalogModule;
import com.ning.billing.dbi.DBIProvider;
+import com.ning.billing.dbi.DBTestingHelper;
import com.ning.billing.dbi.DbiConfig;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.entitlement.api.EntitlementService;
import com.ning.billing.entitlement.glue.DefaultEntitlementModule;
import com.ning.billing.invoice.api.InvoiceService;
@@ -88,8 +88,7 @@ public class BeatrixIntegrationModule extends AbstractModule {
bind(ClockMock.class).asEagerSingleton();
bind(Lifecycle.class).to(SubsetDefaultLifecycle.class).asEagerSingleton();
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- bind(MysqlTestingHelper.class).toInstance(helper);
+ final DBTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper();
final IDBI dbi;
if (helper.isUsingLocalInstance()) {
final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
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 8d1962c..de18242 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,10 +16,6 @@
package com.ning.billing.beatrix.integration;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
-
import java.math.BigDecimal;
import java.util.List;
import java.util.UUID;
@@ -58,7 +54,6 @@ 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.dbi.MysqlTestingHelper;
import com.ning.billing.entitlement.api.EntitlementService;
import com.ning.billing.entitlement.api.timeline.EntitlementTimelineApi;
import com.ning.billing.entitlement.api.transfer.EntitlementTransferApi;
@@ -94,6 +89,10 @@ import com.google.common.base.Joiner;
import com.google.inject.Inject;
import com.google.inject.name.Named;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
+
public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implements TestListenerStatus {
protected static final DateTimeZone testTimeZone = DateTimeZone.UTC;
@@ -133,9 +132,6 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
protected AccountService accountService;
@Inject
- protected MysqlTestingHelper helper;
-
- @Inject
protected EntitlementUserApi entitlementUserApi;
@Inject
@@ -252,38 +248,37 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
}
protected void verifyTestResult(final UUID accountId, final UUID subscriptionId,
- final DateTime startDate, @Nullable final DateTime endDate,
- final BigDecimal amount, final DateTime chargeThroughDate,
- final int totalInvoiceItemCount) throws EntitlementUserApiException {
+ final DateTime startDate, @Nullable final DateTime endDate,
+ final BigDecimal amount, final DateTime chargeThroughDate,
+ final int totalInvoiceItemCount) throws EntitlementUserApiException {
final SubscriptionData subscription = subscriptionDataFromSubscription(entitlementUserApi.getSubscriptionFromId(subscriptionId, callContext));
-
/*
- final List<Invoice> invoices = invoiceUserApi.getInvoicesByAccount(accountId);
- final List<InvoiceItem> invoiceItems = new ArrayList<InvoiceItem>();
- for (final Invoice invoice : invoices) {
- invoiceItems.addAll(invoice.getInvoiceItems());
- }
- assertEquals(invoiceItems.size(), totalInvoiceItemCount);
-
- boolean wasFound = false;
-
- // We implicitly assume here that the account timezone is the same as the one for startDate/endDate
- for (final InvoiceItem item : invoiceItems) {
- if (item.getStartDate().compareTo(new LocalDate(startDate)) == 0) {
- if ((item.getEndDate() == null && endDate == null) || (item.getEndDate() != null && new LocalDate(endDate).compareTo(item.getEndDate()) == 0)) {
- if (item.getAmount().compareTo(amount) == 0) {
- wasFound = true;
- break;
+ final List<Invoice> invoices = invoiceUserApi.getInvoicesByAccount(accountId);
+ final List<InvoiceItem> invoiceItems = new ArrayList<InvoiceItem>();
+ for (final Invoice invoice : invoices) {
+ invoiceItems.addAll(invoice.getInvoiceItems());
+ }
+ assertEquals(invoiceItems.size(), totalInvoiceItemCount);
+
+ boolean wasFound = false;
+
+ // We implicitly assume here that the account timezone is the same as the one for startDate/endDate
+ for (final InvoiceItem item : invoiceItems) {
+ if (item.getStartDate().compareTo(new LocalDate(startDate)) == 0) {
+ if ((item.getEndDate() == null && endDate == null) || (item.getEndDate() != null && new LocalDate(endDate).compareTo(item.getEndDate()) == 0)) {
+ if (item.getAmount().compareTo(amount) == 0) {
+ wasFound = true;
+ break;
+ }
+ }
}
}
- }
- }
- if (!wasFound) {
- fail();
- }
-*/
+ if (!wasFound) {
+ fail();
+ }
+ */
final DateTime ctd = subscription.getChargedThroughDate();
assertNotNull(ctd);
log.info("Checking CTD: " + ctd.toString() + "; clock is " + clock.getUTCNow().toString());
@@ -328,17 +323,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))
- .billingCycleDay(new MockBillCycleDay(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))
+ .billingCycleDay(new MockBillCycleDay(billingDay))
+ .currency(Currency.USD)
+ .paymentMethodId(UUID.randomUUID())
+ .timeZone(DateTimeZone.UTC)
+ .build();
}
protected void addMonthsAndCheckForCompletion(final int nbMonth, final NextEvent... events) {
@@ -367,7 +362,6 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
}, events);
}
-
protected void addDaysAndCheckForCompletion(final int nbDays, final NextEvent... events) {
doCallAndCheckForCompletion(new Function<Void, Void>() {
@Override
@@ -435,18 +429,18 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
}
protected Subscription createSubscriptionAndCheckForCompletion(final UUID bundleId,
- final String productName,
- final ProductCategory productCategory,
- final BillingPeriod billingPeriod,
- final NextEvent... events) {
+ final String productName,
+ final ProductCategory productCategory,
+ final BillingPeriod billingPeriod,
+ final NextEvent... events) {
return doCallAndCheckForCompletion(new Function<Void, Subscription>() {
@Override
public Subscription apply(@Nullable final Void dontcare) {
try {
final Subscription subscription = entitlementUserApi.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 (EntitlementUserApiException e) {
@@ -458,9 +452,9 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
}
protected Subscription changeSubscriptionAndCheckForCompletion(final Subscription subscription,
- final String productName,
- final BillingPeriod billingPeriod,
- final NextEvent... events) {
+ final String productName,
+ final BillingPeriod billingPeriod,
+ final NextEvent... events) {
return doCallAndCheckForCompletion(new Function<Void, Subscription>() {
@Override
public Subscription apply(@Nullable final Void dontcare) {
@@ -478,8 +472,8 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
}
protected Subscription cancelSubscriptionAndCheckForCompletion(final Subscription subscription,
- final DateTime requestedDate,
- final NextEvent... events) {
+ final DateTime requestedDate,
+ final NextEvent... events) {
return doCallAndCheckForCompletion(new Function<Void, Subscription>() {
@Override
public Subscription apply(@Nullable final Void dontcare) {
diff --git a/entitlement/src/main/resources/com/ning/billing/entitlement/ddl.sql b/entitlement/src/main/resources/com/ning/billing/entitlement/ddl.sql
index 913c472..48154ba 100644
--- a/entitlement/src/main/resources/com/ning/billing/entitlement/ddl.sql
+++ b/entitlement/src/main/resources/com/ning/billing/entitlement/ddl.sql
@@ -1,3 +1,5 @@
+/*! SET storage_engine=INNODB */;
+
DROP TABLE IF EXISTS events;
DROP TABLE IF EXISTS entitlement_events;
DROP TABLE IF EXISTS subscription_events;
@@ -22,7 +24,7 @@ CREATE TABLE subscription_events (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX subscription_events_id ON subscription_events(id);
CREATE INDEX idx_ent_1 ON subscription_events(subscription_id, is_active, effective_date);
CREATE INDEX idx_ent_2 ON subscription_events(subscription_id, effective_date, created_date, requested_date,id);
@@ -46,7 +48,7 @@ CREATE TABLE subscriptions (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX subscriptions_id ON subscriptions(id);
CREATE INDEX subscriptions_bundle_id ON subscriptions(bundle_id);
CREATE INDEX subscriptions_tenant_account_record_id ON subscriptions(tenant_record_id, account_record_id);
@@ -65,7 +67,7 @@ CREATE TABLE bundles (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX bundles_id ON bundles(id);
CREATE INDEX bundles_key ON bundles(external_key);
CREATE INDEX bundles_account ON bundles(account_id);
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 8c73897..922fa16 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
@@ -21,8 +21,8 @@ import org.skife.jdbi.v2.IDBI;
import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.dbi.DBIProvider;
+import com.ning.billing.dbi.DBTestingHelper;
import com.ning.billing.dbi.DbiConfig;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.entitlement.api.timeline.RepairEntitlementLifecycleDao;
import com.ning.billing.entitlement.engine.dao.EntitlementDao;
import com.ning.billing.entitlement.engine.dao.MockEntitlementDaoSql;
@@ -44,8 +44,7 @@ public class MockEngineModuleSql extends MockEngineModule {
}
protected void installDBI() {
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- bind(MysqlTestingHelper.class).toInstance(helper);
+ final DBTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper();
if (helper.isUsingLocalInstance()) {
bind(IDBI.class).toProvider(DBIProvider.class).asEagerSingleton();
final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
invoice/pom.xml 5(+5 -0)
diff --git a/invoice/pom.xml b/invoice/pom.xml
index 06e28a5..b62895f 100644
--- a/invoice/pom.xml
+++ b/invoice/pom.xml
@@ -111,6 +111,11 @@
<artifactId>mysql-connector-mxj-db-files</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
</build>
diff --git a/invoice/src/main/resources/com/ning/billing/invoice/ddl.sql b/invoice/src/main/resources/com/ning/billing/invoice/ddl.sql
index 2052006..02bac52 100644
--- a/invoice/src/main/resources/com/ning/billing/invoice/ddl.sql
+++ b/invoice/src/main/resources/com/ning/billing/invoice/ddl.sql
@@ -1,3 +1,5 @@
+/*! SET storage_engine=INNODB */;
+
DROP TABLE IF EXISTS invoice_items;
CREATE TABLE invoice_items (
record_id int(11) unsigned NOT NULL AUTO_INCREMENT,
@@ -20,7 +22,7 @@ CREATE TABLE invoice_items (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX invoice_items_id ON invoice_items(id);
CREATE INDEX invoice_items_subscription_id ON invoice_items(subscription_id ASC);
CREATE INDEX invoice_items_invoice_id ON invoice_items(invoice_id ASC);
@@ -41,7 +43,7 @@ CREATE TABLE invoices (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX invoices_id ON invoices(id);
CREATE INDEX invoices_account_target ON invoices(account_id ASC, target_date);
CREATE INDEX invoices_tenant_account_record_id ON invoices(tenant_record_id, account_record_id);
@@ -52,7 +54,7 @@ CREATE TABLE invoice_payments (
id char(36) NOT NULL,
type varchar(24) NOT NULL,
invoice_id char(36) NOT NULL,
- payment_id char(36) COLLATE utf8_bin,
+ payment_id char(36),
payment_date datetime NOT NULL,
amount numeric(10,4) NOT NULL,
currency char(3) NOT NULL,
@@ -63,7 +65,7 @@ CREATE TABLE invoice_payments (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX invoice_payments_id ON invoice_payments(id);
CREATE INDEX invoice_payments ON invoice_payments(payment_id);
CREATE INDEX invoice_payments_reversals ON invoice_payments(linked_invoice_payment_id);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/api/invoice/TestDefaultInvoicePaymentApi.java b/invoice/src/test/java/com/ning/billing/invoice/api/invoice/TestDefaultInvoicePaymentApi.java
index 4d2ee81..cbb693d 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/api/invoice/TestDefaultInvoicePaymentApi.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/api/invoice/TestDefaultInvoicePaymentApi.java
@@ -29,9 +29,7 @@ import org.testng.Assert;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.catalog.api.Currency;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
@@ -72,8 +70,7 @@ public class TestDefaultInvoicePaymentApi extends InvoiceTestSuiteWithEmbeddedDB
@BeforeSuite(groups = "slow")
public void setup() throws IOException {
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- final IDBI dbi = helper.getDBI();
+ final IDBI dbi = getDBI();
invoiceSqlDao = dbi.onDemand(InvoiceSqlDao.class);
invoiceSqlDao.test(internalCallContext);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTestBase.java b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTestBase.java
index 8ca2f72..2949653 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTestBase.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTestBase.java
@@ -28,7 +28,6 @@ import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.api.InvoiceItem;
@@ -102,8 +101,7 @@ public class InvoiceDaoTestBase extends InvoicingTestBase {
loadSystemPropertiesFromClasspath("/resource.properties");
- final MysqlTestingHelper mysqlTestingHelper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- dbi = mysqlTestingHelper.getDBI();
+ dbi = KillbillTestSuiteWithEmbeddedDB.getDBI();
clock = new ClockMock();
diff --git a/invoice/src/test/java/com/ning/billing/invoice/glue/InvoiceModuleWithEmbeddedDb.java b/invoice/src/test/java/com/ning/billing/invoice/glue/InvoiceModuleWithEmbeddedDb.java
index b2590f9..154b339 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/glue/InvoiceModuleWithEmbeddedDb.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/glue/InvoiceModuleWithEmbeddedDb.java
@@ -24,7 +24,6 @@ import org.skife.jdbi.v2.IDBI;
import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.catalog.glue.CatalogModule;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.invoice.api.InvoiceNotifier;
import com.ning.billing.invoice.notification.MockNextBillingDateNotifier;
import com.ning.billing.invoice.notification.MockNextBillingDatePoster;
@@ -50,8 +49,6 @@ import static org.testng.Assert.assertNotNull;
public class InvoiceModuleWithEmbeddedDb extends DefaultInvoiceModule {
- private final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
-
private void installNotificationQueue() {
bind(NotificationQueueService.class).to(MockNotificationQueueService.class).asEagerSingleton();
}
@@ -67,7 +64,7 @@ public class InvoiceModuleWithEmbeddedDb extends DefaultInvoiceModule {
public void configure() {
loadSystemPropertiesFromClasspath("/resource.properties");
- final IDBI dbi = helper.getDBI();
+ final IDBI dbi = KillbillTestSuiteWithEmbeddedDB.getDBI();
bind(IDBI.class).toInstance(dbi);
bind(Clock.class).to(DefaultClock.class).asEagerSingleton();
diff --git a/invoice/src/test/java/com/ning/billing/invoice/MockModule.java b/invoice/src/test/java/com/ning/billing/invoice/MockModule.java
index e12e3d5..e8eaa3c 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/MockModule.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/MockModule.java
@@ -26,8 +26,8 @@ import org.skife.jdbi.v2.IDBI;
import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.catalog.glue.CatalogModule;
import com.ning.billing.dbi.DBIProvider;
+import com.ning.billing.dbi.DBTestingHelper;
import com.ning.billing.dbi.DbiConfig;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.invoice.api.formatters.InvoiceFormatterFactory;
import com.ning.billing.invoice.api.migration.TestDefaultInvoiceMigrationApi;
import com.ning.billing.invoice.glue.DefaultInvoiceModule;
@@ -65,8 +65,7 @@ public class MockModule extends AbstractModule {
install(new TagStoreModule());
install(new CustomFieldModule());
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- bind(MysqlTestingHelper.class).toInstance(helper);
+ final DBTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper();
if (helper.isUsingLocalInstance()) {
bind(IDBI.class).toProvider(DBIProvider.class).asEagerSingleton();
final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java b/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
index 3b9a47e..4ea0e9d 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
@@ -33,8 +33,8 @@ import org.testng.annotations.Test;
import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.catalog.MockCatalogModule;
import com.ning.billing.dbi.DBIProvider;
+import com.ning.billing.dbi.DBTestingHelper;
import com.ning.billing.dbi.DbiConfig;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.entitlement.api.user.EntitlementUserApiException;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.invoice.InvoiceDispatcher;
@@ -127,8 +127,7 @@ public class TestNextBillingDateNotifier extends InvoiceTestSuiteWithEmbeddedDB
install(new TemplateModule());
install(new TagStoreModule());
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- bind(MysqlTestingHelper.class).toInstance(helper);
+ final DBTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper();
if (helper.isUsingLocalInstance()) {
bind(IDBI.class).toProvider(DBIProvider.class).asEagerSingleton();
final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
index 23559e2..2c8ec5a 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
@@ -43,7 +43,6 @@ 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.dbi.MysqlTestingHelper;
import com.ning.billing.entitlement.api.SubscriptionTransitionType;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.invoice.api.Invoice;
@@ -89,9 +88,6 @@ public class TestInvoiceDispatcher extends InvoicingTestBase {
private GlobalLocker locker;
@Inject
- private MysqlTestingHelper helper;
-
- @Inject
private NextBillingDateNotifier notifier;
@Inject
@@ -268,7 +264,7 @@ public class TestInvoiceDispatcher extends InvoicingTestBase {
}
}
- @Test(groups= "slow")
+ @Test(groups = "slow")
public void testCreateNextFutureNotificationDate() throws Exception {
final LocalDate startDate = new LocalDate("2012-10-26");
@@ -276,7 +272,7 @@ public class TestInvoiceDispatcher extends InvoicingTestBase {
clock.setTime(new DateTime(2012, 10, 26, 1, 12, 23, DateTimeZone.UTC));
final InvoiceItemModelDao item = new InvoiceItemModelDao(UUID.randomUUID(), clock.getUTCNow(), InvoiceItemType.RECURRING, UUID.randomUUID(), UUID.randomUUID(), UUID.randomUUID(), UUID.randomUUID(),
- "planName", "phaseName", startDate, endDate, new BigDecimal("23.9"), new BigDecimal("23.9"), Currency.EUR, null);
+ "planName", "phaseName", startDate, endDate, new BigDecimal("23.9"), new BigDecimal("23.9"), Currency.EUR, null);
final InvoiceNotifier invoiceNotifier = new NullInvoiceNotifier();
final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountInternalApi, billingApi, entitlementInternalApi, invoiceDao,
@@ -285,7 +281,7 @@ public class TestInvoiceDispatcher extends InvoicingTestBase {
final DateTime expectedBefore = clock.getUTCNow();
final Map<UUID, DateTime> result = dispatcher.createNextFutureNotificationDate(Collections.singletonList(item), DateTimeZone.forID("Pacific/Pitcairn"));
- final DateTime expectedAfter = clock.getUTCNow();
+ final DateTime expectedAfter = clock.getUTCNow();
Assert.assertEquals(result.size(), 1);
@@ -294,13 +290,10 @@ public class TestInvoiceDispatcher extends InvoicingTestBase {
final LocalDate receivedTargetDate = new LocalDate(receivedDate, DateTimeZone.forID("Pacific/Pitcairn"));
Assert.assertEquals(receivedTargetDate, endDate);
-
-
- Assert.assertTrue(receivedDate.compareTo(new DateTime(2012, 11, 26, 9 /* 1 + 8 for Pitcairn */ , 12, 23, DateTimeZone.UTC)) >= 0);
+ Assert.assertTrue(receivedDate.compareTo(new DateTime(2012, 11, 26, 9 /* 1 + 8 for Pitcairn */, 12, 23, DateTimeZone.UTC)) >= 0);
Assert.assertTrue(receivedDate.compareTo(new DateTime(2012, 11, 26, 9, 13, 0, DateTimeZone.UTC)) <= 0);
}
-
//MDW add a test to cover when the account auto-invoice-off tag is present
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/TestChargeBacks.java b/invoice/src/test/java/com/ning/billing/invoice/tests/TestChargeBacks.java
index 6cda9cb..8e701dd 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/TestChargeBacks.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/TestChargeBacks.java
@@ -29,9 +29,7 @@ import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
import com.ning.billing.ErrorCode;
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.catalog.api.Currency;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
@@ -77,8 +75,7 @@ public class TestChargeBacks extends InvoiceTestSuiteWithEmbeddedDB {
public void setup() throws IOException {
loadSystemPropertiesFromClasspath("/resource.properties");
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- final IDBI dbi = helper.getDBI();
+ final IDBI dbi = getDBI();
invoiceSqlDao = dbi.onDemand(InvoiceSqlDao.class);
invoiceSqlDao.test(internalCallContext);
diff --git a/junction/src/main/resources/com/ning/billing/junction/ddl.sql b/junction/src/main/resources/com/ning/billing/junction/ddl.sql
index cf3ddb0..2747e2d 100644
--- a/junction/src/main/resources/com/ning/billing/junction/ddl.sql
+++ b/junction/src/main/resources/com/ning/billing/junction/ddl.sql
@@ -1,3 +1,5 @@
+/*! SET storage_engine=INNODB */;
+
DROP TABLE IF EXISTS blocking_states;
CREATE TABLE blocking_states (
record_id int(11) unsigned NOT NULL AUTO_INCREMENT,
@@ -13,6 +15,6 @@ CREATE TABLE blocking_states (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE INDEX blocking_states_id ON blocking_states(blockable_id);
CREATE INDEX blocking_states_tenant_account_record_id ON blocking_states(tenant_record_id, account_record_id);
diff --git a/junction/src/test/java/com/ning/billing/junction/api/blocking/TestDefaultBlockingApi.java b/junction/src/test/java/com/ning/billing/junction/api/blocking/TestDefaultBlockingApi.java
index e763464..eeb92dc 100644
--- a/junction/src/test/java/com/ning/billing/junction/api/blocking/TestDefaultBlockingApi.java
+++ b/junction/src/test/java/com/ning/billing/junction/api/blocking/TestDefaultBlockingApi.java
@@ -43,7 +43,7 @@ public class TestDefaultBlockingApi extends JunctionTestSuiteWithEmbeddedDB {
@BeforeMethod(groups = "slow")
public void setUp() throws Exception {
- final BlockingStateDao blockingStateDao = new DefaultBlockingStateDao(getMysqlTestingHelper().getDBI());
+ final BlockingStateDao blockingStateDao = new DefaultBlockingStateDao(getDBI());
blockingApi = new DefaultInternalBlockingApi(blockingStateDao, clock);
}
@@ -51,7 +51,7 @@ public class TestDefaultBlockingApi extends JunctionTestSuiteWithEmbeddedDB {
public void testSetBlockingStateOnBundle() throws Exception {
final UUID bundleId = UUID.randomUUID();
final Long accountRecordId = 123049714L;
- getMysqlTestingHelper().getDBI().withHandle(new HandleCallback<Void>() {
+ getDBI().withHandle(new HandleCallback<Void>() {
@Override
public Void withHandle(final Handle handle) throws Exception {
handle.execute("DROP TABLE IF EXISTS bundles;\n" +
@@ -79,7 +79,7 @@ public class TestDefaultBlockingApi extends JunctionTestSuiteWithEmbeddedDB {
Assert.assertEquals(resultState.getStateName(), blockingState.getStateName());
// Verify the account_record_id was populated
- getMysqlTestingHelper().getDBI().withHandle(new HandleCallback<Void>() {
+ getDBI().withHandle(new HandleCallback<Void>() {
@Override
public Void withHandle(final Handle handle) throws Exception {
final List<Map<String, Object>> values = handle.select("select account_record_id from blocking_states where id = ?", bundleId.toString());
diff --git a/meter/src/main/java/com/ning/billing/meter/timeline/persistent/TimelineSqlDao.java b/meter/src/main/java/com/ning/billing/meter/timeline/persistent/TimelineSqlDao.java
index 33e2b1f..c302e20 100644
--- a/meter/src/main/java/com/ning/billing/meter/timeline/persistent/TimelineSqlDao.java
+++ b/meter/src/main/java/com/ning/billing/meter/timeline/persistent/TimelineSqlDao.java
@@ -30,7 +30,7 @@ import org.skife.jdbi.v2.sqlobject.customizers.Mapper;
import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
import org.skife.jdbi.v2.sqlobject.mixins.Transactional;
import org.skife.jdbi.v2.sqlobject.mixins.Transmogrifier;
-import org.skife.jdbi.v2.sqlobject.stringtemplate.ExternalizedSqlViaStringTemplate3;
+import org.skife.jdbi.v2.sqlobject.stringtemplate.UseStringTemplate3StatementLocator;
import com.ning.billing.meter.timeline.categories.CategoryIdAndMetric;
import com.ning.billing.meter.timeline.categories.CategoryIdAndMetricBinder;
@@ -46,7 +46,7 @@ import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
import com.ning.billing.util.callcontext.InternalTenantContextBinder;
-@ExternalizedSqlViaStringTemplate3()
+@UseStringTemplate3StatementLocator()
@RegisterMapper({CategoryIdAndMetricMapper.class, StartTimesMapper.class, SourceIdAndMetricIdMapper.class})
public interface TimelineSqlDao extends Transactional<TimelineSqlDao>, Transmogrifier {
diff --git a/meter/src/main/resources/com/ning/billing/meter/timeline/ddl.sql b/meter/src/main/resources/com/ning/billing/meter/timeline/ddl.sql
index 23f046d..1633b5e 100644
--- a/meter/src/main/resources/com/ning/billing/meter/timeline/ddl.sql
+++ b/meter/src/main/resources/com/ning/billing/meter/timeline/ddl.sql
@@ -1,3 +1,5 @@
+/*! SET storage_engine=INNODB */;
+
create table sources (
record_id int(11) unsigned not null auto_increment
, bundle_id char(36) default null
@@ -10,7 +12,7 @@ create table sources (
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
, index created_date_record_id_dx (created_date, record_id)
-) engine = innodb default charset = latin1;
+) default charset = latin1;
create index sources_tenant_account_record_id on sources(tenant_record_id, account_record_id);
create table event_categories (
@@ -19,7 +21,7 @@ create table event_categories (
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
, unique index event_category_unq (event_category)
-) engine = innodb default charset = latin1;
+) default charset = latin1;
create index event_categories_tenant_record_id on event_categories(tenant_record_id);
create table metrics (
@@ -29,7 +31,7 @@ create table metrics (
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
, unique index metric_unq (event_category_id, metric)
-) engine = innodb default charset = latin1;
+) default charset = latin1;
create index metrics_tenant_record_id on metrics(tenant_record_id);
create table timeline_chunks (
@@ -47,12 +49,12 @@ create table timeline_chunks (
, primary key(record_id)
, unique index source_id_timeline_chunk_metric_idx (source_id, metric_id, start_time, aggregation_level)
, index valid_agg_host_start_time (not_valid, aggregation_level, source_id, metric_id, start_time)
-) engine = innodb default charset = latin1;
+) default charset = latin1;
create table last_start_times (
time_inserted int not null primary key
, start_times mediumtext not null
-) engine = innodb default charset = latin1;
+) default charset = latin1;
insert ignore into timeline_chunks(record_id, source_id, metric_id, sample_count, start_time, end_time, in_row_samples, blob_samples)
values (0, 0, 0, 0, 0, 0, null, null);
@@ -67,5 +69,5 @@ create table timeline_rolled_up_chunk (
, account_record_id int(11) unsigned default null
, tenant_record_id int(11) unsigned default null
, primary key(record_id)
-) engine = innodb default charset = latin1;
+) default charset = latin1;
create index timeline_rolled_up_chunk_tenant_account_record_id on timeline_rolled_up_chunk(tenant_record_id, account_record_id);
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 d91d213..084e6c6 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,9 +16,6 @@
package com.ning.billing.overdue.notification;
-import static com.jayway.awaitility.Awaitility.await;
-import static java.util.concurrent.TimeUnit.MINUTES;
-
import java.io.IOException;
import java.sql.SQLException;
import java.util.UUID;
@@ -33,14 +30,10 @@ import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
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.util.config.CatalogConfig;
-import com.ning.billing.util.config.InvoiceConfig;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.entitlement.api.user.EntitlementUserApiException;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.junction.api.Blockable;
@@ -62,8 +55,10 @@ 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.customfield.dao.DefaultCustomFieldDao;
+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.email.EmailModule;
import com.ning.billing.util.email.templates.TemplateModule;
import com.ning.billing.util.globallocker.GlobalLocker;
@@ -81,6 +76,9 @@ 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;
+
public class TestOverdueCheckNotifier extends OverdueTestSuiteWithEmbeddedDB {
private Clock clock;
private DefaultOverdueCheckNotifier notifier;
@@ -94,7 +92,7 @@ public class TestOverdueCheckNotifier extends OverdueTestSuiteWithEmbeddedDB {
UUID latestSubscriptionId = null;
public OverdueListenerMock() {
- super(null, new InternalCallContextFactory(getMysqlTestingHelper().getDBI(), new ClockMock()));
+ super(null, new InternalCallContextFactory(getDBI(), new ClockMock()));
}
@Override
@@ -126,9 +124,7 @@ public class TestOverdueCheckNotifier extends OverdueTestSuiteWithEmbeddedDB {
final CatalogConfig catalogConfig = new ConfigurationObjectFactory(System.getProperties()).build(CatalogConfig.class);
bind(CatalogConfig.class).toInstance(catalogConfig);
bind(CatalogService.class).to(DefaultCatalogService.class).asEagerSingleton();
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- bind(MysqlTestingHelper.class).toInstance(helper);
- final IDBI dbi = helper.getDBI();
+ final IDBI dbi = getDBI();
bind(IDBI.class).toInstance(dbi);
bind(TagDao.class).to(DefaultTagDao.class).asEagerSingleton();
bind(CustomFieldDao.class).to(DefaultCustomFieldDao.class).asEagerSingleton();
diff --git a/payment/src/main/resources/com/ning/billing/payment/ddl.sql b/payment/src/main/resources/com/ning/billing/payment/ddl.sql
index 14c5246..fbc1279 100644
--- a/payment/src/main/resources/com/ning/billing/payment/ddl.sql
+++ b/payment/src/main/resources/com/ning/billing/payment/ddl.sql
@@ -1,3 +1,5 @@
+/*! SET storage_engine=INNODB */;
+
DROP TABLE IF EXISTS payments;
CREATE TABLE payments (
record_id int(11) unsigned NOT NULL AUTO_INCREMENT,
@@ -18,7 +20,7 @@ CREATE TABLE payments (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY (record_id)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE UNIQUE INDEX payments_id ON payments(id);
CREATE INDEX payments_inv ON payments(invoice_id);
CREATE INDEX payments_accnt ON payments(account_id);
@@ -46,7 +48,7 @@ CREATE TABLE payment_history (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE INDEX payment_history_target_record_id ON payment_history(target_record_id);
CREATE INDEX payment_history_tenant_account_record_id ON payment_history(tenant_record_id, account_record_id);
@@ -66,7 +68,7 @@ CREATE TABLE payment_attempts (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY (record_id)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE UNIQUE INDEX payment_attempts_id ON payment_attempts(id);
CREATE INDEX payment_attempts_payment ON payment_attempts(payment_id);
CREATE INDEX payment_attempts_tenant_account_record_id ON payment_attempts(tenant_record_id, account_record_id);
@@ -89,7 +91,7 @@ CREATE TABLE payment_attempt_history (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE INDEX payment_attempt_history_target_record_id ON payment_attempt_history(target_record_id);
CREATE INDEX payment_attempt_history_tenant_account_record_id ON payment_attempt_history(tenant_record_id, account_record_id);
@@ -108,7 +110,7 @@ CREATE TABLE payment_methods (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY (record_id)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE UNIQUE INDEX payment_methods_id ON payment_methods(id);
CREATE INDEX payment_methods_active_accnt ON payment_methods(is_active, account_id);
CREATE INDEX payment_methods_tenant_account_record_id ON payment_methods(tenant_record_id, account_record_id);
@@ -130,7 +132,7 @@ CREATE TABLE payment_method_history (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE INDEX payment_method_history_target_record_id ON payment_method_history(target_record_id);
CREATE INDEX payment_method_history_tenant_account_record_id ON payment_method_history(tenant_record_id, account_record_id);
@@ -151,7 +153,7 @@ CREATE TABLE refunds (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY (record_id)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE UNIQUE INDEX refunds_id ON refunds(id);
CREATE INDEX refunds_pay ON refunds(payment_id);
CREATE INDEX refunds_accnt ON refunds(account_id);
@@ -176,7 +178,7 @@ CREATE TABLE refund_history (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE INDEX refund_history_target_record_id ON refund_history(target_record_id);
CREATE INDEX refund_history_tenant_account_record_id ON refund_history(tenant_record_id, account_record_id);
diff --git a/payment/src/test/java/com/ning/billing/payment/dao/TestPaymentDao.java b/payment/src/test/java/com/ning/billing/payment/dao/TestPaymentDao.java
index c574c78..bf50c4c 100644
--- a/payment/src/test/java/com/ning/billing/payment/dao/TestPaymentDao.java
+++ b/payment/src/test/java/com/ning/billing/payment/dao/TestPaymentDao.java
@@ -31,8 +31,8 @@ import org.testng.annotations.Test;
import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.dbi.DBIProvider;
+import com.ning.billing.dbi.DBTestingHelper;
import com.ning.billing.dbi.DbiConfig;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.payment.PaymentTestSuiteWithEmbeddedDB;
import com.ning.billing.payment.api.PaymentStatus;
import com.ning.billing.payment.dao.RefundModelDao.RefundStatus;
@@ -47,7 +47,7 @@ import static org.testng.Assert.fail;
public class TestPaymentDao extends PaymentTestSuiteWithEmbeddedDB {
private PaymentDao paymentDao;
- private MysqlTestingHelper helper;
+ private DBTestingHelper helper;
private IDBI dbi;
private Clock clock;
@@ -59,7 +59,7 @@ public class TestPaymentDao extends PaymentTestSuiteWithEmbeddedDB {
}
private void setupDb() {
- helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
+ helper = KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper();
if (helper.isUsingLocalInstance()) {
final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
final DBIProvider provider = new DBIProvider(config);
pom.xml 6(+6 -0)
diff --git a/pom.xml b/pom.xml
index 30b5439..75b9495 100644
--- a/pom.xml
+++ b/pom.xml
@@ -299,6 +299,12 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>1.3.158</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.2</version>
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 d6ae88a..8d7fcab 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
@@ -39,6 +39,7 @@ import com.ning.billing.api.TestApiListener;
import com.ning.billing.beatrix.glue.BeatrixModule;
import com.ning.billing.catalog.glue.CatalogModule;
import com.ning.billing.dbi.DBIProvider;
+import com.ning.billing.dbi.DBTestingHelper;
import com.ning.billing.dbi.DbiConfig;
import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.entitlement.glue.DefaultEntitlementModule;
@@ -86,7 +87,7 @@ public class TestJaxrsBase extends KillbillClient {
protected static TestKillbillGuiceListener listener;
- private final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
+ private final DBTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper();
private HttpServer server;
protected TestApiListener busHandler;
@@ -103,10 +104,10 @@ public class TestJaxrsBase extends KillbillClient {
public static class TestKillbillGuiceListener extends KillbillGuiceListener {
- private final MysqlTestingHelper helper;
+ private final DBTestingHelper helper;
private final Clock clock;
- public TestKillbillGuiceListener(final MysqlTestingHelper helper, final Clock clock) {
+ public TestKillbillGuiceListener(final DBTestingHelper helper, final Clock clock) {
super();
this.helper = helper;
this.clock = clock;
@@ -132,10 +133,10 @@ public class TestJaxrsBase extends KillbillClient {
public static class TestKillbillServerModule extends KillbillServerModule {
- private final MysqlTestingHelper helper;
+ private final DBTestingHelper helper;
private final Clock clock;
- public TestKillbillServerModule(final MysqlTestingHelper helper, final Clock clock) {
+ public TestKillbillServerModule(final DBTestingHelper helper, final Clock clock) {
super();
this.helper = helper;
this.clock = clock;
@@ -188,7 +189,6 @@ public class TestJaxrsBase extends KillbillClient {
@Override
protected void configureDao() {
- bind(MysqlTestingHelper.class).toInstance(helper);
if (helper.isUsingLocalInstance()) {
bind(IDBI.class).toProvider(DBIProvider.class).asEagerSingleton();
final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
diff --git a/server/src/test/java/com/ning/billing/server/security/TestKillbillJdbcRealm.java b/server/src/test/java/com/ning/billing/server/security/TestKillbillJdbcRealm.java
index 7f1fc99..ed0304b 100644
--- a/server/src/test/java/com/ning/billing/server/security/TestKillbillJdbcRealm.java
+++ b/server/src/test/java/com/ning/billing/server/security/TestKillbillJdbcRealm.java
@@ -45,14 +45,14 @@ public class TestKillbillJdbcRealm extends ServerTestSuiteWithEmbeddedDB {
@BeforeMethod(groups = "slow")
public void setUp() throws Exception {
// Create the tenant
- final DefaultTenantDao tenantDao = new DefaultTenantDao(getMysqlTestingHelper().getDBI());
+ final DefaultTenantDao tenantDao = new DefaultTenantDao(getDBI());
tenant = new DefaultTenant(UUID.randomUUID(), null, null, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), UUID.randomUUID().toString());
tenantDao.create(new TenantModelDao(tenant), internalCallContext);
// Setup the security manager
final BoneCPConfig dbConfig = new BoneCPConfig();
- dbConfig.setJdbcUrl(getMysqlTestingHelper().getJdbcConnectionString());
+ dbConfig.setJdbcUrl(getDBTestingHelper().getJdbcConnectionString());
dbConfig.setUsername(MysqlTestingHelper.USERNAME);
dbConfig.setPassword(MysqlTestingHelper.PASSWORD);
diff --git a/tenant/src/main/resources/com/ning/billing/tenant/ddl.sql b/tenant/src/main/resources/com/ning/billing/tenant/ddl.sql
index 664a2e0..82b705d 100644
--- a/tenant/src/main/resources/com/ning/billing/tenant/ddl.sql
+++ b/tenant/src/main/resources/com/ning/billing/tenant/ddl.sql
@@ -1,3 +1,5 @@
+/*! SET storage_engine=INNODB */;
+
DROP TABLE IF EXISTS tenants;
CREATE TABLE tenants (
record_id int(11) unsigned NOT NULL AUTO_INCREMENT,
@@ -11,7 +13,7 @@ CREATE TABLE tenants (
updated_date datetime DEFAULT NULL,
updated_by varchar(50) DEFAULT NULL,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX tenants_id ON tenants(id);
CREATE UNIQUE INDEX tenants_api_key ON tenants(api_key);
@@ -29,5 +31,5 @@ CREATE TABLE tenant_kvs (
updated_date datetime DEFAULT NULL,
updated_by varchar(50) DEFAULT NULL,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE INDEX tenant_kvs_key ON tenant_kvs(tenant_key);
diff --git a/tenant/src/test/java/com/ning/billing/tenant/dao/TestDefaultTenantDao.java b/tenant/src/test/java/com/ning/billing/tenant/dao/TestDefaultTenantDao.java
index b5e95ed..b8594bf 100644
--- a/tenant/src/test/java/com/ning/billing/tenant/dao/TestDefaultTenantDao.java
+++ b/tenant/src/test/java/com/ning/billing/tenant/dao/TestDefaultTenantDao.java
@@ -33,7 +33,7 @@ public class TestDefaultTenantDao extends TenantTestSuiteWithEmbeddedDb {
@Test(groups = "slow")
public void testWeCanStoreAndMatchCredentials() throws Exception {
- final DefaultTenantDao tenantDao = new DefaultTenantDao(getMysqlTestingHelper().getDBI());
+ final DefaultTenantDao tenantDao = new DefaultTenantDao(getDBI());
final DefaultTenant tenant = new DefaultTenant(UUID.randomUUID(), null, null, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), UUID.randomUUID().toString());
@@ -56,7 +56,7 @@ public class TestDefaultTenantDao extends TenantTestSuiteWithEmbeddedDb {
@Test(groups = "slow")
public void testTenantKeyValue() throws Exception {
- final DefaultTenantDao tenantDao = new DefaultTenantDao(getMysqlTestingHelper().getDBI());
+ final DefaultTenantDao tenantDao = new DefaultTenantDao(getDBI());
final DefaultTenant tenant = new DefaultTenant(UUID.randomUUID(), null, null, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), UUID.randomUUID().toString());
tenantDao.create(new TenantModelDao(tenant), internalCallContext);
diff --git a/usage/src/main/resources/com/ning/billing/usage/ddl.sql b/usage/src/main/resources/com/ning/billing/usage/ddl.sql
index c2cd87c..9422d50 100644
--- a/usage/src/main/resources/com/ning/billing/usage/ddl.sql
+++ b/usage/src/main/resources/com/ning/billing/usage/ddl.sql
@@ -1,3 +1,5 @@
+/*! SET storage_engine=INNODB */;
+
DROP TABLE IF EXISTS rolled_up_usage;
CREATE TABLE rolled_up_usage (
record_id int(11) unsigned NOT NULL AUTO_INCREMENT,
@@ -12,7 +14,7 @@ CREATE TABLE rolled_up_usage (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX rolled_up_usage_id ON rolled_up_usage(id);
CREATE INDEX rolled_up_usage_subscription_id ON rolled_up_usage(subscription_id ASC);
CREATE INDEX rolled_up_usage_tenant_account_record_id ON rolled_up_usage(tenant_record_id, account_record_id);
util/pom.xml 5(+5 -0)
diff --git a/util/pom.xml b/util/pom.xml
index 743c8e7..f2f73d1 100644
--- a/util/pom.xml
+++ b/util/pom.xml
@@ -53,6 +53,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
</dependency>
diff --git a/util/src/main/resources/com/ning/billing/util/ddl.sql b/util/src/main/resources/com/ning/billing/util/ddl.sql
index 404ba91..157001b 100644
--- a/util/src/main/resources/com/ning/billing/util/ddl.sql
+++ b/util/src/main/resources/com/ning/billing/util/ddl.sql
@@ -1,3 +1,5 @@
+/*! SET storage_engine=INNODB */;
+
DROP TABLE IF EXISTS custom_fields;
CREATE TABLE custom_fields (
record_id int(11) unsigned NOT NULL AUTO_INCREMENT,
@@ -13,7 +15,7 @@ CREATE TABLE custom_fields (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX custom_fields_id ON custom_fields(id);
CREATE INDEX custom_fields_object_id_object_type ON custom_fields(object_id, object_type);
CREATE UNIQUE INDEX custom_fields_unique ON custom_fields(object_id, object_type, field_name);
@@ -36,7 +38,7 @@ CREATE TABLE custom_field_history (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE INDEX custom_field_history_target_record_id ON custom_field_history(target_record_id);
CREATE INDEX custom_field_history_object_id_object_type ON custom_fields(object_id, object_type);
CREATE INDEX custom_field_history_tenant_account_record_id ON custom_field_history(tenant_record_id, account_record_id);
@@ -54,7 +56,7 @@ CREATE TABLE tag_definitions (
updated_date datetime NOT NULL,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX tag_definitions_id ON tag_definitions(id);
CREATE INDEX tag_definitions_tenant_record_id ON tag_definitions(tenant_record_id);
@@ -74,7 +76,7 @@ CREATE TABLE tag_definition_history (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE INDEX tag_definition_history_id ON tag_definition_history(id);
CREATE INDEX tag_definition_history_target_record_id ON tag_definition_history(target_record_id);
CREATE INDEX tag_definition_history_name ON tag_definition_history(name);
@@ -95,7 +97,7 @@ CREATE TABLE tags (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE = innodb;
+);
CREATE UNIQUE INDEX tags_id ON tags(id);
CREATE INDEX tags_by_object ON tags(object_id);
CREATE INDEX tags_tenant_account_record_id ON tags(tenant_record_id, account_record_id);
@@ -117,7 +119,7 @@ CREATE TABLE tag_history (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE = innodb;
+);
CREATE INDEX tag_history_target_record_id ON tag_history(target_record_id);
CREATE INDEX tag_history_by_object ON tags(object_id);
CREATE INDEX tag_history_tenant_account_record_id ON tag_history(tenant_record_id, account_record_id);
@@ -139,7 +141,7 @@ CREATE TABLE notifications (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE UNIQUE INDEX notifications_id ON notifications(id);
CREATE INDEX `idx_comp_where` ON notifications (`effective_date`, `queue_name`, `processing_state`,`processing_owner`,`processing_available_date`);
CREATE INDEX `idx_update` ON notifications (`processing_state`,`processing_owner`,`processing_available_date`);
@@ -155,10 +157,12 @@ CREATE TABLE claimed_notifications (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE INDEX claimed_notifications_tenant_account_record_id ON claimed_notifications(tenant_record_id, account_record_id);
DROP TABLE IF EXISTS audit_log;
+/*! SET storage_engine=INNODB */;
+
CREATE TABLE audit_log (
record_id int(11) unsigned NOT NULL AUTO_INCREMENT,
id char(36) NOT NULL,
@@ -173,7 +177,7 @@ CREATE TABLE audit_log (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE INDEX audit_log_fetch_target_record_id ON audit_log(table_name, target_record_id);
CREATE INDEX audit_log_user_name ON audit_log(created_by);
CREATE INDEX audit_log_tenant_account_record_id ON audit_log(tenant_record_id, account_record_id);
@@ -191,7 +195,7 @@ CREATE TABLE bus_events (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE INDEX `idx_bus_where` ON bus_events (`processing_state`,`processing_owner`,`processing_available_date`);
CREATE INDEX bus_events_tenant_account_record_id ON bus_events(tenant_record_id, account_record_id);
@@ -204,5 +208,5 @@ CREATE TABLE claimed_bus_events (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE=innodb;
+);
CREATE INDEX claimed_bus_events_tenant_account_record_id ON claimed_bus_events(tenant_record_id, account_record_id);
diff --git a/util/src/main/resources/com/ning/billing/util/notificationq/dao/NotificationSqlDao.sql.stg b/util/src/main/resources/com/ning/billing/util/notificationq/dao/NotificationSqlDao.sql.stg
index 8287ea4..f0d9187 100644
--- a/util/src/main/resources/com/ning/billing/util/notificationq/dao/NotificationSqlDao.sql.stg
+++ b/util/src/main/resources/com/ning/billing/util/notificationq/dao/NotificationSqlDao.sql.stg
@@ -20,7 +20,6 @@ getReadyNotifications() ::= <<
, account_record_id
, tenant_record_id
from notifications
- FORCE INDEX (idx_comp_where)
where
effective_date \<= :now
and queue_name = :queueName
diff --git a/util/src/test/java/com/ning/billing/dbi/DBTestingHelper.java b/util/src/test/java/com/ning/billing/dbi/DBTestingHelper.java
new file mode 100644
index 0000000..35e3590
--- /dev/null
+++ b/util/src/test/java/com/ning/billing/dbi/DBTestingHelper.java
@@ -0,0 +1,180 @@
+/*
+ * 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.dbi;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.skife.jdbi.v2.DBI;
+import org.skife.jdbi.v2.Handle;
+import org.skife.jdbi.v2.IDBI;
+import org.skife.jdbi.v2.tweak.HandleCallback;
+import org.skife.jdbi.v2.util.StringMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.ning.billing.util.io.IOUtils;
+
+import com.google.common.io.Resources;
+
+public abstract class DBTestingHelper {
+
+ private static final Logger log = LoggerFactory.getLogger(DBTestingHelper.class);
+
+ public static final String DB_NAME = "killbill";
+ public static final String USERNAME = "root";
+ public static final String PASSWORD = "root";
+
+ // Discover dynamically list of all tables in that database;
+ protected List<String> allTables;
+ protected IDBI dbiInstance = null;
+
+ public synchronized IDBI getDBI() {
+ if (dbiInstance == null) {
+ final String dbiString = getJdbcConnectionString();
+ dbiInstance = new DBIProvider(dbiString, USERNAME, PASSWORD).get();
+ }
+ return dbiInstance;
+ }
+
+ public void initDb() throws IOException {
+ // We always want the accounts and tenants table
+ initDb("drop table if exists accounts;" +
+ "CREATE TABLE accounts (\n" +
+ " record_id int(11) unsigned NOT NULL AUTO_INCREMENT,\n" +
+ " id char(36) NOT NULL,\n" +
+ " external_key varchar(128) NULL,\n" +
+ " email varchar(128) NOT NULL,\n" +
+ " name varchar(100) NOT NULL,\n" +
+ " first_name_length int NOT NULL,\n" +
+ " currency char(3) DEFAULT NULL,\n" +
+ " billing_cycle_day_local int DEFAULT NULL,\n" +
+ " billing_cycle_day_utc int DEFAULT NULL,\n" +
+ " payment_method_id char(36) DEFAULT NULL,\n" +
+ " time_zone varchar(50) DEFAULT NULL,\n" +
+ " locale varchar(5) DEFAULT NULL,\n" +
+ " address1 varchar(100) DEFAULT NULL,\n" +
+ " address2 varchar(100) DEFAULT NULL,\n" +
+ " company_name varchar(50) DEFAULT NULL,\n" +
+ " city varchar(50) DEFAULT NULL,\n" +
+ " state_or_province varchar(50) DEFAULT NULL,\n" +
+ " country varchar(50) DEFAULT NULL,\n" +
+ " postal_code varchar(16) DEFAULT NULL,\n" +
+ " phone varchar(25) DEFAULT NULL,\n" +
+ " migrated bool DEFAULT false,\n" +
+ " is_notified_for_invoices boolean NOT NULL,\n" +
+ " created_date datetime NOT NULL,\n" +
+ " created_by varchar(50) NOT NULL,\n" +
+ " updated_date datetime DEFAULT NULL,\n" +
+ " updated_by varchar(50) DEFAULT NULL,\n" +
+ " tenant_record_id int(11) unsigned default null,\n" +
+ " PRIMARY KEY(record_id)\n" +
+ ");");
+ initDb("drop table if exists tenants; create table tenants(record_id int(11) unsigned not null auto_increment, id char(36) not null, primary key(record_id));");
+
+ // We always want the basic tables when we do account_record_id lookups (e.g. for custom fields, tags or junction)
+ initDb("drop table if exists bundles; create table bundles(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));");
+ 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", "entitlement", "util", "payment", "invoice", "junction", "usage", "meter", "tenant"}) {
+ for (final String ddlFile : new String[]{"ddl.sql", "ddl_test.sql"}) {
+ final String ddl;
+ try {
+ ddl = IOUtils.toString(Resources.getResource("com/ning/billing/" + pack + "/" + ddlFile).openStream());
+ } catch (final IllegalArgumentException ignored) {
+ // The test doesn't have this module ddl in the classpath - that's fine
+ continue;
+ }
+ initDb(ddl);
+ }
+ }
+ }
+
+ public void initDb(final String ddl) throws IOException {
+ if (isUsingLocalInstance()) {
+ return;
+ }
+ final IDBI dbi = getDBI();
+ dbi.withHandle(new HandleCallback<Void>() {
+ @Override
+ public Void withHandle(final Handle handle) throws Exception {
+ log.debug("Executing DDL script: " + ddl);
+ handle.createScript(ddl).execute();
+ return null;
+ }
+ });
+ }
+
+ public synchronized List<String> fetchAllTables() {
+ if (allTables == null) {
+ final String dbiString = getInformationSchemaJdbcConnectionString();
+ final IDBI cleanupDbi = new DBI(dbiString, USERNAME, PASSWORD);
+
+ final List<String> tables = cleanupDbi.withHandle(new HandleCallback<List<String>>() {
+
+ @Override
+ public List<String> withHandle(final Handle h) throws Exception {
+ return h.createQuery("select table_name from tables where table_schema = :table_schema and table_type = 'BASE TABLE';")
+ .bind("table_schema", DB_NAME)
+ .map(new StringMapper())
+ .list();
+ }
+ });
+ allTables = tables;
+ }
+ return allTables;
+ }
+
+ public void cleanupAllTables() {
+ final List<String> tablesToCleanup = fetchAllTables();
+ for (final String tableName : tablesToCleanup) {
+ cleanupTable(tableName);
+ }
+ }
+
+ public void cleanupTable(final String table) {
+ log.debug("Deleting table: " + table);
+ final IDBI dbi = getDBI();
+ dbi.withHandle(new HandleCallback<Void>() {
+ @Override
+ public Void withHandle(final Handle handle) throws Exception {
+ handle.execute("truncate table " + table);
+ return null;
+ }
+ });
+ }
+
+ public String getDbName() {
+ return DB_NAME;
+ }
+
+ public abstract boolean isUsingLocalInstance();
+
+ // For debugging
+ public abstract String getConnectionString();
+
+ // To create the DBI
+ public abstract String getJdbcConnectionString();
+
+ public abstract String getInformationSchemaJdbcConnectionString();
+
+ public abstract void start() throws IOException;
+
+ public abstract void stop();
+}
diff --git a/util/src/test/java/com/ning/billing/dbi/H2TestingHelper.java b/util/src/test/java/com/ning/billing/dbi/H2TestingHelper.java
new file mode 100644
index 0000000..9717116
--- /dev/null
+++ b/util/src/test/java/com/ning/billing/dbi/H2TestingHelper.java
@@ -0,0 +1,60 @@
+/*
+ * 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.dbi;
+
+import java.io.IOException;
+
+import org.testng.Assert;
+
+public class H2TestingHelper extends DBTestingHelper {
+
+ static {
+ try {
+ Class.forName("org.h2.Driver");
+ } catch (ClassNotFoundException e) {
+ Assert.fail(e.toString());
+ }
+ }
+
+ @Override
+ public boolean isUsingLocalInstance() {
+ return false;
+ }
+
+ @Override
+ public String getConnectionString() {
+ return "No connection string (in memory)";
+ }
+
+ @Override
+ public String getJdbcConnectionString() {
+ return "jdbc:h2:mem:" + DB_NAME + ";MODE=MYSQL";
+ }
+
+ @Override
+ public String getInformationSchemaJdbcConnectionString() {
+ return "jdbc:h2:mem:foo;MODE=MYSQL;SCHEMA_SEARCH_PATH=INFORMATION_SCHEMA";
+ }
+
+ @Override
+ public void start() throws IOException {
+ }
+
+ @Override
+ public void stop() {
+ }
+}
diff --git a/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java b/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java
index b5105a9..52b4be0 100644
--- a/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java
+++ b/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java
@@ -22,39 +22,24 @@ import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
-import org.skife.jdbi.v2.DBI;
-import org.skife.jdbi.v2.Handle;
-import org.skife.jdbi.v2.IDBI;
-import org.skife.jdbi.v2.tweak.HandleCallback;
-import org.skife.jdbi.v2.util.StringMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.Assert;
-import com.ning.billing.util.io.IOUtils;
-
-import com.google.common.io.Resources;
import com.mysql.management.MysqldResource;
import com.mysql.management.MysqldResourceI;
/**
* Utility class to embed MySQL for testing purposes
*/
-public class MysqlTestingHelper {
+public class MysqlTestingHelper extends DBTestingHelper {
public static final String USE_LOCAL_DB_PROP = "com.ning.billing.dbi.test.useLocalDb";
private static final Logger log = LoggerFactory.getLogger(MysqlTestingHelper.class);
- public static final String DB_NAME = "killbill";
- public static final String USERNAME = "root";
- public static final String PASSWORD = "root";
-
- // Discover dynamically list of all tables in that database;
- private List<String> allTables;
private File dbDir;
private File dataDir;
private MysqldResource mysqldResource;
@@ -76,11 +61,27 @@ public class MysqlTestingHelper {
}
}
+ @Override
public boolean isUsingLocalInstance() {
return (System.getProperty(USE_LOCAL_DB_PROP) != null);
}
- public void startMysql() throws IOException {
+ @Override
+ public String getConnectionString() {
+ return String.format("mysql -u%s -p%s -P%s -S%s/mysql.sock %s", USERNAME, PASSWORD, port, dataDir, DB_NAME);
+ }
+
+ @Override
+ public String getJdbcConnectionString() {
+ return "jdbc:mysql://localhost:" + port + "/" + DB_NAME + "?createDatabaseIfNotExist=true&allowMultiQueries=true";
+ }
+
+ @Override
+ public String getInformationSchemaJdbcConnectionString() {
+ return "jdbc:mysql://localhost:" + port + "/information_schema";
+ }
+
+ public void start() throws IOException {
if (isUsingLocalInstance()) {
return;
}
@@ -112,57 +113,7 @@ public class MysqlTestingHelper {
}
}
- public String getConnectionString() {
- return String.format("mysql -u%s -p%s -P%s -S%s/mysql.sock %s", USERNAME, PASSWORD, port, dataDir, DB_NAME);
- }
-
- public void cleanupTable(final String table) {
-
- if (!isUsingLocalInstance() && (mysqldResource == null || !mysqldResource.isRunning())) {
- log.error("Asked to cleanup table " + table + " but MySQL is not running!");
- return;
- }
-
- log.debug("Deleting table: " + table);
- final IDBI dbi = getDBI();
- dbi.withHandle(new HandleCallback<Void>() {
- @Override
- public Void withHandle(final Handle handle) throws Exception {
- handle.execute("truncate " + table);
- return null;
- }
- });
- }
-
- public void cleanupAllTables() {
- final List<String> tablesToCleanup = fetchAllTables();
- for (final String tableName : tablesToCleanup) {
- cleanupTable(tableName);
- }
- }
-
- public synchronized List<String> fetchAllTables() {
-
- if (allTables == null) {
- final String dbiString = "jdbc:mysql://localhost:" + port + "/information_schema";
- final IDBI cleanupDbi = new DBI(dbiString, USERNAME, PASSWORD);
-
- final List<String> tables = cleanupDbi.withHandle(new HandleCallback<List<String>>() {
-
- @Override
- public List<String> withHandle(final Handle h) throws Exception {
- return h.createQuery("select table_name from tables where table_schema = :table_schema and table_type = 'BASE TABLE';")
- .bind("table_schema", DB_NAME)
- .map(new StringMapper())
- .list();
- }
- });
- allTables = tables;
- }
- return allTables;
- }
-
- public void stopMysql() {
+ public void stop() {
try {
if (mysqldResource != null) {
mysqldResource.shutdown();
@@ -175,94 +126,6 @@ public class MysqlTestingHelper {
}
}
- private IDBI dbiInstance = null;
-
- public synchronized IDBI getDBI() {
- if (dbiInstance == null) {
- final String dbiString = getJdbcConnectionString() + "?createDatabaseIfNotExist=true&allowMultiQueries=true";
- dbiInstance = new DBIProvider(dbiString, USERNAME, PASSWORD).get();
- }
- return dbiInstance;
- }
-
- public String getJdbcConnectionString() {
- return "jdbc:mysql://localhost:" + port + "/" + DB_NAME;
- }
-
- public void initDb() throws IOException {
- // We always want the accounts and tenants table
- initDb("drop table if exists accounts;" +
- "CREATE TABLE accounts (\n" +
- " record_id int(11) unsigned NOT NULL AUTO_INCREMENT,\n" +
- " id char(36) NOT NULL,\n" +
- " external_key varchar(128) NULL,\n" +
- " email varchar(128) NOT NULL,\n" +
- " name varchar(100) NOT NULL,\n" +
- " first_name_length int NOT NULL,\n" +
- " currency char(3) DEFAULT NULL,\n" +
- " billing_cycle_day_local int DEFAULT NULL,\n" +
- " billing_cycle_day_utc int DEFAULT NULL,\n" +
- " payment_method_id char(36) DEFAULT NULL,\n" +
- " time_zone varchar(50) DEFAULT NULL,\n" +
- " locale varchar(5) DEFAULT NULL,\n" +
- " address1 varchar(100) DEFAULT NULL,\n" +
- " address2 varchar(100) DEFAULT NULL,\n" +
- " company_name varchar(50) DEFAULT NULL,\n" +
- " city varchar(50) DEFAULT NULL,\n" +
- " state_or_province varchar(50) DEFAULT NULL,\n" +
- " country varchar(50) DEFAULT NULL,\n" +
- " postal_code varchar(16) DEFAULT NULL,\n" +
- " phone varchar(25) DEFAULT NULL,\n" +
- " migrated bool DEFAULT false,\n" +
- " is_notified_for_invoices boolean NOT NULL,\n" +
- " created_date datetime NOT NULL,\n" +
- " created_by varchar(50) NOT NULL,\n" +
- " updated_date datetime DEFAULT NULL,\n" +
- " updated_by varchar(50) DEFAULT NULL,\n" +
- " tenant_record_id int(11) unsigned default null,\n" +
- " PRIMARY KEY(record_id)\n" +
- ") ENGINE=innodb;");
- initDb("drop table if exists tenants; create table tenants(record_id int(11) unsigned not null auto_increment, id char(36) not null, primary key(record_id)) engine=innodb;");
-
- // We always want the basic tables when we do account_record_id lookups (e.g. for custom fields, tags or junction)
- initDb("drop table if exists bundles; create table bundles(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)) engine=innodb;");
- 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)) engine=innodb;");
-
- for (final String pack : new String[]{"account", "analytics", "beatrix", "entitlement", "util", "payment", "invoice", "junction", "tenant"}) {
- for (final String ddlFile : new String[]{"ddl.sql", "ddl_test.sql"}) {
- final String ddl;
- try {
- ddl = IOUtils.toString(Resources.getResource("com/ning/billing/" + pack + "/" + ddlFile).openStream());
- } catch (final IllegalArgumentException ignored) {
- // The test doesn't have this module ddl in the classpath - that's fine
- continue;
- }
- initDb(ddl);
- }
- }
- }
-
- public void initDb(final String ddl) throws IOException {
- if (isUsingLocalInstance()) {
- return;
- }
- final IDBI dbi = getDBI();
- dbi.withHandle(new HandleCallback<Void>() {
- @Override
- public Void withHandle(final Handle handle) throws Exception {
- log.debug("Executing DDL script: " + ddl);
- handle.createScript(ddl).execute();
- return null;
- }
- });
- }
-
- public String getDbName() {
- return DB_NAME;
- }
-
public static boolean deleteRecursive(final File path) throws FileNotFoundException {
if (!path.exists()) {
throw new FileNotFoundException(path.getAbsolutePath());
diff --git a/util/src/test/java/com/ning/billing/KillbillTestSuite.java b/util/src/test/java/com/ning/billing/KillbillTestSuite.java
index b0d009d..667937e 100644
--- a/util/src/test/java/com/ning/billing/KillbillTestSuite.java
+++ b/util/src/test/java/com/ning/billing/KillbillTestSuite.java
@@ -19,8 +19,6 @@ package com.ning.billing;
import java.lang.reflect.Method;
import java.util.UUID;
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.ITestResult;
diff --git a/util/src/test/java/com/ning/billing/KillbillTestSuiteWithEmbeddedDB.java b/util/src/test/java/com/ning/billing/KillbillTestSuiteWithEmbeddedDB.java
index 264282d..cde037c 100644
--- a/util/src/test/java/com/ning/billing/KillbillTestSuiteWithEmbeddedDB.java
+++ b/util/src/test/java/com/ning/billing/KillbillTestSuiteWithEmbeddedDB.java
@@ -20,23 +20,44 @@ import java.io.IOException;
import java.net.URISyntaxException;
import java.sql.SQLException;
+import org.skife.jdbi.v2.IDBI;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
+import com.ning.billing.dbi.DBTestingHelper;
+import com.ning.billing.dbi.H2TestingHelper;
import com.ning.billing.dbi.MysqlTestingHelper;
public class KillbillTestSuiteWithEmbeddedDB extends KillbillTestSuite {
- protected static final MysqlTestingHelper helper = new MysqlTestingHelper();
+ private static final Logger log = LoggerFactory.getLogger(KillbillTestSuiteWithEmbeddedDB.class);
- public static MysqlTestingHelper getMysqlTestingHelper() {
+ protected static DBTestingHelper helper;
+
+ static {
+ if ("true".equals(System.getProperty("com.ning.billing.dbi.test.h2"))) {
+ log.info("Using h2 as the embedded database");
+ helper = new H2TestingHelper();
+ } else {
+ log.info("Using MySQL as the embedded database");
+ helper = new MysqlTestingHelper();
+ }
+ }
+
+ public static DBTestingHelper getDBTestingHelper() {
return helper;
}
+ public static IDBI getDBI() {
+ return helper.getDBI();
+ }
+
@BeforeSuite(groups = "slow")
public void startMysqlBeforeTestSuite() throws IOException, ClassNotFoundException, SQLException, URISyntaxException {
- helper.startMysql();
+ helper.start();
helper.initDb();
helper.cleanupAllTables();
}
@@ -52,15 +73,15 @@ public class KillbillTestSuiteWithEmbeddedDB extends KillbillTestSuite {
@AfterSuite(groups = "slow")
public void shutdownMysqlAfterTestSuite() throws IOException, ClassNotFoundException, SQLException, URISyntaxException {
if (hasFailed()) {
- log.error("*************************************************************************************************");
- log.error("*** TESTS HAVE FAILED - LEAVING MySQL RUNNING FOR DEBUGGING - MAKE SURE TO KILL IT ONCE DONE ****");
+ log.error("**********************************************************************************************");
+ log.error("*** TESTS HAVE FAILED - LEAVING DB RUNNING FOR DEBUGGING - MAKE SURE TO KILL IT ONCE DONE ****");
log.error(helper.getConnectionString());
- log.error("*************************************************************************************************");
+ log.error("**********************************************************************************************");
return;
}
try {
- helper.stopMysql();
+ helper.stop();
} catch (Exception ignored) {
}
}
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockDbHelperModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockDbHelperModule.java
index e8beb2d..9ec79fd 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockDbHelperModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockDbHelperModule.java
@@ -21,8 +21,8 @@ import org.skife.jdbi.v2.IDBI;
import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.dbi.DBIProvider;
+import com.ning.billing.dbi.DBTestingHelper;
import com.ning.billing.dbi.DbiConfig;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.google.inject.AbstractModule;
@@ -33,8 +33,7 @@ public class MockDbHelperModule extends AbstractModule {
}
public void installMysqlTestingHelper() {
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- bind(MysqlTestingHelper.class).toInstance(helper);
+ final DBTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper();
if (helper.isUsingLocalInstance()) {
bind(IDBI.class).toProvider(DBIProvider.class).asEagerSingleton();
final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
diff --git a/util/src/test/java/com/ning/billing/mock/glue/TestDbiModule.java b/util/src/test/java/com/ning/billing/mock/glue/TestDbiModule.java
index 644afee..77dc191 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/TestDbiModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/TestDbiModule.java
@@ -21,15 +21,14 @@ import org.skife.jdbi.v2.IDBI;
import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.dbi.DBIProvider;
+import com.ning.billing.dbi.DBTestingHelper;
import com.ning.billing.dbi.DbiConfig;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.google.inject.AbstractModule;
public class TestDbiModule extends AbstractModule {
protected void configure() {
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- bind(MysqlTestingHelper.class).toInstance(helper);
+ final DBTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper();
if (helper.isUsingLocalInstance()) {
bind(IDBI.class).toProvider(DBIProvider.class).asEagerSingleton();
final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
diff --git a/util/src/test/java/com/ning/billing/util/bus/TestPersistentEventBus.java b/util/src/test/java/com/ning/billing/util/bus/TestPersistentEventBus.java
index 2b2251b..6d56561 100644
--- a/util/src/test/java/com/ning/billing/util/bus/TestPersistentEventBus.java
+++ b/util/src/test/java/com/ning/billing/util/bus/TestPersistentEventBus.java
@@ -23,22 +23,20 @@ import org.testng.annotations.Test;
import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.dbi.DBIProvider;
+import com.ning.billing.dbi.DBTestingHelper;
import com.ning.billing.dbi.DbiConfig;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.ClockMock;
import com.ning.billing.util.glue.BusModule;
import com.ning.billing.util.glue.BusModule.BusType;
import com.google.inject.AbstractModule;
-import com.google.inject.Inject;
@Guice(modules = TestPersistentEventBus.PersistentBusModuleTest.class)
public class TestPersistentEventBus extends TestEventBusBase {
- @Inject
- private MysqlTestingHelper helper;
public static class PersistentBusModuleTest extends AbstractModule {
+
@Override
protected void configure() {
//System.setProperty("com.ning.billing.dbi.test.useLocalDb", "true");
@@ -46,8 +44,7 @@ public class TestPersistentEventBus extends TestEventBusBase {
bind(Clock.class).to(ClockMock.class).asEagerSingleton();
bind(ClockMock.class).asEagerSingleton();
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- bind(MysqlTestingHelper.class).toInstance(helper);
+ final DBTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper();
if (helper.isUsingLocalInstance()) {
bind(IDBI.class).toProvider(DBIProvider.class).asEagerSingleton();
final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
diff --git a/util/src/test/java/com/ning/billing/util/callcontext/TestInternalCallContextFactory.java b/util/src/test/java/com/ning/billing/util/callcontext/TestInternalCallContextFactory.java
index 20e5d3e..e62e51f 100644
--- a/util/src/test/java/com/ning/billing/util/callcontext/TestInternalCallContextFactory.java
+++ b/util/src/test/java/com/ning/billing/util/callcontext/TestInternalCallContextFactory.java
@@ -35,7 +35,7 @@ public class TestInternalCallContextFactory extends UtilTestSuiteWithEmbeddedDB
@BeforeMethod(groups = "slow")
public void setUp() throws Exception {
- internalCallContextFactory = new InternalCallContextFactory(getMysqlTestingHelper().getDBI(), new ClockMock());
+ internalCallContextFactory = new InternalCallContextFactory(getDBI(), new ClockMock());
}
@Test(groups = "slow")
@@ -43,7 +43,7 @@ public class TestInternalCallContextFactory extends UtilTestSuiteWithEmbeddedDB
final UUID invoiceId = UUID.randomUUID();
final Long accountRecordId = 19384012L;
- getMysqlTestingHelper().getDBI().withHandle(new HandleCallback<Void>() {
+ getDBI().withHandle(new HandleCallback<Void>() {
@Override
public Void withHandle(final Handle handle) throws Exception {
handle.execute("DROP TABLE IF EXISTS invoices;\n" +
@@ -60,7 +60,7 @@ public class TestInternalCallContextFactory extends UtilTestSuiteWithEmbeddedDB
" account_record_id int(11) unsigned default null,\n" +
" tenant_record_id int(11) unsigned default null,\n" +
" PRIMARY KEY(record_id)\n" +
- ") ENGINE=innodb;");
+ ");");
handle.execute("insert into invoices (id, account_id, invoice_date, target_date, currency, migrated, created_by, created_date, account_record_id) values " +
"(?, ?, now(), now(), 'USD', 0, 'test', now(), ?)", invoiceId.toString(), UUID.randomUUID().toString(), accountRecordId);
return null;
@@ -78,7 +78,7 @@ public class TestInternalCallContextFactory extends UtilTestSuiteWithEmbeddedDB
final UUID accountId = UUID.randomUUID();
final Long accountRecordId = 19384012L;
- getMysqlTestingHelper().getDBI().withHandle(new HandleCallback<Void>() {
+ getDBTestingHelper().getDBI().withHandle(new HandleCallback<Void>() {
@Override
public Void withHandle(final Handle handle) throws Exception {
// Note: we always create an accounts table, see MysqlTestingHelper
diff --git a/util/src/test/java/com/ning/billing/util/customfield/api/TestDefaultCustomFieldUserApi.java b/util/src/test/java/com/ning/billing/util/customfield/api/TestDefaultCustomFieldUserApi.java
index ac498c4..e17bdd3 100644
--- a/util/src/test/java/com/ning/billing/util/customfield/api/TestDefaultCustomFieldUserApi.java
+++ b/util/src/test/java/com/ning/billing/util/customfield/api/TestDefaultCustomFieldUserApi.java
@@ -44,8 +44,8 @@ public class TestDefaultCustomFieldUserApi extends UtilTestSuiteWithEmbeddedDB {
@BeforeMethod(groups = "slow")
public void setUp() throws Exception {
- final InternalCallContextFactory internalCallContextFactory = new InternalCallContextFactory(getMysqlTestingHelper().getDBI(), new ClockMock());
- final CustomFieldDao customFieldDao = new DefaultCustomFieldDao(getMysqlTestingHelper().getDBI());
+ final InternalCallContextFactory internalCallContextFactory = new InternalCallContextFactory(getDBI(), new ClockMock());
+ final CustomFieldDao customFieldDao = new DefaultCustomFieldDao(getDBI());
customFieldUserApi = new DefaultCustomFieldUserApi(internalCallContextFactory, customFieldDao);
}
@@ -54,7 +54,7 @@ public class TestDefaultCustomFieldUserApi extends UtilTestSuiteWithEmbeddedDB {
final UUID accountId = UUID.randomUUID();
final Long accountRecordId = 19384012L;
- getMysqlTestingHelper().getDBI().withHandle(new HandleCallback<Void>() {
+ getDBI().withHandle(new HandleCallback<Void>() {
@Override
public Void withHandle(final Handle handle) throws Exception {
// Note: we always create an accounts table, see MysqlTestingHelper
@@ -73,7 +73,7 @@ public class TestDefaultCustomFieldUserApi extends UtilTestSuiteWithEmbeddedDB {
Assert.assertEquals(customFields.size(), 1);
Assert.assertEquals(customFields.get(0), customField);
// Verify the account_record_id was populated
- getMysqlTestingHelper().getDBI().withHandle(new HandleCallback<Void>() {
+ getDBTestingHelper().getDBI().withHandle(new HandleCallback<Void>() {
@Override
public Void withHandle(final Handle handle) throws Exception {
final List<Map<String, Object>> values = handle.select("select account_record_id from custom_fields where object_id = ?", accountId.toString());
diff --git a/util/src/test/java/com/ning/billing/util/customfield/TestFieldStore.java b/util/src/test/java/com/ning/billing/util/customfield/TestFieldStore.java
index f401ca4..da7a8b7 100644
--- a/util/src/test/java/com/ning/billing/util/customfield/TestFieldStore.java
+++ b/util/src/test/java/com/ning/billing/util/customfield/TestFieldStore.java
@@ -25,9 +25,7 @@ import org.slf4j.LoggerFactory;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.ObjectType;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.util.UtilTestSuiteWithEmbeddedDB;
import com.ning.billing.util.api.CustomFieldApiException;
import com.ning.billing.util.customfield.dao.CustomFieldDao;
@@ -39,13 +37,12 @@ import static org.testng.Assert.fail;
public class TestFieldStore extends UtilTestSuiteWithEmbeddedDB {
private final Logger log = LoggerFactory.getLogger(TestFieldStore.class);
- private final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
private CustomFieldDao customFieldDao;
@BeforeClass(groups = "slow")
protected void setup() throws IOException {
try {
- final IDBI dbi = helper.getDBI();
+ final IDBI dbi = getDBI();
customFieldDao = new DefaultCustomFieldDao(dbi);
} catch (Throwable t) {
log.error("Setup failed", t);
diff --git a/util/src/test/java/com/ning/billing/util/dao/TestStringTemplateInheritanceWithJdbi.java b/util/src/test/java/com/ning/billing/util/dao/TestStringTemplateInheritanceWithJdbi.java
index ed26dd4..7f0b6a6 100644
--- a/util/src/test/java/com/ning/billing/util/dao/TestStringTemplateInheritanceWithJdbi.java
+++ b/util/src/test/java/com/ning/billing/util/dao/TestStringTemplateInheritanceWithJdbi.java
@@ -45,7 +45,7 @@ public class TestStringTemplateInheritanceWithJdbi extends KillbillTestSuiteWith
@Test(groups = "slow")
public void testInheritQueries() throws Exception {
- final KombuchaSqlDao dao = getMysqlTestingHelper().getDBI().onDemand(KombuchaSqlDao.class);
+ final KombuchaSqlDao dao = getDBI().onDemand(KombuchaSqlDao.class);
// Verify non inherited template
Assert.assertEquals(dao.isIsTimeForKombucha(), clock.getUTCNow().getHourOfDay() == 17);
diff --git a/util/src/test/java/com/ning/billing/util/export/dao/TestDatabaseExportDao.java b/util/src/test/java/com/ning/billing/util/export/dao/TestDatabaseExportDao.java
index f5bdecb..f8b36a9 100644
--- a/util/src/test/java/com/ning/billing/util/export/dao/TestDatabaseExportDao.java
+++ b/util/src/test/java/com/ning/billing/util/export/dao/TestDatabaseExportDao.java
@@ -36,8 +36,8 @@ public class TestDatabaseExportDao extends UtilTestSuiteWithEmbeddedDB {
@BeforeMethod(groups = "slow")
public void setUp() throws Exception {
- final DatabaseSchemaDao databaseSchemaDao = new DatabaseSchemaDao(getMysqlTestingHelper().getDBI());
- dao = new DatabaseExportDao(databaseSchemaDao, getMysqlTestingHelper().getDBI());
+ final DatabaseSchemaDao databaseSchemaDao = new DatabaseSchemaDao(getDBI());
+ dao = new DatabaseExportDao(databaseSchemaDao, getDBI());
}
@Test(groups = "slow")
@@ -58,7 +58,7 @@ public class TestDatabaseExportDao extends UtilTestSuiteWithEmbeddedDB {
final String tableNameA = "test_database_export_dao_a";
final String tableNameB = "test_database_export_dao_b";
- getMysqlTestingHelper().getDBI().withHandle(new HandleCallback<Void>() {
+ getDBTestingHelper().getDBI().withHandle(new HandleCallback<Void>() {
@Override
public Void withHandle(final Handle handle) throws Exception {
handle.execute("drop table if exists " + tableNameA);
@@ -66,13 +66,13 @@ public class TestDatabaseExportDao extends UtilTestSuiteWithEmbeddedDB {
"a_column char default 'a'," +
"account_record_id int(11) unsigned not null," +
"tenant_record_id int(11) unsigned default 0," +
- "primary key(record_id)) engine=innodb;");
+ "primary key(record_id));");
handle.execute("drop table if exists " + tableNameB);
handle.execute("create table " + tableNameB + "(record_id int(11) unsigned not null auto_increment," +
"b_column char default 'b'," +
"account_record_id int(11) unsigned not null," +
"tenant_record_id int(11) unsigned default 0," +
- "primary key(record_id)) engine=innodb;");
+ "primary key(record_id));");
handle.execute("insert into " + tableNameA + " (account_record_id, tenant_record_id) values (?, ?)",
internalCallContext.getAccountRecordId(), internalCallContext.getTenantRecordId());
handle.execute("insert into " + tableNameB + " (account_record_id, tenant_record_id) values (?, ?)",
diff --git a/util/src/test/java/com/ning/billing/util/globallocker/TestMysqlGlobalLocker.java b/util/src/test/java/com/ning/billing/util/globallocker/TestMysqlGlobalLocker.java
index 99b218a..a006e58 100644
--- a/util/src/test/java/com/ning/billing/util/globallocker/TestMysqlGlobalLocker.java
+++ b/util/src/test/java/com/ning/billing/util/globallocker/TestMysqlGlobalLocker.java
@@ -28,8 +28,6 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.util.UtilTestSuiteWithEmbeddedDB;
import com.ning.billing.util.globallocker.GlobalLocker.LockerType;
import com.ning.billing.util.io.IOUtils;
@@ -39,11 +37,9 @@ import com.google.inject.Inject;
@Guice(modules = TestMysqlGlobalLocker.TestMysqlGlobalLockerModule.class)
public class TestMysqlGlobalLocker extends UtilTestSuiteWithEmbeddedDB {
- @Inject
- private IDBI dbi;
@Inject
- private MysqlTestingHelper helper;
+ private IDBI dbi;
@BeforeMethod(groups = "slow")
public void setup() throws IOException {
@@ -83,11 +79,10 @@ public class TestMysqlGlobalLocker extends UtilTestSuiteWithEmbeddedDB {
}
public static final class TestMysqlGlobalLockerModule extends AbstractModule {
+
@Override
protected void configure() {
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- bind(MysqlTestingHelper.class).toInstance(helper);
- final IDBI dbi = helper.getDBI();
+ final IDBI dbi = getDBI();
bind(IDBI.class).toInstance(dbi);
}
}
diff --git a/util/src/test/java/com/ning/billing/util/notificationq/dao/TestNotificationSqlDao.java b/util/src/test/java/com/ning/billing/util/notificationq/dao/TestNotificationSqlDao.java
index 54be599..2634e62 100644
--- a/util/src/test/java/com/ning/billing/util/notificationq/dao/TestNotificationSqlDao.java
+++ b/util/src/test/java/com/ning/billing/util/notificationq/dao/TestNotificationSqlDao.java
@@ -30,8 +30,6 @@ import org.testng.annotations.BeforeTest;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.util.UtilTestSuiteWithEmbeddedDB;
import com.ning.billing.util.notificationq.DefaultNotification;
import com.ning.billing.util.notificationq.Notification;
@@ -46,15 +44,13 @@ import static org.testng.Assert.assertNotNull;
@Guice(modules = TestNotificationSqlDao.TestNotificationSqlDaoModule.class)
public class TestNotificationSqlDao extends UtilTestSuiteWithEmbeddedDB {
+
private static final UUID accountId = UUID.randomUUID();
private static final String hostname = "Yop";
@Inject
private IDBI dbi;
- @Inject
- MysqlTestingHelper helper;
-
private NotificationSqlDao dao;
@BeforeSuite(groups = "slow")
@@ -150,23 +146,23 @@ public class TestNotificationSqlDao extends UtilTestSuiteWithEmbeddedDB {
@Override
public Notification withHandle(final Handle handle) throws Exception {
return handle.createQuery(" select" +
- " record_id " +
- ", id" +
- ", class_name" +
- ", account_id" +
- ", notification_key" +
- ", created_date" +
- ", creating_owner" +
- ", effective_date" +
- ", queue_name" +
- ", processing_owner" +
- ", processing_available_date" +
- ", processing_state" +
- ", account_record_id" +
- ", tenant_record_id" +
- " from notifications " +
- " where " +
- " id = '" + notificationId + "';")
+ " record_id " +
+ ", id" +
+ ", class_name" +
+ ", account_id" +
+ ", notification_key" +
+ ", created_date" +
+ ", creating_owner" +
+ ", effective_date" +
+ ", queue_name" +
+ ", processing_owner" +
+ ", processing_available_date" +
+ ", processing_state" +
+ ", account_record_id" +
+ ", tenant_record_id" +
+ " from notifications " +
+ " where " +
+ " id = '" + notificationId + "';")
.map(new NotificationSqlMapper())
.first();
}
@@ -194,11 +190,10 @@ public class TestNotificationSqlDao extends UtilTestSuiteWithEmbeddedDB {
}
public static class TestNotificationSqlDaoModule extends AbstractModule {
+
@Override
protected void configure() {
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- bind(MysqlTestingHelper.class).toInstance(helper);
- final IDBI dbi = helper.getDBI();
+ final IDBI dbi = getDBI();
bind(IDBI.class).toInstance(dbi);
}
}
diff --git a/util/src/test/java/com/ning/billing/util/notificationq/TestNotificationQueue.java b/util/src/test/java/com/ning/billing/util/notificationq/TestNotificationQueue.java
index fd7da4e..31834b2 100644
--- a/util/src/test/java/com/ning/billing/util/notificationq/TestNotificationQueue.java
+++ b/util/src/test/java/com/ning/billing/util/notificationq/TestNotificationQueue.java
@@ -26,8 +26,6 @@ import java.util.concurrent.TimeUnit;
import org.joda.time.DateTime;
import org.skife.jdbi.v2.Handle;
import org.skife.jdbi.v2.IDBI;
-import org.skife.jdbi.v2.Transaction;
-import org.skife.jdbi.v2.TransactionStatus;
import org.skife.jdbi.v2.tweak.HandleCallback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,13 +35,11 @@ import org.testng.annotations.BeforeTest;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
-import com.ning.billing.util.config.NotificationConfig;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.util.UtilTestSuiteWithEmbeddedDB;
import com.ning.billing.util.callcontext.InternalCallContextFactory;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.ClockMock;
+import com.ning.billing.util.config.NotificationConfig;
import com.ning.billing.util.entity.dao.EntitySqlDao;
import com.ning.billing.util.entity.dao.EntitySqlDaoTransactionWrapper;
import com.ning.billing.util.entity.dao.EntitySqlDaoTransactionalJdbiWrapper;
@@ -66,8 +62,8 @@ import static org.testng.Assert.assertEquals;
@Guice(modules = TestNotificationQueue.TestNotificationQueueModule.class)
public class TestNotificationQueue extends UtilTestSuiteWithEmbeddedDB {
- private final Logger log = LoggerFactory.getLogger(TestNotificationQueue.class);
+ private final Logger log = LoggerFactory.getLogger(TestNotificationQueue.class);
private static final UUID accountId = UUID.randomUUID();
@@ -77,9 +73,6 @@ public class TestNotificationQueue extends UtilTestSuiteWithEmbeddedDB {
private IDBI dbi;
@Inject
- MysqlTestingHelper helper;
-
- @Inject
private Clock clock;
private DummySqlTest dao;
@@ -87,6 +80,7 @@ public class TestNotificationQueue extends UtilTestSuiteWithEmbeddedDB {
private int eventsReceived;
private static final class TestNotificationKey implements NotificationKey, Comparable<TestNotificationKey> {
+
private final String value;
@JsonCreator
@@ -237,7 +231,6 @@ public class TestNotificationQueue extends UtilTestSuiteWithEmbeddedDB {
}
});
-
// Move time in the future after the notification effectiveDate
if (i == 0) {
((ClockMock) clock).setDeltaFromReality(nextReadyTimeIncrementMs);
@@ -444,15 +437,14 @@ public class TestNotificationQueue extends UtilTestSuiteWithEmbeddedDB {
}
public static class TestNotificationQueueModule extends AbstractModule {
+
@Override
protected void configure() {
bind(Clock.class).to(ClockMock.class);
- final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
- bind(MysqlTestingHelper.class).toInstance(helper);
- final IDBI dbi = helper.getDBI();
+ final IDBI dbi = getDBI();
bind(IDBI.class).toInstance(dbi);
- final IDBI otherDbi = helper.getDBI();
+ final IDBI otherDbi = getDBI();
bind(IDBI.class).annotatedWith(Names.named("global-lock")).toInstance(otherDbi);
}
}
diff --git a/util/src/test/java/com/ning/billing/util/tag/dao/TestDefaultTagDao.java b/util/src/test/java/com/ning/billing/util/tag/dao/TestDefaultTagDao.java
index c297633..8eba74d 100644
--- a/util/src/test/java/com/ning/billing/util/tag/dao/TestDefaultTagDao.java
+++ b/util/src/test/java/com/ning/billing/util/tag/dao/TestDefaultTagDao.java
@@ -29,7 +29,6 @@ import org.testng.annotations.Guice;
import org.testng.annotations.Test;
import com.ning.billing.ObjectType;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.mock.glue.MockDbHelperModule;
import com.ning.billing.util.UtilTestSuiteWithEmbeddedDB;
import com.ning.billing.util.api.TagDefinitionApiException;
@@ -53,9 +52,6 @@ import static org.testng.Assert.assertEquals;
public class TestDefaultTagDao extends UtilTestSuiteWithEmbeddedDB {
@Inject
- private MysqlTestingHelper helper;
-
- @Inject
private TagDefinitionDao tagDefinitionDao;
@Inject
diff --git a/util/src/test/java/com/ning/billing/util/tag/dao/TestDefaultTagDefinitionDao.java b/util/src/test/java/com/ning/billing/util/tag/dao/TestDefaultTagDefinitionDao.java
index b53ff95..46fe94c 100644
--- a/util/src/test/java/com/ning/billing/util/tag/dao/TestDefaultTagDefinitionDao.java
+++ b/util/src/test/java/com/ning/billing/util/tag/dao/TestDefaultTagDefinitionDao.java
@@ -28,7 +28,6 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.mock.glue.MockDbHelperModule;
import com.ning.billing.util.UtilTestSuiteWithEmbeddedDB;
import com.ning.billing.util.bus.InMemoryBusModule;
@@ -46,9 +45,6 @@ import com.google.inject.Inject;
public class TestDefaultTagDefinitionDao extends UtilTestSuiteWithEmbeddedDB {
@Inject
- private MysqlTestingHelper helper;
-
- @Inject
private TagDefinitionDao tagDefinitionDao;
@Inject
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 13691d1..cd218de 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
@@ -30,7 +30,6 @@ import org.testng.annotations.Guice;
import org.testng.annotations.Test;
import com.ning.billing.ObjectType;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.mock.glue.MockDbHelperModule;
import com.ning.billing.util.UtilTestSuiteWithEmbeddedDB;
import com.ning.billing.util.api.TagApiException;
@@ -58,9 +57,6 @@ import static org.testng.Assert.fail;
public class TestTagStore extends UtilTestSuiteWithEmbeddedDB {
@Inject
- private MysqlTestingHelper helper;
-
- @Inject
private IDBI dbi;
@Inject
diff --git a/util/src/test/java/com/ning/billing/util/validation/TestValidationManager.java b/util/src/test/java/com/ning/billing/util/validation/TestValidationManager.java
index a7690cd..c79b781 100644
--- a/util/src/test/java/com/ning/billing/util/validation/TestValidationManager.java
+++ b/util/src/test/java/com/ning/billing/util/validation/TestValidationManager.java
@@ -24,8 +24,6 @@ import org.skife.jdbi.v2.IDBI;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
-import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.util.UtilTestSuiteWithEmbeddedDB;
import com.ning.billing.util.globallocker.TestMysqlGlobalLocker;
import com.ning.billing.util.io.IOUtils;
@@ -38,7 +36,6 @@ import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
public class TestValidationManager extends UtilTestSuiteWithEmbeddedDB {
- private final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
private static final String TABLE_NAME = "validation_test";
private ValidationManager vm;
diff --git a/util/src/test/resources/com/ning/billing/util/ddl_test.sql b/util/src/test/resources/com/ning/billing/util/ddl_test.sql
index e219d76..c4c8894 100644
--- a/util/src/test/resources/com/ning/billing/util/ddl_test.sql
+++ b/util/src/test/resources/com/ning/billing/util/ddl_test.sql
@@ -1,16 +1,18 @@
+/*! SET storage_engine=INNODB */;
+
DROP TABLE IF EXISTS dummy;
CREATE TABLE dummy (
dummy_id char(36) NOT NULL,
value varchar(256) NOT NULL,
PRIMARY KEY(dummy_id)
-) ENGINE = innodb;
+);
DROP TABLE IF EXISTS dummy2;
CREATE TABLE dummy2 (
id int(11) unsigned NOT NULL AUTO_INCREMENT,
dummy_id char(36) NOT NULL,
PRIMARY KEY(id)
-) ENGINE = innodb;
+);
DROP TABLE IF EXISTS validation_test;
CREATE TABLE validation_test (
@@ -18,7 +20,7 @@ CREATE TABLE validation_test (
column2 char(2) NOT NULL,
column3 numeric(10,4),
column4 datetime
-) ENGINE = innodb;
+);
DROP TABLE IF EXISTS kombucha;
CREATE TABLE kombucha (
@@ -30,4 +32,4 @@ CREATE TABLE kombucha (
account_record_id int(11) unsigned default null,
tenant_record_id int(11) unsigned default null,
PRIMARY KEY(record_id)
-) ENGINE = innodb;
+);