Infinispan Test Parent Pom

Contains utilities for developing unit tests and integration tests backed with Infinispan

License

License

Categories

Categories

Infinispan Data Caching
GroupId

GroupId

org.infinispan
ArtifactId

ArtifactId

infinispan-test-parent
Last Version

Last Version

0.1
Release Date

Release Date

Type

Type

pom
Description

Description

Infinispan Test Parent Pom
Contains utilities for developing unit tests and integration tests backed with Infinispan
Project Organization

Project Organization

JBoss, a division of Red Hat
Source Code Management

Source Code Management

https://github.com/karesti/infinispan-test

Download infinispan-test-parent

How to add to project

<!-- https://jarcasting.com/artifacts/org.infinispan/infinispan-test-parent/ -->
<dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-test-parent</artifactId>
    <version>0.1</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/org.infinispan/infinispan-test-parent/
implementation 'org.infinispan:infinispan-test-parent:0.1'
// https://jarcasting.com/artifacts/org.infinispan/infinispan-test-parent/
implementation ("org.infinispan:infinispan-test-parent:0.1")
'org.infinispan:infinispan-test-parent:pom:0.1'
<dependency org="org.infinispan" name="infinispan-test-parent" rev="0.1">
  <artifact name="infinispan-test-parent" type="pom" />
</dependency>
@Grapes(
@Grab(group='org.infinispan', module='infinispan-test-parent', version='0.1')
)
libraryDependencies += "org.infinispan" % "infinispan-test-parent" % "0.1"
[org.infinispan/infinispan-test-parent "0.1"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

  • junit-4
  • junit-5
  • testcontainers

Infinispan Test

Build Status

This library contains the utilities to help unit testing java applications backed with an Infinispan backend.

Frameworks supported

JUnit 5 - Jupiter

pom.xml
<dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-junit5</artifactId>
    <version>0.2</version>
    <scope>test</scope>
</dependency>
MyTest.java
public class InfinispanExtensionTest {

    @RegisterExtension
    InfinispanServerExtension server = InfinispanServerExtension.builder().build();

    @Test
    public void test() {
        RemoteCacheManager remoteCacheManager = server.hotRodClient();
        ...
    }

You can override host and port using the builder. By default, values are localhost and 11222.

Testcontainers

A very simple container is provided to be used with Testcontainers. The image used is the latest jboss/infinispan-server:latest

Add the dependency to the classpath

pom.xml
<dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-testcontainers</artifactId>
    <version>0.2</version>
    <scope>test</scope>
</dependency>

Unit test example with JUnit 5

MyTest.java
@Testcontainers
public class InfinispanContainerTest {
    @Container
    private final static InfinispanContainer INFINISPAN_SERVER = new InfinispanContainer().withCache("mycache");

    @AfterAll
    public static void cleanup() {
        INFINISPAN_SERVER.stop();
    }

    @Test
    public void test() {
        RemoteCache<String, String> cache = INFINISPAN_SERVER.getCacheManager().getCache("mycache");
        ...
    }
}

Junit 4

Add the dependency to the classpath

pom.xml
<dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-junit4</artifactId>
    <version>0.2</version>
    <scope>test</scope>
</dependency>

Usage

MyTest.java
@ServerTestConfiguration
public class ClusteredServerTest {

    @ClassRule
    public static ServerTestRule serverTestRule = new ServerTestRule();

    @Rule
    public ServerTestMethodRule serverTestMethodRule = new ServerTestMethodRule(serverTestRule);

    @Test
    @ServerTestMethodConfiguration
    public void testCluster() {
        RemoteCacheManager client = serverTestRule.hotRodClient();
        ...
    }
}

@ServerTestConfiguration

Class annotation. Two properties can be configured with this annotation:

configurationFile: Default value is clustered.xml.

numServers: Number of servers in the cluster. 2 by default.

@ServerTestMethodConfiguration

Method annotation. Two properties can be configured with this annotation:

cacheName: The cache name. By default will create a cache name based on the method name

cacheConfig: The configuration to use for the cache, in XML format. Empty by default.

Versions

Version
0.1