killbill-aplcache

test: fix TestDefaultAccountUserApi#testAddEmail failure Signed-off-by:

11/9/2012 4:26:01 PM

Details

diff --git a/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApi.java b/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApi.java
index 51111aa..9dd5f33 100644
--- a/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApi.java
+++ b/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApi.java
@@ -27,6 +27,7 @@ import org.testng.annotations.Test;
 import com.ning.billing.account.AccountTestSuite;
 import com.ning.billing.account.api.Account;
 import com.ning.billing.account.api.AccountData;
+import com.ning.billing.account.api.AccountEmail;
 import com.ning.billing.account.api.BillCycleDay;
 import com.ning.billing.account.api.DefaultAccount;
 import com.ning.billing.account.api.DefaultAccountEmail;
@@ -36,11 +37,11 @@ import com.ning.billing.account.dao.AccountEmailDao;
 import com.ning.billing.account.dao.MockAccountDao;
 import com.ning.billing.account.dao.MockAccountEmailDao;
 import com.ning.billing.catalog.api.Currency;
-import com.ning.billing.util.svcsapi.bus.InternalBus;
 import com.ning.billing.util.callcontext.CallContext;
 import com.ning.billing.util.callcontext.CallContextFactory;
 import com.ning.billing.util.callcontext.InternalCallContextFactory;
 import com.ning.billing.util.callcontext.InternalTenantContext;
+import com.ning.billing.util.svcsapi.bus.InternalBus;
 
 public class TestDefaultAccountUserApi extends AccountTestSuite {
 
@@ -118,17 +119,19 @@ public class TestDefaultAccountUserApi extends AccountTestSuite {
         Assert.assertEquals(accountEmailDao.getByAccountId(accountId, tenantContext).size(), 0);
 
         // Add the first email
-        final String email1 = UUID.randomUUID().toString();
-        accountUserApi.addEmail(accountId, new DefaultAccountEmail(accountId, email1), callContext);
+        final String emailAddress1 = UUID.randomUUID().toString();
+        final AccountEmail email1 = new DefaultAccountEmail(accountId, emailAddress1);
+        accountUserApi.addEmail(accountId, email1, callContext);
         Assert.assertEquals(accountEmailDao.getByAccountId(accountId, tenantContext).size(), 1);
 
         // Add a second one
-        final String email2 = UUID.randomUUID().toString();
-        accountUserApi.addEmail(accountId, new DefaultAccountEmail(accountId, email2), callContext);
+        final String emailAddress2 = UUID.randomUUID().toString();
+        final AccountEmail email2 = new DefaultAccountEmail(accountId, emailAddress2);
+        accountUserApi.addEmail(accountId, email2, callContext);
         Assert.assertEquals(accountEmailDao.getByAccountId(accountId, tenantContext).size(), 2);
 
         // Remove the first second one
-        accountUserApi.removeEmail(accountId, new DefaultAccountEmail(accountId, email1), callContext);
+        accountUserApi.removeEmail(accountId, email1, callContext);
         Assert.assertEquals(accountEmailDao.getByAccountId(accountId, tenantContext).size(), 1);
     }
 }
diff --git a/account/src/test/java/com/ning/billing/account/dao/MockAccountEmailDao.java b/account/src/test/java/com/ning/billing/account/dao/MockAccountEmailDao.java
index aa4c401..f408592 100644
--- a/account/src/test/java/com/ning/billing/account/dao/MockAccountEmailDao.java
+++ b/account/src/test/java/com/ning/billing/account/dao/MockAccountEmailDao.java
@@ -16,69 +16,28 @@
 
 package com.ning.billing.account.dao;
 
-import java.util.HashSet;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
 
 import com.ning.billing.account.api.AccountApiException;
 import com.ning.billing.account.api.AccountEmail;
-import com.ning.billing.util.callcontext.InternalCallContext;
 import com.ning.billing.util.callcontext.InternalTenantContext;
-import com.ning.billing.util.entity.EntityPersistenceException;
+import com.ning.billing.util.entity.dao.MockEntityDaoBase;
 
-import com.google.common.collect.ImmutableList;
-
-public class MockAccountEmailDao implements AccountEmailDao {
-
-    private final Map<UUID, Set<AccountEmail>> emails = new ConcurrentHashMap<UUID, Set<AccountEmail>>();
-
-    @Override
-    public void create(final AccountEmail entity, final InternalCallContext context) throws AccountApiException {
-        Set<AccountEmail> theSet = emails.get(entity.getAccountId());
-        theSet.add(entity);
-    }
-
-    @Override
-    public Long getRecordId(final UUID id, final InternalTenantContext context) {
-        return 1L;
-    }
-
-    @Override
-    public AccountEmail getById(final UUID id, final InternalTenantContext context) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public List<AccountEmail> get(final InternalTenantContext context) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void delete(final AccountEmail email, final InternalCallContext context) {
-        Set<AccountEmail> theSet = emails.get(email.getAccountId());
-        theSet.remove(email);
-    }
+public class MockAccountEmailDao extends MockEntityDaoBase<AccountEmail, AccountApiException> implements AccountEmailDao {
 
     @Override
     public List<AccountEmail> getByAccountId(final UUID accountId, final InternalTenantContext context) {
-        final Set<AccountEmail> accountEmails = emails.get(accountId);
-        if (accountEmails == null) {
-            return ImmutableList.<AccountEmail>of();
-        } else {
-            return ImmutableList.<AccountEmail>copyOf(accountEmails.iterator());
+        final List<AccountEmail> accountEmails = new ArrayList<AccountEmail>();
+        for (final Map<Long, AccountEmail> accountEmail : entities.values()) {
+            final AccountEmail email = accountEmail.values().iterator().next();
+            if (email.getAccountId().equals(accountId)) {
+                accountEmails.add(email);
+            }
         }
-    }
 
-    @Override
-    public void test(final InternalTenantContext context) {
-    }
-
-    @Override
-    public AccountEmail getByRecordId(final Long recordId,
-            final InternalTenantContext context) {
-        return null;
+        return accountEmails;
     }
 }