mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Maxim Thomas
03.16.2023 623bc6b3c8405d1b4b6058bf3ebcbfad30e1c837
opendj-server-legacy/src/test/java/org/opends/server/backends/cassandra/TestCase.java
@@ -20,21 +20,35 @@
import org.forgerock.opendj.server.config.server.CASBackendCfg;
import org.opends.server.backends.pluggable.PluggableBackendImplTestCase;
import org.testcontainers.DockerClientFactory;
import org.testcontainers.containers.CassandraContainer;
import org.testng.SkipException;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;
import com.datastax.oss.driver.api.core.AllNodesFailedException;
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.config.DriverConfigLoader;
import java.net.InetSocketAddress;
//docker run --rm -it -p 9042:9042 --name cassandra cassandra
@Test
public class TestCase extends PluggableBackendImplTestCase<CASBackendCfg> {
   CassandraContainer cassandraContainer;
   @Override
   protected Backend createBackend() {
      System.setProperty("datastax-java-driver.basic.request.timeout", "30 seconds"); //for docker slow start
      if(DockerClientFactory.instance().isDockerAvailable()) {
         cassandraContainer = new CassandraContainer<>("cassandra:latest").withExposedPorts(9042);
         cassandraContainer.start();
         InetSocketAddress contactPoint = cassandraContainer.getContactPoint();
         final String contactPointString = String.format("%s:%s", contactPoint.getHostName(), contactPoint.getPort());
         System.setProperty("datastax-java-driver.basic.contact-points.0", contactPointString);
         System.setProperty("datastax-java-driver.basic.load-balancing-policy.local-datacenter", cassandraContainer.getLocalDatacenter());
      }
      //test allow cassandra
      try(CqlSession session=CqlSession.builder()
            .withConfigLoader(DriverConfigLoader.fromDefaults(Storage.class.getClassLoader()))
@@ -53,4 +67,13 @@
      when(backendCfg.getDBDirectory()).thenReturn("CASTestCase");
      return backendCfg;
   }
   @AfterClass
   @Override
   public void cleanUp() throws Exception {
      super.cleanUp();
      if(cassandraContainer != null) {
         cassandraContainer.close();
      }
   }
}