diff --git a/elasticsearch5/src/test/java/com/yahoo/ycsb/db/elasticsearch5/ElasticsearchClientIT.java b/elasticsearch5/src/test/java/com/yahoo/ycsb/db/elasticsearch5/ElasticsearchClientIT.java index 2f8eabe083e2e5bec0d13df6569d36ab246f5c79..07dab6fa6af9095c361ab1b9a297ec207d9a9ca2 100644 --- a/elasticsearch5/src/test/java/com/yahoo/ycsb/db/elasticsearch5/ElasticsearchClientIT.java +++ b/elasticsearch5/src/test/java/com/yahoo/ycsb/db/elasticsearch5/ElasticsearchClientIT.java @@ -17,116 +17,13 @@ package com.yahoo.ycsb.db.elasticsearch5; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.Status; -import com.yahoo.ycsb.StringByteIterator; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import com.yahoo.ycsb.DB; -import java.util.HashMap; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; +public class ElasticsearchClientIT extends ElasticsearchIntegTestBase { -import static org.junit.Assert.assertEquals; - -public class ElasticsearchClientIT { - - private final ElasticsearchClient instance = new ElasticsearchClient(); - private final static HashMap<String, ByteIterator> MOCK_DATA; - private final static String MOCK_TABLE = "MOCK_TABLE"; - - static { - MOCK_DATA = new HashMap<>(10); - for (int i = 1; i <= 10; i++) { - MOCK_DATA.put("field" + i, new StringByteIterator("value" + i)); - } - } - - @Before - public void setUp() throws DBException { - final Properties props = new Properties(); - props.put("es.new_index", "true"); - props.put("es.setting.cluster.name", "test"); - instance.setProperties(props); - instance.init(); - for (int i = 0; i < 16; i++) { - instance.insert(MOCK_TABLE, Integer.toString(i), MOCK_DATA); - } - } - - @After - public void tearDown() throws DBException { - instance.cleanup(); - } - - /** - * Test of insert method, of class ElasticsearchClient. - */ - @Test - public void testInsert() { - final Status result = instance.insert(MOCK_TABLE, "0", MOCK_DATA); - assertEquals(Status.OK, result); - } - - /** - * Test of delete method, of class ElasticsearchClient. - */ - @Test - public void testDelete() { - final Status result = instance.delete(MOCK_TABLE, "1"); - assertEquals(Status.OK, result); + @Override + DB newDB() { + return new ElasticsearchClient(); } - /** - * Test of read method, of class ElasticsearchClient. - */ - @Test - public void testRead() { - final Set<String> fields = MOCK_DATA.keySet(); - final HashMap<String, ByteIterator> resultParam = new HashMap<>(10); - final Status result = instance.read(MOCK_TABLE, "1", fields, resultParam); - assertEquals(Status.OK, result); - } - - /** - * Test of update method, of class ElasticsearchClient. - */ - @Test - public void testUpdate() { - final HashMap<String, ByteIterator> newValues = new HashMap<>(10); - - for (int i = 1; i <= 10; i++) { - newValues.put("field" + i, new StringByteIterator("newvalue" + i)); - } - - final Status updateResult = instance.update(MOCK_TABLE, "1", newValues); - assertEquals(Status.OK, updateResult); - - // validate that the values changed - final HashMap<String, ByteIterator> resultParam = new HashMap<>(10); - final Status readResult = instance.read(MOCK_TABLE, "1", MOCK_DATA.keySet(), resultParam); - assertEquals(Status.OK, readResult); - - for (int i = 1; i <= 10; i++) { - assertEquals("newvalue" + i, resultParam.get("field" + i).toString()); - } - - } - - /** - * Test of scan method, of class ElasticsearchClient. - */ - @Test - public void testScan() { - final int recordcount = 10; - final Set<String> fields = MOCK_DATA.keySet(); - final Vector<HashMap<String, ByteIterator>> resultParam = new Vector<>(10); - final Status result = instance.scan(MOCK_TABLE, "1", recordcount, fields, resultParam); - assertEquals(Status.OK, result); - - assertEquals(10, resultParam.size()); - } } diff --git a/elasticsearch5/src/test/java/com/yahoo/ycsb/db/elasticsearch5/ElasticsearchIntegTestBase.java b/elasticsearch5/src/test/java/com/yahoo/ycsb/db/elasticsearch5/ElasticsearchIntegTestBase.java new file mode 100644 index 0000000000000000000000000000000000000000..dda766339d02cc2f96261f047d219bd6b4ac56e5 --- /dev/null +++ b/elasticsearch5/src/test/java/com/yahoo/ycsb/db/elasticsearch5/ElasticsearchIntegTestBase.java @@ -0,0 +1,119 @@ +package com.yahoo.ycsb.db.elasticsearch5; + +import com.yahoo.ycsb.ByteIterator; +import com.yahoo.ycsb.Client; +import com.yahoo.ycsb.DB; +import com.yahoo.ycsb.DBException; +import com.yahoo.ycsb.Status; +import com.yahoo.ycsb.StringByteIterator; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.util.HashMap; +import java.util.Properties; +import java.util.Set; +import java.util.Vector; + +import static org.junit.Assert.assertEquals; + +public abstract class ElasticsearchIntegTestBase { + + private DB db; + + abstract DB newDB(); + + private final static HashMap<String, ByteIterator> MOCK_DATA; + private final static String MOCK_TABLE = "MOCK_TABLE"; + + static { + MOCK_DATA = new HashMap<>(10); + for (int i = 1; i <= 10; i++) { + MOCK_DATA.put("field" + i, new StringByteIterator("value" + i)); + } + } + + @Before + public void setUp() throws DBException { + final Properties props = new Properties(); + props.put("es.new_index", "true"); + props.put("es.setting.cluster.name", "test"); + db = newDB(); + db.setProperties(props); + db.init(); + for (int i = 0; i < 16; i++) { + db.insert(MOCK_TABLE, Integer.toString(i), MOCK_DATA); + } + } + + @After + public void tearDown() throws DBException { + db.cleanup(); + } + + @Test + public void testInsert() { + final Status result = db.insert(MOCK_TABLE, "0", MOCK_DATA); + assertEquals(Status.OK, result); + } + + /** + * Test of delete method, of class ElasticsearchClient. + */ + @Test + public void testDelete() { + final Status result = db.delete(MOCK_TABLE, "1"); + assertEquals(Status.OK, result); + } + + /** + * Test of read method, of class ElasticsearchClient. + */ + @Test + public void testRead() { + final Set<String> fields = MOCK_DATA.keySet(); + final HashMap<String, ByteIterator> resultParam = new HashMap<>(10); + final Status result = db.read(MOCK_TABLE, "1", fields, resultParam); + assertEquals(Status.OK, result); + } + + /** + * Test of update method, of class ElasticsearchClient. + */ + @Test + public void testUpdate() { + final HashMap<String, ByteIterator> newValues = new HashMap<>(10); + + for (int i = 1; i <= 10; i++) { + newValues.put("field" + i, new StringByteIterator("newvalue" + i)); + } + + final Status updateResult = db.update(MOCK_TABLE, "1", newValues); + assertEquals(Status.OK, updateResult); + + // validate that the values changed + final HashMap<String, ByteIterator> resultParam = new HashMap<>(10); + final Status readResult = db.read(MOCK_TABLE, "1", MOCK_DATA.keySet(), resultParam); + assertEquals(Status.OK, readResult); + + for (int i = 1; i <= 10; i++) { + assertEquals("newvalue" + i, resultParam.get("field" + i).toString()); + } + + } + + /** + * Test of scan method, of class ElasticsearchClient. + */ + @Test + public void testScan() { + final int recordcount = 10; + final Set<String> fields = MOCK_DATA.keySet(); + final Vector<HashMap<String, ByteIterator>> resultParam = new Vector<>(10); + final Status result = db.scan(MOCK_TABLE, "1", recordcount, fields, resultParam); + assertEquals(Status.OK, result); + + assertEquals(10, resultParam.size()); + } + +} diff --git a/elasticsearch5/src/test/java/com/yahoo/ycsb/db/elasticsearch5/ElasticsearchRestClientIT.java b/elasticsearch5/src/test/java/com/yahoo/ycsb/db/elasticsearch5/ElasticsearchRestClientIT.java index 1173b02281644a5f77fb13344f444be47c68b90b..10b164b0421b16a270444a26754d07b29de38ac5 100644 --- a/elasticsearch5/src/test/java/com/yahoo/ycsb/db/elasticsearch5/ElasticsearchRestClientIT.java +++ b/elasticsearch5/src/test/java/com/yahoo/ycsb/db/elasticsearch5/ElasticsearchRestClientIT.java @@ -17,116 +17,13 @@ package com.yahoo.ycsb.db.elasticsearch5; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.Status; -import com.yahoo.ycsb.StringByteIterator; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import com.yahoo.ycsb.DB; -import java.io.IOException; -import java.util.HashMap; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; +public class ElasticsearchRestClientIT extends ElasticsearchIntegTestBase { -import static org.junit.Assert.assertEquals; - -public class ElasticsearchRestClientIT { - - private final ElasticsearchRestClient instance = new ElasticsearchRestClient(); - private final static HashMap<String, ByteIterator> MOCK_DATA; - private final static String MOCK_TABLE = "MOCK_TABLE"; - - static { - MOCK_DATA = new HashMap<>(10); - for (int i = 1; i <= 10; i++) { - MOCK_DATA.put("field" + i, new StringByteIterator("value" + i)); - } - } - - @Before - public void setUp() throws DBException, IOException { - final Properties props = new Properties(); - props.put("es.new_index", "true"); - instance.setProperties(props); - instance.init(); - for (int i = 0; i < 16; i++) { - instance.insert(MOCK_TABLE, Integer.toString(i), MOCK_DATA); - } - } - - @After - public void tearDown() throws DBException { - instance.cleanup(); - } - - /** - * Test of insert method, of class {@link ElasticsearchRestClient}. - */ - @Test - public void testInsert() { - final Status result = instance.insert(MOCK_TABLE, "0", MOCK_DATA); - assertEquals(Status.OK, result); - } - - /** - * Test of delete method, of class {@link ElasticsearchRestClient}. - */ - @Test - public void testDelete() { - final Status result = instance.delete(MOCK_TABLE, "1"); - assertEquals(Status.OK, result); + @Override + DB newDB() { + return new ElasticsearchRestClient(); } - /** - * Test of read method, of class {@link ElasticsearchRestClient}. - */ - @Test - public void testRead() { - final Set<String> fields = MOCK_DATA.keySet(); - final HashMap<String, ByteIterator> resultParam = new HashMap<>(10); - final Status result = instance.read(MOCK_TABLE, "1", fields, resultParam); - assertEquals(Status.OK, result); - } - - /** - * Test of update method, of class {@link ElasticsearchRestClient}. - */ - @Test - public void testUpdate() { - final HashMap<String, ByteIterator> newValues = new HashMap<>(10); - - for (int i = 1; i <= 10; i++) { - newValues.put("field" + i, new StringByteIterator("newvalue" + i)); - } - - final Status updateResult = instance.update(MOCK_TABLE, "1", newValues); - assertEquals(Status.OK, updateResult); - - // validate that the values changed - final HashMap<String, ByteIterator> resultParam = new HashMap<>(10); - final Status readResult = instance.read(MOCK_TABLE, "1", MOCK_DATA.keySet(), resultParam); - assertEquals(Status.OK, readResult); - - for (int i = 1; i <= 10; i++) { - assertEquals("newvalue" + i, resultParam.get("field" + i).toString()); - } - - } - - /** - * Test of scan method, of class {@link ElasticsearchRestClient}. - */ - @Test - public void testScan() { - final int recordcount = 10; - final Set<String> fields = MOCK_DATA.keySet(); - final Vector<HashMap<String, ByteIterator>> resultParam = new Vector<>(10); - final Status result = instance.scan(MOCK_TABLE, "1", recordcount, fields, resultParam); - assertEquals(Status.OK, result); - - assertEquals(10, resultParam.size()); - } }