From 11fdd52c8411576c2259cecfaa23f371e6291e44 Mon Sep 17 00:00:00 2001 From: "Carlos A. Munoz" Date: Tue, 9 Sep 2014 15:11:58 +1000 Subject: [PATCH] Add test cache container to unit tests. This is a memory-only Infinispan cache container. --- .../impl/TranslationStateCacheImpl.java | 30 +++++------ .../cache/InfinispanTestCacheContainer.java | 54 +++++++++++++++++++ .../rest/service/ResourceServiceRestTest.java | 7 ++- .../service/TranslationResourceRestTest.java | 5 ++ .../service/TranslationServiceRestTest.java | 5 ++ .../impl/CopyTransServiceImplTest.java | 7 +++ .../impl/CopyVersionServiceImplTest.java | 6 +++ .../impl/StatisticsServiceImplTest.java | 20 +++---- .../impl/TranslationStateCacheImplTest.java | 36 +++++++------ .../impl/VersionGroupServiceImplTest.java | 5 ++ .../rpc/GetTransUnitListHandlerTest.java | 5 ++ 11 files changed, 132 insertions(+), 48 deletions(-) create mode 100644 zanata-war/src/test/java/org/zanata/cache/InfinispanTestCacheContainer.java diff --git a/zanata-war/src/main/java/org/zanata/service/impl/TranslationStateCacheImpl.java b/zanata-war/src/main/java/org/zanata/service/impl/TranslationStateCacheImpl.java index 96302bc9a0..8e805b4595 100644 --- a/zanata-war/src/main/java/org/zanata/service/impl/TranslationStateCacheImpl.java +++ b/zanata-war/src/main/java/org/zanata/service/impl/TranslationStateCacheImpl.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; +import com.google.common.annotations.VisibleForTesting; import lombok.AllArgsConstructor; import lombok.EqualsAndHashCode; import lombok.Getter; @@ -95,7 +96,13 @@ public class TranslationStateCacheImpl implements TranslationStateCache { private CacheContainer cacheContainer; @In - private ServiceLocator serviceLocator; + private TextFlowDAO textFlowDAO; + + @In + private TextFlowTargetDAO textFlowTargetDAO; + + @In + private DocumentDAO documentDAO; // constructor for Seam public TranslationStateCacheImpl() { @@ -104,6 +111,7 @@ public TranslationStateCacheImpl() { } // Constructor for testing + @VisibleForTesting public TranslationStateCacheImpl( CacheLoader documentStatisticLoader, CacheLoader docStatsLoader, @@ -177,7 +185,7 @@ public void textFlowStateUpdated(TextFlowTargetStateEvent event) { WordStatistic stats = documentStatisticCache.get(key); if (stats != null) { - HTextFlow textFlow = getTextFlowDAO().findById( + HTextFlow textFlow = textFlowDAO.findById( event.getTextFlowId()); stats.decrement(event.getPreviousState(), @@ -199,8 +207,8 @@ private void updateDocStatusCache(DocumentLocaleKey key, DocumentStatus documentStatus = docStatusCache.get(key); if(documentStatus != null) { HTextFlowTarget target = - getTextFlowTargetDAO().findById(updatedTargetId, false); - updateDocumentStatus(getDocumentDAO(), documentStatus, + textFlowTargetDAO.findById(updatedTargetId, false); + updateDocumentStatus(documentDAO, documentStatus, key.getDocumentId(), target); } } @@ -208,7 +216,7 @@ private void updateDocStatusCache(DocumentLocaleKey key, private Boolean loadTargetValidation(Long textFlowTargetId, ValidationId validationId) { HTextFlowTarget tft = - getTextFlowTargetDAO().findById(textFlowTargetId, false); + textFlowTargetDAO.findById(textFlowTargetId, false); if (tft != null) { ValidationAction action = ValidationFactoryProvider.getFactoryInstance() @@ -221,18 +229,6 @@ private Boolean loadTargetValidation(Long textFlowTargetId, return null; } - DocumentDAO getDocumentDAO() { - return serviceLocator.getInstance(DocumentDAO.class); - } - - TextFlowTargetDAO getTextFlowTargetDAO() { - return serviceLocator.getInstance(TextFlowTargetDAO.class); - } - - TextFlowDAO getTextFlowDAO() { - return serviceLocator.getInstance(TextFlowDAO.class); - } - private static class DocumentStatisticLoader extends CacheLoader { diff --git a/zanata-war/src/test/java/org/zanata/cache/InfinispanTestCacheContainer.java b/zanata-war/src/test/java/org/zanata/cache/InfinispanTestCacheContainer.java new file mode 100644 index 0000000000..68ea4e1f2a --- /dev/null +++ b/zanata-war/src/test/java/org/zanata/cache/InfinispanTestCacheContainer.java @@ -0,0 +1,54 @@ +/* + * Copyright 2014, Red Hat, Inc. and individual contributors as indicated by the + * @author tags. See the copyright.txt file in the distribution for a full + * listing of individual contributors. + * + * This is free software; you can redistribute it and/or modify it under the + * terms of the GNU Lesser General Public License as published by the Free + * Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + * + * This software is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this software; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF + * site: http://www.fsf.org. + */ +package org.zanata.cache; + +import lombok.Delegate; +import org.infinispan.lifecycle.Lifecycle; +import org.infinispan.manager.CacheContainer; +import org.infinispan.manager.DefaultCacheManager; + +/** + * A cache container to be used in tests. Everything is kept in memory in a + * real Infinispan cache which can be restarted / reset at will. + * @author Carlos Munoz camunoz@redhat.com + */ +public class InfinispanTestCacheContainer implements CacheContainer { + + @Delegate(types = CacheContainer.class, excludes = Lifecycle.class) + private DefaultCacheManager delegate; + + public InfinispanTestCacheContainer() { + } + + @Override + public void start() { + stop(); + this.delegate = new DefaultCacheManager(); + this.delegate.start(); + } + + @Override + public void stop() { + if( delegate != null) { + delegate.stop(); + } + } +} diff --git a/zanata-war/src/test/java/org/zanata/rest/service/ResourceServiceRestTest.java b/zanata-war/src/test/java/org/zanata/rest/service/ResourceServiceRestTest.java index 5311d2acec..ac2fef3e67 100644 --- a/zanata-war/src/test/java/org/zanata/rest/service/ResourceServiceRestTest.java +++ b/zanata-war/src/test/java/org/zanata/rest/service/ResourceServiceRestTest.java @@ -5,6 +5,7 @@ import javax.ws.rs.core.Response.Status; +import org.infinispan.manager.CacheContainer; import org.jboss.resteasy.client.ClientResponse; import org.jboss.seam.security.management.JpaIdentityStore; import org.mockito.Mock; @@ -13,6 +14,7 @@ import org.slf4j.LoggerFactory; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import org.zanata.cache.InfinispanTestCacheContainer; import org.zanata.model.HAccount; import org.zanata.model.HPerson; import org.zanata.rest.StringSet; @@ -33,13 +35,16 @@ public class ResourceServiceRestTest extends ResourceTranslationServiceRestTest @Mock private ZanataIdentity mockIdentity; + private CacheContainer cacheContainer = new InfinispanTestCacheContainer(); + @Override protected void prepareResources() { MockitoAnnotations.initMocks(this); - + cacheContainer.start(); SeamAutowire seamAutowire = getSeamAutowire(); seamAutowire.use("session", getSession()).use("entityManager", getEm()) .use("identity", mockIdentity).useImpl(LocaleServiceImpl.class) + .use("cacheContainer", cacheContainer) .useImpl(CopyTransServiceImpl.class) .useImpl(DocumentServiceImpl.class) .useImpl(VersionStateCacheImpl.class); diff --git a/zanata-war/src/test/java/org/zanata/rest/service/TranslationResourceRestTest.java b/zanata-war/src/test/java/org/zanata/rest/service/TranslationResourceRestTest.java index 5c32fbc863..4569b7b92c 100644 --- a/zanata-war/src/test/java/org/zanata/rest/service/TranslationResourceRestTest.java +++ b/zanata-war/src/test/java/org/zanata/rest/service/TranslationResourceRestTest.java @@ -11,6 +11,7 @@ import org.dbunit.operation.DatabaseOperation; import org.fedorahosted.tennera.jgettext.HeaderFields; import org.hamcrest.Matchers; +import org.infinispan.manager.CacheContainer; import org.jboss.resteasy.client.ClientResponse; import org.jboss.seam.security.Identity; import org.jboss.seam.security.management.JpaIdentityStore; @@ -22,6 +23,7 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.zanata.ZanataRestTest; +import org.zanata.cache.InfinispanTestCacheContainer; import org.zanata.common.ContentState; import org.zanata.common.ContentType; import org.zanata.common.LocaleId; @@ -110,6 +112,7 @@ public class TranslationResourceRestTest extends ZanataRestTest { @Mock private TranslationWorkspaceManager transWorspaceManager; + CacheContainer cacheContainer = new InfinispanTestCacheContainer(); ISourceDocResource sourceDocResource; ITranslatedDocResource transResource; @@ -138,10 +141,12 @@ protected void prepareDBUnitOperations() { @SuppressWarnings("serial") @Override protected void prepareResources() { + cacheContainer.start(); SeamAutowire seamAutowire = getSeamAutowire(); seamAutowire.use("session", getSession()).use("identity", mockIdentity) .use("translationWorkspaceManager", transWorspaceManager) .use("entityManager", super.getEm()) + .use("cacheContainer", cacheContainer) .useImpl(CopyTransServiceImpl.class) .useImpl(TranslationServiceImpl.class) .useImpl(LocaleServiceImpl.class) diff --git a/zanata-war/src/test/java/org/zanata/rest/service/TranslationServiceRestTest.java b/zanata-war/src/test/java/org/zanata/rest/service/TranslationServiceRestTest.java index 4a193d7b7e..976e9ee714 100644 --- a/zanata-war/src/test/java/org/zanata/rest/service/TranslationServiceRestTest.java +++ b/zanata-war/src/test/java/org/zanata/rest/service/TranslationServiceRestTest.java @@ -4,6 +4,7 @@ import javax.xml.bind.JAXBException; import org.hamcrest.Matchers; +import org.infinispan.manager.CacheContainer; import org.jboss.resteasy.client.ClientResponse; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; @@ -11,6 +12,7 @@ import org.slf4j.LoggerFactory; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import org.zanata.cache.InfinispanTestCacheContainer; import org.zanata.common.LocaleId; import org.zanata.rest.StringSet; import org.zanata.rest.dto.DTOUtil; @@ -36,6 +38,7 @@ public class TranslationServiceRestTest extends new TranslationsResourceTestObjectFactory(); private ResourceTestObjectFactory resourceTestFactory = new ResourceTestObjectFactory(); + private CacheContainer cacheContainer = new InfinispanTestCacheContainer(); @DataProvider(name = "TranslationTestData") public Object[][] getTestData() { @@ -53,9 +56,11 @@ public Object[][] getTestData() { @Override protected void prepareResources() { MockitoAnnotations.initMocks(this); + cacheContainer.start(); SeamAutowire seamAutowire = getSeamAutowire(); seamAutowire.use("entityManager", getEm()).use("session", getSession()) .use("identity", Mockito.mock(ZanataIdentity.class)) + .use("cacheContainer", cacheContainer) .useImpl(LocaleServiceImpl.class) .useImpl(CopyTransServiceImpl.class) .useImpl(DocumentServiceImpl.class) diff --git a/zanata-war/src/test/java/org/zanata/service/impl/CopyTransServiceImplTest.java b/zanata-war/src/test/java/org/zanata/service/impl/CopyTransServiceImplTest.java index 27f3910bc8..54cd60913d 100644 --- a/zanata-war/src/test/java/org/zanata/service/impl/CopyTransServiceImplTest.java +++ b/zanata-war/src/test/java/org/zanata/service/impl/CopyTransServiceImplTest.java @@ -27,13 +27,17 @@ import org.dbunit.operation.DatabaseOperation; import org.hibernate.search.impl.FullTextSessionImpl; import org.hibernate.search.jpa.Search; +import org.infinispan.manager.CacheContainer; +import org.infinispan.manager.DefaultCacheManager; import org.jboss.seam.security.management.JpaIdentityStore; import org.mockito.Mockito; +import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import org.zanata.SlowTest; import org.zanata.ZanataDbunitJpaTest; +import org.zanata.cache.InfinispanTestCacheContainer; import org.zanata.common.ContentState; import org.zanata.common.ContentType; import org.zanata.common.EntityStatus; @@ -78,6 +82,7 @@ @Test(groups = { "business-tests" }) public class CopyTransServiceImplTest extends ZanataDbunitJpaTest { private SeamAutowire seam = SeamAutowire.instance(); + private CacheContainer cacheContainer = new InfinispanTestCacheContainer(); @Override protected void prepareDBUnitOperations() { @@ -97,10 +102,12 @@ protected void prepareDBUnitOperations() { @BeforeMethod protected void beforeMethod() throws Exception { + cacheContainer.start(); seam.reset() .use("entityManager", Search.getFullTextEntityManager(getEm())) .use("entityManagerFactory", getEmf()) .use("session", new FullTextSessionImpl(getSession())) + .use("cacheContainer", cacheContainer) .use(JpaIdentityStore.AUTHENTICATED_USER, seam.autowire(AccountDAO.class).getByUsername("demo")) .useImpl(LocaleServiceImpl.class) diff --git a/zanata-war/src/test/java/org/zanata/service/impl/CopyVersionServiceImplTest.java b/zanata-war/src/test/java/org/zanata/service/impl/CopyVersionServiceImplTest.java index b2f14cbaea..37a5752049 100644 --- a/zanata-war/src/test/java/org/zanata/service/impl/CopyVersionServiceImplTest.java +++ b/zanata-war/src/test/java/org/zanata/service/impl/CopyVersionServiceImplTest.java @@ -31,12 +31,14 @@ import java.util.Map; import org.dbunit.operation.DatabaseOperation; +import org.infinispan.manager.CacheContainer; import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.zanata.ZanataDbunitJpaTest; +import org.zanata.cache.InfinispanTestCacheContainer; import org.zanata.common.EntityStatus; import org.zanata.dao.DocumentDAO; import org.zanata.dao.LocaleDAO; @@ -85,6 +87,8 @@ public class CopyVersionServiceImplTest extends ZanataDbunitJpaTest { private CopyVersionServiceImpl service; + private CacheContainer cacheContainer = new InfinispanTestCacheContainer(); + @Override protected void prepareDBUnitOperations() { beforeTestOperations.add(new DataSetOperation( @@ -113,6 +117,7 @@ protected void beforeMethod() throws Exception { textFlowTargetDAO = new TextFlowTargetDAO(getSession()); textFlowDAO = new TextFlowDAO(getSession()); rawDocumentDAO = new RawDocumentDAO((getSession())); + cacheContainer.start(); service = seam.reset() .use("projectIterationDAO", @@ -124,6 +129,7 @@ protected void beforeMethod() throws Exception { .use("session", getSession()) .use("identity", identity) .use("filePersistService", fileSystemPersistService) + .use("cacheContainer", cacheContainer) .useImpl(VersionStateCacheImpl.class) .useImpl(AsyncTaskManagerServiceImpl.class) .ignoreNonResolvable() diff --git a/zanata-war/src/test/java/org/zanata/service/impl/StatisticsServiceImplTest.java b/zanata-war/src/test/java/org/zanata/service/impl/StatisticsServiceImplTest.java index c587dd3498..69acc8e563 100644 --- a/zanata-war/src/test/java/org/zanata/service/impl/StatisticsServiceImplTest.java +++ b/zanata-war/src/test/java/org/zanata/service/impl/StatisticsServiceImplTest.java @@ -31,19 +31,18 @@ import java.util.Arrays; import org.dbunit.operation.DatabaseOperation; +import org.infinispan.manager.CacheContainer; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.zanata.ZanataDbunitJpaTest; +import org.zanata.cache.InfinispanTestCacheContainer; import org.zanata.rest.dto.stats.ContainerTranslationStatistics; import org.zanata.rest.dto.stats.TranslationStatistics; import org.zanata.seam.SeamAutowire; import org.zanata.service.ValidationService; -import net.sf.ehcache.CacheManager; - /** * @author Carlos Munoz camunoz@redhat.com @@ -54,7 +53,7 @@ public class StatisticsServiceImplTest extends ZanataDbunitJpaTest { @Mock private ValidationService validationServiceImpl; - private CacheManager cacheManager; + private CacheContainer cacheContainer = new InfinispanTestCacheContainer(); @Override protected void prepareDBUnitOperations() { @@ -78,21 +77,16 @@ protected void prepareDBUnitOperations() { @BeforeMethod public void initializeSeam() { MockitoAnnotations.initMocks(this); + cacheContainer.start(); // @formatter:off - seam.reset() + seam.reset() .use("entityManager", getEm()) .use("session", getSession()) .use("validationServiceImpl", validationServiceImpl) + .use("cacheContainer", cacheContainer) .useImpl(TranslationStateCacheImpl.class) .ignoreNonResolvable(); - // @formatter:on - cacheManager = CacheManager.create(); - cacheManager.removalAll(); - } - - @AfterMethod - public void after() { - cacheManager.shutdown(); + // @formatter:on } @Test diff --git a/zanata-war/src/test/java/org/zanata/service/impl/TranslationStateCacheImplTest.java b/zanata-war/src/test/java/org/zanata/service/impl/TranslationStateCacheImplTest.java index db8ac49cda..e54800d599 100644 --- a/zanata-war/src/test/java/org/zanata/service/impl/TranslationStateCacheImplTest.java +++ b/zanata-war/src/test/java/org/zanata/service/impl/TranslationStateCacheImplTest.java @@ -29,13 +29,17 @@ import java.util.HashMap; import java.util.Map; +import org.infinispan.manager.CacheContainer; +import org.infinispan.manager.DefaultCacheManager; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import org.zanata.cache.InfinispanTestCacheContainer; import org.zanata.common.LocaleId; import org.zanata.dao.TextFlowTargetDAO; +import org.zanata.seam.SeamAutowire; import org.zanata.service.impl.TranslationStateCacheImpl.DocumentLocaleKey; import org.zanata.ui.model.statistic.WordStatistic; import org.zanata.webtrans.shared.model.DocumentId; @@ -51,32 +55,30 @@ public class TranslationStateCacheImplTest { private CacheLoader docStatisticLoader; @Mock - private CacheLoader docStatsLoader; + private CacheLoader docStatusLoader; @Mock private TextFlowTargetDAO textFlowTargetDAO; @Mock private CacheLoader> targetValidationLoader; + private CacheContainer cacheContainer = new InfinispanTestCacheContainer(); + @BeforeMethod public void beforeMethod() { MockitoAnnotations.initMocks(this); + cacheContainer.start(); tsCache = - new TranslationStateCacheImpl(docStatisticLoader, docStatsLoader, - targetValidationLoader) { - @Override - TextFlowTargetDAO getTextFlowTargetDAO() { - return textFlowTargetDAO; - } - }; + new TranslationStateCacheImpl(docStatisticLoader, + docStatusLoader, targetValidationLoader); - tsCache.create(); - tsCache.destroy(); - tsCache.create(); - } + SeamAutowire seam = SeamAutowire.instance(); + seam.reset() + .use("textFlowTargetDAO", textFlowTargetDAO) + .use("cacheContainer", cacheContainer) + .ignoreNonResolvable(); + tsCache = seam.autowire(tsCache); - @AfterMethod - public void afterMethod() { - tsCache.destroy(); + tsCache.create(); } public void testGetLastModifiedTextFlowTarget() throws Exception { @@ -90,7 +92,7 @@ public void testGetLastModifiedTextFlowTarget() throws Exception { ""); // When: - when(docStatsLoader.load(key)).thenReturn(docStats); + when(docStatusLoader.load(key)).thenReturn(docStats); DocumentStatus result1 = tsCache.getDocumentStatus(documentId, testLocaleId); @@ -98,7 +100,7 @@ public void testGetLastModifiedTextFlowTarget() throws Exception { tsCache.getDocumentStatus(documentId, testLocaleId); // Then: - verify(docStatsLoader).load(key); // only load the value once + verify(docStatusLoader).load(key); // only load the value once assertThat(result1, equalTo(docStats)); assertThat(result2, equalTo(docStats)); } diff --git a/zanata-war/src/test/java/org/zanata/service/impl/VersionGroupServiceImplTest.java b/zanata-war/src/test/java/org/zanata/service/impl/VersionGroupServiceImplTest.java index 86d7fe21ae..5677efe8eb 100644 --- a/zanata-war/src/test/java/org/zanata/service/impl/VersionGroupServiceImplTest.java +++ b/zanata-war/src/test/java/org/zanata/service/impl/VersionGroupServiceImplTest.java @@ -30,9 +30,11 @@ import org.dbunit.operation.DatabaseOperation; import org.hamcrest.Matchers; +import org.infinispan.manager.CacheContainer; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.zanata.ZanataDbunitJpaTest; +import org.zanata.cache.InfinispanTestCacheContainer; import org.zanata.common.LocaleId; import org.zanata.dao.PersonDAO; import org.zanata.dao.ProjectIterationDAO; @@ -52,6 +54,7 @@ public class VersionGroupServiceImplTest extends ZanataDbunitJpaTest { private SeamAutowire seam = SeamAutowire.instance(); private VersionGroupServiceImpl versionGroupServiceImpl; + private CacheContainer cacheContainer = new InfinispanTestCacheContainer(); private final String GROUP1_SLUG = "group1"; private final String GROUP2_SLUG = "group2"; @@ -81,11 +84,13 @@ protected void prepareDBUnitOperations() { @BeforeMethod public void initializeSeam() { + cacheContainer.start(); seam.reset() .use("versionGroupDAO", new VersionGroupDAO(getSession())) .use("projectIterationDAO", new ProjectIterationDAO(getSession())) .use("session", getSession()) + .use("cacheContainer", cacheContainer) .useImpl(VersionStateCacheImpl.class).useImpl(LocaleServiceImpl.class).ignoreNonResolvable(); versionGroupServiceImpl = seam.autowire(VersionGroupServiceImpl.class); diff --git a/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/GetTransUnitListHandlerTest.java b/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/GetTransUnitListHandlerTest.java index 24d14819d7..19ad38dca1 100644 --- a/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/GetTransUnitListHandlerTest.java +++ b/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/GetTransUnitListHandlerTest.java @@ -14,11 +14,13 @@ import org.hamcrest.Matchers; import org.hibernate.search.impl.FullTextSessionImpl; import org.hibernate.search.jpa.impl.FullTextEntityManagerImpl; +import org.infinispan.manager.CacheContainer; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.zanata.ZanataDbunitJpaTest; +import org.zanata.cache.InfinispanTestCacheContainer; import org.zanata.common.LocaleId; import org.zanata.common.ProjectType; import org.zanata.dao.DocumentDAO; @@ -61,6 +63,7 @@ public class GetTransUnitListHandlerTest extends ZanataDbunitJpaTest { private final DocumentInfo document = TestFixture.documentInfo(1L, ""); private final LocaleId localeId = new LocaleId("ja"); private HLocale jaHLocale; + private CacheContainer cacheContainer = new InfinispanTestCacheContainer(); private SeamAutowire seam = SeamAutowire.instance(); @@ -76,6 +79,7 @@ public void setUp() throws Exception { MockitoAnnotations.initMocks(this); ResourceUtils resourceUtils = new ResourceUtils(); resourceUtils.create(); // postConstruct + cacheContainer.start(); TransUnitTransformer transUnitTransformer = seam.reset().use("resourceUtils", resourceUtils) .autowire(TransUnitTransformer.class); @@ -92,6 +96,7 @@ public void setUp() throws Exception { .use("transUnitTransformer", transUnitTransformer) .use("webtrans.gwt.GetTransUnitsNavigationHandler", getTransUnitsNavigationService) + .use("cacheContainer", cacheContainer) .useImpl(TranslationStateCacheImpl.class) .useImpl(TextFlowSearchServiceImpl.class) .useImpl(ValidationServiceImpl.class).allowCycles();