Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Configure Arquillian integration tests to use Infinispan.
Browse files Browse the repository at this point in the history
Configuration is kept to in-memory at all times, since persistence should not be needed for integration tests.
  • Loading branch information
Carlos A. Munoz committed Sep 15, 2014
1 parent 11fdd52 commit 7301fd1
Show file tree
Hide file tree
Showing 11 changed files with 74 additions and 14 deletions.
Expand Up @@ -60,7 +60,6 @@ public class VersionStateCacheImpl implements VersionStateCache {
private CacheWrapper<VersionLocaleKey, WordStatistic> versionStatisticCache;
private CacheLoader<VersionLocaleKey, WordStatistic> versionStatisticLoader;

@In
private CacheContainer cacheContainer;

@In
Expand Down Expand Up @@ -127,6 +126,11 @@ public void clearVersionStatsCache(Long versionId) {
}
}

@In
public void setCacheContainer(CacheContainer cacheContainer) {
this.cacheContainer = cacheContainer;
}

private static class VersionStatisticLoader extends
CacheLoader<VersionLocaleKey, WordStatistic> {

Expand Down
9 changes: 7 additions & 2 deletions zanata-war/src/test/java/org/zanata/RestTest.java
Expand Up @@ -32,10 +32,10 @@
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.ext.h2.H2DataTypeFactory;
import org.dbunit.operation.DatabaseOperation;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.resteasy.client.ClientRequest;
import org.jboss.resteasy.client.ProxyFactory;
import org.jboss.seam.util.Naming;
import org.junit.After;
import org.junit.Before;
Expand All @@ -46,7 +46,6 @@
import org.zanata.rest.ResourceRequestEnvironment;
import org.zanata.rest.client.ZanataProxyFactory;
import org.zanata.rest.dto.VersionInfo;
import org.zanata.rest.helper.RemoteTestSignaler;

/**
* Provides basic test utilities to test raw REST APIs and compatibility.
Expand Down Expand Up @@ -112,7 +111,13 @@ protected IDatabaseConnection getConnection() {
*/
@RemoteBefore
public void prepareDataBeforeTest() {
addBeforeTestOperation(new DBUnitProvider.DataSetOperation(
"org/zanata/test/model/ClearAllTables.dbunit.xml",
DatabaseOperation.DELETE_ALL));
prepareDBUnitOperations();
addAfterTestOperation(new DBUnitProvider.DataSetOperation(
"org/zanata/test/model/ClearAllTables.dbunit.xml",
DatabaseOperation.DELETE_ALL));
dbUnitProvider.prepareDataBeforeTest();
}

Expand Down
Expand Up @@ -21,6 +21,8 @@
package org.zanata.cache;

import lombok.Delegate;
import org.infinispan.configuration.global.GlobalConfiguration;
import org.infinispan.configuration.global.GlobalConfigurationBuilder;
import org.infinispan.lifecycle.Lifecycle;
import org.infinispan.manager.CacheContainer;
import org.infinispan.manager.DefaultCacheManager;
Expand All @@ -35,13 +37,11 @@ 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 =
new DefaultCacheManager(getCacheManagerGlobalConfiguration());
this.delegate.start();
}

Expand All @@ -51,4 +51,15 @@ public void stop() {
delegate.stop();
}
}

