package org.cassandraunit; import org.cassandraunit.utils.EmbeddedCassandraServerHelper; import org.junit.rules.ExternalResource; import com.datastax.driver.core.SocketOptions; /** * @author Marcin Szymaniuk */ public abstract class BaseCassandraUnit extends ExternalResource { protected String configurationFileName; protected long startupTimeoutMillis; protected int readTimeoutMillis = 12000; public BaseCassandraUnit() { this(EmbeddedCassandraServerHelper.DEFAULT_STARTUP_TIMEOUT); } public BaseCassandraUnit(long startupTimeoutMillis) { this.startupTimeoutMillis = startupTimeoutMillis; } @Override protected void before() throws Exception { /* start an embedded Cassandra */ if (configurationFileName != null) { EmbeddedCassandraServerHelper.startEmbeddedCassandra(configurationFileName, startupTimeoutMillis); } else { EmbeddedCassandraServerHelper.startEmbeddedCassandra(startupTimeoutMillis); } /* create structure and load data */ load(); } protected abstract void load(); /** * Gets a base SocketOptions with an overridden readTimeoutMillis. */ protected SocketOptions getSocketOptions() { SocketOptions socketOptions = new SocketOptions(); socketOptions.setReadTimeoutMillis(this.readTimeoutMillis); return socketOptions; } }