killbill-memoizeit
Details
diff --git a/account/src/main/java/com/ning/billing/account/api/Account.java b/account/src/main/java/com/ning/billing/account/api/Account.java
index 66f8c5d..e1bc6dd 100644
--- a/account/src/main/java/com/ning/billing/account/api/Account.java
+++ b/account/src/main/java/com/ning/billing/account/api/Account.java
@@ -16,15 +16,13 @@
package com.ning.billing.account.api;
-import com.ning.billing.account.dao.IAccountDao;
-import com.ning.billing.account.glue.InjectorMagic;
-import com.ning.billing.catalog.api.Currency;
-
import java.util.UUID;
+import com.ning.billing.catalog.api.Currency;
+
public class Account implements IAccount {
- private final FieldStore fields;
- private static IAccountDao dao;
+ public static final String OBJECT_TYPE = "Account";
+ private final IFieldStore fields;
private final UUID id;
private String key;
@@ -40,8 +38,7 @@ public class Account implements IAccount {
public Account(UUID id) {
this.id = id;
- fields = FieldStore.create(getId(), getObjectName());
- dao = InjectorMagic.getAccountDao();
+ fields = new FieldStore();
}
@Override
@@ -117,20 +114,9 @@ public class Account implements IAccount {
return new Account(id);
}
- public static Account loadAccount(UUID id) {
- Account account = (Account) dao.getAccountById(id);
- if (account != null) {
- account.loadCustomFields();
- }
- return account;
- }
-
- public static Account loadAccount(String key) {
- Account account = (Account) dao.getAccountByKey(key);
- if (account != null) {
- account.loadCustomFields();
- }
- return account;
+ @Override
+ public IFieldStore getFields() {
+ return fields;
}
@Override
@@ -142,42 +128,4 @@ public class Account implements IAccount {
public void setFieldValue(String fieldName, String fieldValue) {
fields.setValue(fieldName, fieldValue);
}
-
- @Override
- public void save() {
- saveObject();
- saveCustomFields();
- }
-
- @Override
- public void load() {
- loadObject();
- loadCustomFields();
- }
-
- private void saveCustomFields() {
- fields.save();
- }
-
- protected void loadCustomFields() {
- fields.load();
- }
-
- public String getObjectName() {
- return "Account";
- }
-
- private void saveObject() {
- dao.save(this);
- }
-
- private void loadObject() {
- IAccount that = dao.getAccountById(id);
- this.key = that.getKey();
- this.email = that.getEmail();
- this.name = that.getName();
- this.phone = that.getPhone();
- this.currency = that.getCurrency();
- this.billCycleDay = that.getBillCycleDay();
- }
}
diff --git a/account/src/main/java/com/ning/billing/account/api/FieldStore.java b/account/src/main/java/com/ning/billing/account/api/FieldStore.java
index 2d1da7f..fe07b9f 100644
--- a/account/src/main/java/com/ning/billing/account/api/FieldStore.java
+++ b/account/src/main/java/com/ning/billing/account/api/FieldStore.java
@@ -16,25 +16,15 @@
package com.ning.billing.account.api;
-import com.ning.billing.account.dao.IFieldStoreDao;
-import com.ning.billing.account.glue.InjectorMagic;
-
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
public class FieldStore implements IFieldStore {
- private Map<String, ICustomField> fields = new HashMap<String, ICustomField>();
- private final UUID objectId;
- private final String objectType;
-
- public FieldStore(UUID objectId, String objectType) {
- this.objectId = objectId;
- this.objectType = objectType;
- }
-
- public static FieldStore create(UUID objectId, String objectType) {
- return new FieldStore(objectId, objectType);
- }
+ private final Map<String, ICustomField> fields = new HashMap<String, ICustomField>();
+ @Override
public void setValue(String fieldName, String fieldValue) {
if (fields.containsKey(fieldName)) {
fields.get(fieldName).setValue(fieldValue);
@@ -43,6 +33,7 @@ public class FieldStore implements IFieldStore {
}
}
+ @Override
public String getValue(String fieldName) {
if (fields.containsKey(fieldName)) {
return fields.get(fieldName).getValue();
@@ -75,26 +66,8 @@ public class FieldStore implements IFieldStore {
return updatedFields;
}
- public void save() {
- IFieldStoreDao dao = InjectorMagic.getFieldStoreDao();
-
- List<ICustomField> newFields = getNewFields();
- dao.createFields(objectId.toString(), objectType, newFields);
- for (ICustomField field : newFields) {
- field.setAsSaved();
- }
-
- dao.saveFields(objectId.toString(), objectType, getUpdatedFields());
- }
-
- public void load() {
- IFieldStoreDao dao = InjectorMagic.getFieldStoreDao();
- List<ICustomField> fields = dao.getFields(objectId.toString(), objectType);
+ @Override
+ public void clear() {
this.fields.clear();
- if (fields != null) {
- for (ICustomField field : fields) {
- this.fields.put(field.getName(), field);
- }
- }
}
}
\ No newline at end of file
diff --git a/account/src/main/java/com/ning/billing/account/dao/AccountDao.java b/account/src/main/java/com/ning/billing/account/dao/AccountDao.java
index 15bf60f..32e1d0d 100644
--- a/account/src/main/java/com/ning/billing/account/dao/AccountDao.java
+++ b/account/src/main/java/com/ning/billing/account/dao/AccountDao.java
@@ -16,14 +16,16 @@
package com.ning.billing.account.dao;
+import java.util.List;
+import java.util.UUID;
+
+import org.skife.jdbi.v2.IDBI;
+
import com.google.inject.Inject;
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.IAccount;
import com.ning.billing.account.api.IAccountData;
-import org.skife.jdbi.v2.IDBI;
-
-import java.util.List;
-import java.util.UUID;
+import com.ning.billing.account.api.ICustomField;
public class AccountDao implements IAccountDao {
@@ -43,12 +45,30 @@ public class AccountDao implements IAccountDao {
@Override
public IAccount getAccountByKey(String key) {
- return dao.getAccountByKey(key);
+ IAccount account = dao.getAccountByKey(key);
+ if (account != null) {
+ loadFields(account);
+ }
+ return account;
}
@Override
public IAccount getAccountById(UUID uid) {
- return dao.getAccountFromId(uid.toString());
+ IAccount account = dao.getAccountFromId(uid.toString());
+ if (account != null) {
+ loadFields(account);
+ }
+ return account;
+ }
+
+ private void loadFields(IAccount account) {
+ List<ICustomField> fields = dao.getFields(account.getId().toString(), Account.OBJECT_TYPE);
+ account.getFields().clear();
+ if (fields != null) {
+ for (ICustomField field : fields) {
+ account.getFields().setValue(field.getName(), field.getValue());
+ }
+ }
}
@Override
@@ -63,6 +83,24 @@ public class AccountDao implements IAccountDao {
@Override
public void save(IAccount account) {
- dao.insertAccount(account);
+ final String objectId = account.getId().toString();
+ final String objectType = Account.OBJECT_TYPE;
+
+ dao.begin();
+ try {
+ dao.insertAccount(account);
+ List<ICustomField> newFields = account.getFields().getNewFields();
+ dao.createFields(objectId, objectType, newFields);
+ for (ICustomField field : newFields) {
+ field.setAsSaved();
+ }
+
+ dao.saveFields(objectId, objectType, account.getFields().getUpdatedFields());
+ dao.commit();
+ }
+ catch (RuntimeException ex) {
+ dao.rollback();
+ throw ex;
+ }
}
}
diff --git a/account/src/main/java/com/ning/billing/account/dao/IAccountDao.java b/account/src/main/java/com/ning/billing/account/dao/IAccountDao.java
index e23fbfa..1a4314f 100644
--- a/account/src/main/java/com/ning/billing/account/dao/IAccountDao.java
+++ b/account/src/main/java/com/ning/billing/account/dao/IAccountDao.java
@@ -16,12 +16,12 @@
package com.ning.billing.account.dao;
-import com.ning.billing.account.api.IAccount;
-import com.ning.billing.account.api.IAccountData;
-
import java.util.List;
import java.util.UUID;
+import com.ning.billing.account.api.IAccount;
+import com.ning.billing.account.api.IAccountData;
+
public interface IAccountDao {
public IAccount createAccount(IAccountData account);
diff --git a/account/src/main/java/com/ning/billing/account/dao/IAccountDaoSql.java b/account/src/main/java/com/ning/billing/account/dao/IAccountDaoSql.java
index 7cb9eda..ea133bc 100644
--- a/account/src/main/java/com/ning/billing/account/dao/IAccountDaoSql.java
+++ b/account/src/main/java/com/ning/billing/account/dao/IAccountDaoSql.java
@@ -16,8 +16,11 @@
package com.ning.billing.account.dao;
-import com.ning.billing.account.api.Account;
-import com.ning.billing.account.api.IAccount;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.List;
+import java.util.UUID;
+
import org.skife.jdbi.v2.SQLStatement;
import org.skife.jdbi.v2.StatementContext;
import org.skife.jdbi.v2.sqlobject.Bind;
@@ -30,13 +33,11 @@ import org.skife.jdbi.v2.sqlobject.mixins.Transactional;
import org.skife.jdbi.v2.sqlobject.stringtemplate.ExternalizedSqlViaStringTemplate3;
import org.skife.jdbi.v2.tweak.ResultSetMapper;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.List;
-import java.util.UUID;
+import com.ning.billing.account.api.Account;
+import com.ning.billing.account.api.IAccount;
@ExternalizedSqlViaStringTemplate3()
-public interface IAccountDaoSql extends Transactional<IAccountDaoSql>, CloseMe {
+public interface IAccountDaoSql extends IFieldStoreDao, Transactional<IAccountDaoSql>, CloseMe {
@SqlUpdate
public void insertAccount(@Bind(binder = IAccountSqlBinder.class) IAccount account);
@@ -53,6 +54,7 @@ public interface IAccountDaoSql extends Transactional<IAccountDaoSql>, CloseMe {
@Mapper(IAccountSqlMapper.class)
public List<IAccount> getAccounts();
+ @Override
@SqlUpdate
public void test();
diff --git a/account/src/main/java/com/ning/billing/account/glue/AccountModule.java b/account/src/main/java/com/ning/billing/account/glue/AccountModule.java
index b4583ec..1257928 100644
--- a/account/src/main/java/com/ning/billing/account/glue/AccountModule.java
+++ b/account/src/main/java/com/ning/billing/account/glue/AccountModule.java
@@ -16,6 +16,8 @@
package com.ning.billing.account.glue;
+import org.skife.config.ConfigurationObjectFactory;
+
import com.google.inject.AbstractModule;
import com.ning.billing.account.api.AccountService;
import com.ning.billing.account.api.AccountUserApi;
@@ -26,8 +28,6 @@ import com.ning.billing.account.dao.FieldStoreDao;
import com.ning.billing.account.dao.IAccountDao;
import com.ning.billing.account.dao.IFieldStoreDao;
-import org.skife.config.ConfigurationObjectFactory;
-
public class AccountModule extends AbstractModule {
protected void installConfig() {
@@ -52,11 +52,6 @@ public class AccountModule extends AbstractModule {
bind(IFieldStoreDao.class).to(FieldStoreDao.class).asEagerSingleton();
}
- protected void installInjectorMagic() {
- bind(InjectorMagic.class).asEagerSingleton();
- }
-
-
@Override
protected void configure() {
installConfig();
@@ -64,7 +59,6 @@ public class AccountModule extends AbstractModule {
installAccountUserApi();
installAccountService();
installFieldStore();
- installInjectorMagic();
}
}
diff --git a/account/src/main/resources/com/ning/billing/account/dao/IAccountDaoSql.sql.stg b/account/src/main/resources/com/ning/billing/account/dao/IAccountDaoSql.sql.stg
index c7fa4fa..12c0fc7 100644
--- a/account/src/main/resources/com/ning/billing/account/dao/IAccountDaoSql.sql.stg
+++ b/account/src/main/resources/com/ning/billing/account/dao/IAccountDaoSql.sql.stg
@@ -41,4 +41,20 @@ getAccounts() ::= <<
from accounts
;
>>
-;
\ No newline at end of file
+
+createFields() ::= <<
+ INSERT INTO custom_fields(id, object_id, object_type, field_name, field_value)
+ VALUES (:idAsString, :objectId, :objectType, :name, :value);
+>>
+
+saveFields() ::= <<
+ UPDATE custom_fields
+ SET object_type = :objectType, object_id = :objectId, field_name = :name, field_value = :value
+ WHERE id = :id;
+>>
+
+getFields() ::= <<
+ SELECT id, field_name, field_value
+ FROM custom_fields
+ WHERE object_id = :objectId AND object_type = :objectType;
+>>
diff --git a/account/src/test/java/com/ning/billing/account/dao/TestSimpleAccountDao.java b/account/src/test/java/com/ning/billing/account/dao/TestSimpleAccountDao.java
index 3b4a687..b18b600 100644
--- a/account/src/test/java/com/ning/billing/account/dao/TestSimpleAccountDao.java
+++ b/account/src/test/java/com/ning/billing/account/dao/TestSimpleAccountDao.java
@@ -16,27 +16,29 @@
package com.ning.billing.account.dao;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.commons.io.IOUtils;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Stage;
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.IAccount;
import com.ning.billing.account.glue.AccountModuleMock;
-import com.ning.billing.account.glue.InjectorMagic;
-import org.apache.commons.io.IOUtils;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.UUID;
-
-import static org.testng.Assert.*;
@Test(groups = {"Account", "Account-DAO"})
public class TestSimpleAccountDao {
private IAccountDao dao;
- private InjectorMagic injectorMagic;
@BeforeClass(alwaysRun = true)
private void setup() throws IOException {
@@ -48,7 +50,6 @@ public class TestSimpleAccountDao {
try {
final Injector injector = Guice.createInjector(Stage.DEVELOPMENT, module);
- injectorMagic = injector.getInstance(InjectorMagic.class);
dao = injector.getInstance(IAccountDao.class);
dao.test();
}
@@ -83,9 +84,9 @@ public class TestSimpleAccountDao {
IAccount account = Account.create().withKey(key);
UUID id = account.getId();
- account.save();
+ dao.save(account);
- account = Account.loadAccount(id);
+ account = dao.getAccountById(id);
assertNotNull(account);
assertEquals(account.getId(), id);
assertEquals(account.getKey(), key);
@@ -100,9 +101,9 @@ public class TestSimpleAccountDao {
String fieldValue = "testField1_value";
account.setFieldValue(fieldName, fieldValue);
- account.save();
+ dao.save(account);
- account = Account.loadAccount(key);
+ account = dao.getAccountByKey(key);
assertNotNull(account);
assertEquals(account.getKey(), key);
assertEquals(account.getFieldValue(fieldName), fieldValue);
diff --git a/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java b/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
index f4f7c9c..1bf2682 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
@@ -16,14 +16,27 @@
package com.ning.billing.analytics.api;
+import java.io.IOException;
+import java.sql.SQLException;
+import java.util.UUID;
+
+import org.apache.commons.io.IOUtils;
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
+
import com.google.inject.Inject;
+import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.IAccount;
import com.ning.billing.account.api.IAccountUserApi;
import com.ning.billing.analytics.AnalyticsTestModule;
import com.ning.billing.analytics.BusinessSubscription;
import com.ning.billing.analytics.BusinessSubscriptionEvent;
import com.ning.billing.analytics.BusinessSubscriptionTransition;
-import com.ning.billing.analytics.MockAccount;
import com.ning.billing.analytics.MockDuration;
import com.ning.billing.analytics.MockPhase;
import com.ning.billing.analytics.MockPlan;
@@ -45,18 +58,6 @@ import com.ning.billing.entitlement.api.user.SubscriptionTransition;
import com.ning.billing.entitlement.events.IEvent;
import com.ning.billing.entitlement.events.user.ApiEventType;
import com.ning.billing.util.eventbus.IEventBus;
-import org.apache.commons.io.IOUtils;
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Guice;
-import org.testng.annotations.Test;
-
-import java.io.IOException;
-import java.sql.SQLException;
-import java.util.UUID;
@Guice(modules = AnalyticsTestModule.class)
public class TestAnalyticsService
@@ -99,7 +100,7 @@ public class TestAnalyticsService
helper.initDb(entitlementDdl);
// We need a bundle to retrieve the event key
- final MockAccount account = new MockAccount(UUID.randomUUID(), ACCOUNT_KEY, Currency.USD);
+ final Account account = new Account(UUID.randomUUID()).withKey(ACCOUNT_KEY).withCurrency(Currency.USD);
final IAccount storedAccount = accountApi.createAccount(account);
final ISubscriptionBundle bundle = entitlementApi.createBundleForAccount(storedAccount, KEY);
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockIAccountUserApi.java b/analytics/src/test/java/com/ning/billing/analytics/MockIAccountUserApi.java
index ccd67af..36f54f8 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockIAccountUserApi.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockIAccountUserApi.java
@@ -16,21 +16,22 @@
package com.ning.billing.analytics;
+import java.util.List;
+import java.util.UUID;
+
+import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.IAccount;
import com.ning.billing.account.api.IAccountData;
import com.ning.billing.account.api.IAccountUserApi;
import com.ning.billing.catalog.api.Currency;
-import java.util.List;
-import java.util.UUID;
-
public class MockIAccountUserApi implements IAccountUserApi
{
- private final MockAccount account;
+ private final Account account;
public MockIAccountUserApi(final String accountKey, final Currency currency)
{
- account = new MockAccount(UUID.randomUUID(), accountKey, currency);
+ account = new Account(UUID.randomUUID()).withKey(accountKey).withCurrency(currency);
}
@Override
diff --git a/api/src/main/java/com/ning/billing/account/api/IAccount.java b/api/src/main/java/com/ning/billing/account/api/IAccount.java
index 41908bb..2129c5d 100644
--- a/api/src/main/java/com/ning/billing/account/api/IAccount.java
+++ b/api/src/main/java/com/ning/billing/account/api/IAccount.java
@@ -21,9 +21,7 @@ import java.util.UUID;
public interface IAccount extends IAccountData {
public UUID getId();
- public void load();
-
- public void save();
+ public IFieldStore getFields();
public String getFieldValue(String fieldName);
diff --git a/api/src/main/java/com/ning/billing/account/api/IFieldStore.java b/api/src/main/java/com/ning/billing/account/api/IFieldStore.java
new file mode 100644
index 0000000..1ecb9b2
--- /dev/null
+++ b/api/src/main/java/com/ning/billing/account/api/IFieldStore.java
@@ -0,0 +1,14 @@
+package com.ning.billing.account.api;
+
+import java.util.List;
+
+public interface IFieldStore {
+ void clear();
+ void setValue(String fieldName, String fieldValue);
+
+ String getValue(String fieldName);
+
+ List<ICustomField> getNewFields();
+
+ List<ICustomField> getUpdatedFields();
+}
entitlement/pom.xml 5(+5 -0)
diff --git a/entitlement/pom.xml b/entitlement/pom.xml
index 6bd2ee7..b73fb04 100644
--- a/entitlement/pom.xml
+++ b/entitlement/pom.xml
@@ -52,6 +52,11 @@
</dependency>
<dependency>
<groupId>com.ning.billing</groupId>
+ <artifactId>killbill-account</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing</groupId>
<artifactId>killbill-util</artifactId>
<type>test-jar</type>
<scope>test</scope>
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiBase.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiBase.java
index 5306ba8..ae627dc 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiBase.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiBase.java
@@ -16,10 +16,35 @@
package com.ning.billing.entitlement.api.user;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.util.List;
+
+import org.joda.time.DateTime;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+
import com.google.inject.Injector;
+import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.IAccount;
import com.ning.billing.catalog.CatalogService;
-import com.ning.billing.catalog.api.*;
+import com.ning.billing.catalog.api.BillingPeriod;
+import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.catalog.api.ICatalog;
+import com.ning.billing.catalog.api.ICatalogService;
+import com.ning.billing.catalog.api.IDuration;
+import com.ning.billing.catalog.api.TimeUnit;
import com.ning.billing.config.IEntitlementConfig;
import com.ning.billing.entitlement.api.ApiTestListener;
import com.ning.billing.entitlement.api.ApiTestListener.NextEvent;
@@ -38,23 +63,6 @@ import com.ning.billing.util.clock.ClockMock;
import com.ning.billing.util.clock.IClock;
import com.ning.billing.util.eventbus.EventBusService;
import com.ning.billing.util.eventbus.IEventBusService;
-import org.joda.time.DateTime;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import static org.testng.Assert.*;
public abstract class TestUserApiBase {
@@ -278,52 +286,12 @@ public abstract class TestUserApiBase {
}
protected IAccount getAccount() {
- IAccount account = new IAccount() {
- @Override
- public String getName() {
- return "accountName";
- }
- @Override
- public String getEmail() {
- return "accountName@yahoo.com";
- }
- @Override
- public String getPhone() {
- return "4152876341";
- }
- @Override
- public String getKey() {
- return "k123456";
- }
- @Override
- public int getBillCycleDay() {
- return 1;
- }
- @Override
- public Currency getCurrency() {
- return Currency.USD;
- }
-
- @Override
- public UUID getId() {
- return UUID.randomUUID();
- }
-
- @Override
- public void load() {}
-
- @Override
- public void save() {}
-
- @Override
- public String getFieldValue(String fieldName) {
- return null;
- }
-
- @Override
- public void setFieldValue(String fieldName, String fieldValue) {}
- };
- return account;
+ return new Account().withName("accountName")
+ .withEmail("accountName@yahoo.com")
+ .withPhone("4152876341")
+ .withKey("k123456")
+ .withBillCycleDay(1)
+ .withCurrency(Currency.USD);
}
pom.xml 6(+6 -0)
diff --git a/pom.xml b/pom.xml
index 3e0c587..be47827 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,6 +61,12 @@
</dependency>
<dependency>
<groupId>com.ning.billing</groupId>
+ <artifactId>killbill-account</artifactId>
+ <version>${project.version}</version>
+ <classifier>tests</classifier>
+ </dependency>
+ <dependency>
+ <groupId>com.ning.billing</groupId>
<artifactId>killbill-entitlement</artifactId>
<version>${project.version}</version>
</dependency>