Skip to content

Commit

Permalink
rename test classes
Browse files Browse the repository at this point in the history
Signed-off-by: Srinivasa Vasu <srinivasan.surprise@gmail.com>
  • Loading branch information
srinivasa-vasu committed Aug 3, 2022
1 parent 2287c77 commit 47a6e03
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 29 deletions.
@@ -0,0 +1,25 @@
package org.testcontainers.containers;

import com.datastax.oss.driver.api.core.CqlSession;

/**
* A builder abstraction to construct {@link CqlSession} instance from
* {@link YugabyteDBYCQLContainer} instance.
*
* @author srinivasa-vasu
*/
public interface YCQLSessionDelegate {

/**
* Constructs a {@link CqlSession} instance from {@link YugabyteDBYCQLContainer}
* instance.
* @param container YCQL container instance
* @return {@link CqlSession} instance
*/
default CqlSession builder(YugabyteDBYCQLContainer container) {
return CqlSession.builder().withLocalDatacenter(container.getLocalDc()).withKeyspace(container.getKeyspace())
.withAuthCredentials(container.getUsername(), container.getPassword())
.addContactPoint(container.getContactPoint()).build();
}

}
Expand Up @@ -3,8 +3,6 @@
import java.net.InetSocketAddress;
import java.time.Duration;

import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.CqlSessionBuilder;
import com.github.dockerjava.api.command.InspectContainerResponse;
import org.testcontainers.containers.delegate.YugabyteDBYCQLDelegate;
import org.testcontainers.containers.strategy.YugabyteDBYCQLWaitStrategy;
Expand All @@ -15,7 +13,7 @@
* YugabyteDB YCQL (Cloud Query Language) API container
*
* @author srinivasa-vasu
* @see <a href="https://docs.yugabyte.com/latest/api/ycql/">YCQL API</a>
* @see <a href="https://docs.yugabyte.com/stable/api/ycql/">YCQL API</a>
*/
public class YugabyteDBYCQLContainer extends GenericContainer<YugabyteDBYCQLContainer> {

Expand Down Expand Up @@ -116,26 +114,24 @@ public YugabyteDBYCQLContainer withPassword(final String password) {
@Override
protected void containerIsStarted(InspectContainerResponse containerInfo) {
if (initScript != null) {
ScriptUtils.runInitScript(new YugabyteDBYCQLDelegate(getSessionBuilder()), initScript);
ScriptUtils.runInitScript(new YugabyteDBYCQLDelegate(this), initScript);
}
}

/**
* Builds a {@link CqlSession} instance
* @return {@link CqlSession} instance
* Returns a {@link InetSocketAddress} representation of YCQL's contact point info
* @return contactpoint
*/
public CqlSession getSession() {
return getSessionBuilder().build();
public InetSocketAddress getContactPoint() {
return new InetSocketAddress(getHost(), getMappedPort(YCQL_PORT));
}

/**
* Builder method for {#com.datastax.oss.driver.api.core.CqlSession}
* @return {@link CqlSessionBuilder}
* Returns the local datacenter name
* @return localdc name
*/
public CqlSessionBuilder getSessionBuilder() {
return CqlSession.builder().withLocalDatacenter(LOCAL_DC).withKeyspace(this.getKeyspace())
.withAuthCredentials(this.getUsername(), this.getPassword())
.addContactPoint(new InetSocketAddress(this.getHost(), this.getMappedPort(YCQL_PORT)));
public String getLocalDc() {
return LOCAL_DC;
}

/**
Expand Down
Expand Up @@ -12,7 +12,7 @@
* YugabyteDB YSQL (Structured Query Language) API container
*
* @author srinivasa-vasu
* @see <a href="https://docs.yugabyte.com/latest/api/ysql/">YSQL API</a>
* @see <a href="https://docs.yugabyte.com/stable/api/ysql/">YSQL API</a>
*/

public class YugabyteDBYSQLContainer extends JdbcDatabaseContainer<YugabyteDBYSQLContainer> {
Expand Down
@@ -1,10 +1,8 @@
package org.testcontainers.containers.delegate;

import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.CqlSessionBuilder;
import com.datastax.oss.driver.api.core.session.Session;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.testcontainers.containers.YCQLSessionDelegate;
import org.testcontainers.containers.YugabyteDBYCQLContainer;
import org.testcontainers.delegate.AbstractDatabaseDelegate;

Expand All @@ -14,25 +12,24 @@
* @author srinivasa-vasu
* @see YugabyteDBYCQLContainer
*/
@Slf4j
@RequiredArgsConstructor
public final class YugabyteDBYCQLDelegate extends AbstractDatabaseDelegate<Session> {
public final class YugabyteDBYCQLDelegate extends AbstractDatabaseDelegate<CqlSession> implements YCQLSessionDelegate {

private final CqlSessionBuilder builder;
private final YugabyteDBYCQLContainer container;

@Override
protected Session createNewConnection() {
return builder.build();
protected CqlSession createNewConnection() {
return builder(container);
}

@Override
public void execute(String statement, String scriptPath, int lineNumber, boolean continueOnError,
boolean ignoreFailedDrops) {
((CqlSession) getConnection()).execute(statement);
getConnection().execute(statement);
}

@Override
protected void closeConnectionQuietly(Session session) {
protected void closeConnectionQuietly(CqlSession session) {
if (session != null) {
session.close();
}
Expand Down
Expand Up @@ -4,6 +4,7 @@

import com.datastax.oss.driver.api.core.CqlSession;
import lombok.RequiredArgsConstructor;
import org.testcontainers.containers.YCQLSessionDelegate;
import org.testcontainers.containers.YugabyteDBYCQLContainer;
import org.testcontainers.containers.wait.strategy.AbstractWaitStrategy;
import org.testcontainers.containers.wait.strategy.WaitStrategyTarget;
Expand All @@ -24,7 +25,7 @@
* @author srinivasa-vasu
*/
@RequiredArgsConstructor
public final class YugabyteDBYCQLWaitStrategy extends AbstractWaitStrategy {
public final class YugabyteDBYCQLWaitStrategy extends AbstractWaitStrategy implements YCQLSessionDelegate {

private static final String YCQL_TEST_QUERY = "SELECT release_version FROM system.local";

Expand All @@ -35,7 +36,7 @@ public void waitUntilReady(WaitStrategyTarget target) {
YugabyteDBYCQLContainer container = (YugabyteDBYCQLContainer) target;
retryUntilSuccess((int) startupTimeout.getSeconds(), TimeUnit.SECONDS, () -> {
getRateLimiter().doWhenReady(() -> {
try (CqlSession session = container.getSession()) {
try (CqlSession session = builder(container)) {
session.execute(YCQL_TEST_QUERY);
}
});
Expand Down
Expand Up @@ -14,7 +14,7 @@
*
* @author srinivasa-vasu
*/
public class YugabyteDBYCQLUnitTest {
public class YugabyteDBYCQLTest {

private static final String IMAGE_NAME = "yugabytedb/yugabyte:2.14.0.0-b94";

Expand Down
Expand Up @@ -15,7 +15,7 @@
*
* @author srinivasa-vasu
*/
public class YugabyteDBYSQLUnitTest extends AbstractContainerDatabaseTest {
public class YugabyteDBYSQLTest extends AbstractContainerDatabaseTest {

private static final String IMAGE_NAME = "yugabytedb/yugabyte:2.14.0.0-b94";

Expand Down

0 comments on commit 47a6e03

Please sign in to comment.