package org.vertexium.test;
import org.apache.accumulo.core.client.AccumuloException;
import org.apache.accumulo.core.client.AccumuloSecurityException;
import org.junit.Before;
import org.junit.ClassRule;
import org.vertexium.Graph;
import org.vertexium.VertexiumException;
import org.vertexium.accumulo.AccumuloGraph;
import org.vertexium.accumulo.AccumuloGraphConfiguration;
import org.vertexium.accumulo.AccumuloGraphTestBase;
import org.vertexium.accumulo.AccumuloResource;
import org.vertexium.elasticsearch.ElasticsearchResource;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Map;
public class AccumuloElasticsearchSingleDocumentTest extends AccumuloGraphTestBase {
@ClassRule
public static final AccumuloResource accumuloResource = new AccumuloResource();
@ClassRule
public static final ElasticsearchResource elasticsearchResource = new ElasticsearchResource();
@Before
@Override
public void before() throws Exception {
accumuloResource.dropGraph();
elasticsearchResource.dropIndices();
super.before();
}
@SuppressWarnings("unchecked")
@Override
protected Graph createGraph() throws AccumuloSecurityException, AccumuloException, VertexiumException, InterruptedException, IOException, URISyntaxException {
Map accumuloConfig = accumuloResource.createConfig();
accumuloConfig.putAll(elasticsearchResource.createConfig());
return AccumuloGraph.create(new AccumuloGraphConfiguration(accumuloConfig));
}
@Override
public AccumuloResource getAccumuloResource() {
return accumuloResource;
}
@Override
protected boolean isParitalUpdateOfVertexPropertyKeySupported() {
return false;
}
@Override
protected boolean isFetchHintNoneVertexQuerySupported() {
return true;
}
@Override
protected boolean isLuceneQueriesSupported() {
return true;
}
@Override
protected boolean disableEdgeIndexing(Graph graph) {
return elasticsearchResource.disableEdgeIndexing(graph);
}
@Override
protected String substitutionDeflate(String str) {
return str;
}
}