Coverage Summary for Class: TestBatchNormalPrimitiveArrays (org.umlg.sqlg.test.batch)
Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
TestBatchNormalPrimitiveArrays |
100%
(1/1)
|
100%
(6/6)
|
85.9%
(55/64)
|
93.6%
(73/78)
|
package org.umlg.sqlg.test.batch;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.junit.*;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.umlg.sqlg.test.BaseTest;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.assertArrayEquals;
/**
* Date: 2016/05/22
* Time: 9:09 AM
*/
@RunWith(Parameterized.class)
public class TestBatchNormalPrimitiveArrays extends BaseTest {
@Parameterized.Parameter
public Object value;
@BeforeClass
public static void beforeClass() {
BaseTest.beforeClass();
if (isPostgres()) {
configuration.addProperty("distributed", true);
}
}
@Parameterized.Parameters(name = "{index}: value:{0}")
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{
{new String[]{"asdasd", "asdasd"}},
{new boolean[]{false, true}}, {new Boolean[]{Boolean.TRUE, Boolean.FALSE}}, {new byte[]{(byte) 1, (byte) 2}},
{new short[]{(short) 1, (short) 2}}, {new Short[]{(short) 1, (short) 2}}, {new int[]{1, 1}}, {new Integer[]{1, 1}},
{new long[]{1L, 2L}}, {new Long[]{1L, 2L}}, {new double[]{2D, 1D}}, {new Double[]{2D, 3D}}
});
}
@Before
public void beforeTest() {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsBatchMode());
if (this.value instanceof String[]) {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsStringArrayValues());
}
if (this.value instanceof byte[] || this.value instanceof Byte[]) {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsByteArrayValues());
}
if (this.value instanceof boolean[] || this.value instanceof Boolean[]) {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsBooleanArrayValues());
}
if (this.value instanceof short[] || this.value instanceof Short[]) {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsShortArrayValues());
}
if (this.value instanceof int[] || this.value instanceof Integer[]) {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsIntegerArrayValues());
}
if (this.value instanceof long[] || this.value instanceof Long[]) {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsLongArrayValues());
}
if (this.value instanceof float[] || this.value instanceof Float[]) {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsFloatArrayValues());
}
if (this.value instanceof double[] || this.value instanceof Double[]) {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsDoubleArrayValues());
}
}
@Test
public void testPrimitiveArray() throws InterruptedException {
this.sqlgGraph.tx().normalBatchModeOn();
Vertex a = this.sqlgGraph.addVertex(T.label, "A", "array", this.value);
Vertex b = this.sqlgGraph.addVertex(T.label, "B");
Edge e = a.addEdge("ab", b, "array", this.value);
this.sqlgGraph.tx().commit();
a = this.sqlgGraph.traversal().V(a.id()).next();
Object array = a.value("array");
Class<?> clazz = array.getClass().getComponentType();
test(array, clazz);
e = this.sqlgGraph.traversal().E(e.id()).next();
array = e.value("array");
clazz = array.getClass().getComponentType();
test(array, clazz);
if (this.sqlgGraph1 != null) {
Thread.sleep(SLEEP_TIME);
a = this.sqlgGraph1.traversal().V(a.id()).next();
array = a.value("array");
clazz = array.getClass().getComponentType();
test(array, clazz);
e = this.sqlgGraph1.traversal().E(e.id()).next();
array = e.value("array");
clazz = array.getClass().getComponentType();
test(array, clazz);
}
}
private void test(Object array, Class<?> clazz) {
if (clazz.equals(String.class)) {
assertArrayEquals((String[]) this.value, (String[]) array);
} else if (clazz.equals(boolean.class)) {
assertArrayEquals((boolean[]) this.value, (boolean[]) array);
} else if (clazz.equals(Boolean.class)) {
assertArrayEquals((Boolean[]) this.value, (Boolean[]) array);
} else if (clazz.equals(byte.class)) {
assertArrayEquals((byte[]) this.value, (byte[]) array);
} else if (clazz.equals(Byte.class)) {
assertArrayEquals((Byte[]) this.value, (Byte[]) array);
} else if (clazz.equals(short.class)) {
assertArrayEquals((short[]) this.value, (short[]) array);
} else if (clazz.equals(Short.class)) {
assertArrayEquals((Short[]) this.value, (Short[]) array);
} else if (clazz.equals(int.class)) {
assertArrayEquals((int[]) this.value, (int[]) array);
} else if (clazz.equals(Integer.class)) {
assertArrayEquals((Integer[]) this.value, (Integer[]) array);
} else if (clazz.equals(long.class)) {
assertArrayEquals((long[]) this.value, (long[]) array);
} else if (clazz.equals(Long.class)) {
assertArrayEquals((Long[]) this.value, (Long[]) array);
} else if (clazz.equals(float.class)) {
assertArrayEquals((float[]) this.value, (float[]) array, 0);
} else if (clazz.equals(Float.class)) {
assertArrayEquals((Float[]) this.value, (Float[]) array);
} else if (clazz.equals(double.class)) {
assertArrayEquals((double[]) this.value, (double[]) array, 0);
} else if (clazz.equals(Double.class)) {
assertArrayEquals((Double[]) this.value, (Double[]) array);
} else {
Assert.fail("Unknown type");
}
}
}