private GlobalConfiguration getCacheManagerGlobalConfiguration() {
/* This allows multiple concurrent tests to run.
See https://issues.jboss.org/browse/ISPN-2886 for the exception that
is thrown when this is not used.
*/
return new GlobalConfigurationBuilder()
.globalJmxStatistics()
.allowDuplicateDomains(true)
.build();
}
}
Expand Up @@ -38,6 +38,9 @@ public class ProjectIterationCompatibilityITCase extends RestTest {

@Override
protected void prepareDBUnitOperations() {
addBeforeTestOperation(new DataSetOperation(
"org/zanata/test/model/AccountData.dbunit.xml",
DatabaseOperation.CLEAN_INSERT));
addBeforeTestOperation(new DataSetOperation(
"org/zanata/test/model/ProjectsData.dbunit.xml",
DatabaseOperation.CLEAN_INSERT));
Expand Down
Expand Up @@ -45,6 +45,9 @@ public class ProjectIterationRawCompatibilityITCase extends RestTest {

@Override
protected void prepareDBUnitOperations() {
addBeforeTestOperation(new DataSetOperation(
"org/zanata/test/model/AccountData.dbunit.xml",
DatabaseOperation.CLEAN_INSERT));
addBeforeTestOperation(new DataSetOperation(
"org/zanata/test/model/ProjectsData.dbunit.xml",
DatabaseOperation.CLEAN_INSERT));
Expand Down
Expand Up @@ -66,6 +66,9 @@ public class ProjectRawCompatibilityITCase extends RestTest {

@Override
protected void prepareDBUnitOperations() {
addBeforeTestOperation(new DataSetOperation(
"org/zanata/test/model/AccountData.dbunit.xml",
DatabaseOperation.CLEAN_INSERT));
addBeforeTestOperation(new DataSetOperation(
"org/zanata/test/model/ProjectsData.dbunit.xml",
DatabaseOperation.CLEAN_INSERT));
Expand Down
Expand Up @@ -76,7 +76,7 @@ protected void prepareDBUnitOperations() {
DatabaseOperation.CLEAN_INSERT));

addAfterTestOperation(new DataSetOperation(
"org/zanata/test/model/HistoryTestData.dbunit.xml",
"org/zanata/test/model/ClearAllTables.dbunit.xml",
DatabaseOperation.DELETE_ALL));
}

Expand Down
Expand Up @@ -20,11 +20,13 @@
*/
package org.zanata.rest.compat;

import org.dbunit.operation.DatabaseOperation;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.junit.Test;
import org.zanata.RestTest;
import org.zanata.apicompat.rest.client.IVersionResource;
import org.zanata.apicompat.rest.dto.VersionInfo;
import org.zanata.provider.DBUnitProvider;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.notNullValue;
Expand All @@ -33,6 +35,9 @@ public class VersionCompatibilityITCase extends RestTest {

@Override
protected void prepareDBUnitOperations() {
addBeforeTestOperation(new DBUnitProvider.DataSetOperation(
"org/zanata/test/model/AccountData.dbunit.xml",
DatabaseOperation.CLEAN_INSERT));
}

@Test
Expand Down
Expand Up @@ -5,11 +5,13 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

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.cache.InfinispanTestCacheContainer;
import org.zanata.common.LocaleId;
import org.zanata.service.VersionLocaleKey;
import org.zanata.ui.model.statistic.WordStatistic;
Expand All @@ -26,14 +28,15 @@ public class VersionStateCacheImplTest {

@Mock
private CacheLoader<VersionLocaleKey, WordStatistic> versionStatisticLoader;
private final CacheContainer cacheContainer =
new InfinispanTestCacheContainer();

@BeforeMethod
public void beforeMethod() {
MockitoAnnotations.initMocks(this);
cache = new VersionStateCacheImpl(versionStatisticLoader);

cache.create();
cache.destroy();
cacheContainer.start();
cache.setCacheContainer(cacheContainer);
cache.create();
}

Expand Down
7 changes: 4 additions & 3 deletions zanata-war/src/test/resources/arquillian/persistence.xml
Expand Up @@ -83,9 +83,10 @@

<!-- Search engine -->
<property name="hibernate.search.default.directory_provider"
value="org.hibernate.search.store.impl.FSDirectoryProvider" />
<property name="hibernate.search.default.indexBase"
value="zanatasearchindex" />
value="infinispan" />
<!-- to use an existing cache manager (Good for external configuration) -->
<property name="hibernate.search.infinispan.cachemanager_jndiname"
value="java:jboss/infinispan/container/hibernate-search"/>
<property name="hibernate.search.lucene_version" value="LUCENE_36" />
<property name="hibernate.search.worker.batch_size" value="50" />

Expand Down
22 changes: 22 additions & 0 deletions zanata-war/src/test/resources/arquillian/standalone.xml
Expand Up @@ -175,6 +175,7 @@
</subsystem>
<subsystem xmlns="urn:jboss:domain:infinispan:1.3">
<cache-container name="hibernate" default-cache="local-query"
jndi-name="java:jboss/infinispan/container/hibernate" start="EAGER"
module="org.jboss.as.jpa.hibernate:4">
<local-cache name="entity">
<transaction mode="NON_XA" />
Expand All @@ -191,6 +192,27 @@
<eviction strategy="NONE" />
</local-cache>
</cache-container>
<!--
Hibernate search infinispan settings
- Default In-memory settings
-->
<cache-container name="hibernate-search" default-cache="indexes" jndi-name="java:jboss/infinispan/container/hibernate-search" start="EAGER" module="org.jboss.as.clustering.web.infinispan">
<local-cache name="LuceneIndexesMetadata" start="EAGER" batching="false"/>
<local-cache name="LuceneIndexesData" start="EAGER" batching="false"/>
<local-cache name="LuceneIndexesLocking" start="EAGER" batching="false"/>
</cache-container>
<!--
Zanata multi-purpose caches.
-->
<cache-container name="zanata" default-cache="default" jndi-name="java:jboss/infinispan/container/zanata"
start="EAGER"
module="org.jboss.as.clustering.web.infinispan">
<local-cache name="default">
<transaction mode="NON_XA"/>
<eviction strategy="LRU" max-entries="10000"/>
<expiration max-idle="100000"/>
</local-cache>
</cache-container>
</subsystem>
<subsystem xmlns="urn:jboss:domain:jaxrs:1.0" />
<subsystem xmlns="urn:jboss:domain:jca:1.1">
Expand Down

0 comments on commit 7301fd1

Please sign in to comment.