Coverage Summary for Class: TestEscapedValues (org.umlg.sqlg.test.properties)
Class |
Method, %
|
Branch, %
|
Line, %
|
TestEscapedValues |
100%
(5/5)
|
100%
(10/10)
|
100%
(30/30)
|
TestEscapedValues$1 |
100%
(1/1)
|
100%
(2/2)
|
Total |
100%
(6/6)
|
100%
(10/10)
|
100%
(32/32)
|
package org.umlg.sqlg.test.properties;
import org.apache.tinkerpop.gremlin.process.traversal.P;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.Test;
import org.umlg.sqlg.test.BaseTest;
import java.util.LinkedHashMap;
import java.util.List;
/**
* Test values that are escaped by backslashes and that may impact SQL
*
* @author jpmoresmau
*/
public class TestEscapedValues extends BaseTest {
@Test
public void testEscapedValuesSingleQuery(){
String[] vals = new String[] { "x-y", "x\ny", "x\"y", "x\\y", "x\\ny", "x\\\"y", "'x'y'" };
for (String s : vals) {
this.sqlgGraph.addVertex("Escaped").property("name", s);
}
this.sqlgGraph.tx().commit();
for (String s : vals){
Assert.assertEquals(s,1L,this.sqlgGraph.traversal().V().has("name",s).count().next().longValue());
Assert.assertEquals(s,s,this.sqlgGraph.traversal().V().has("name",s).values("name").next());
}
}
@Test
public void testEscapedValuesWithinQuery(){
String[] vals = new String[] { "x-y", "x\ny", "x\"y", "x\\y", "x\\ny", "x\\\"y", "'x'y'" };
for (String s : vals) {
this.sqlgGraph.addVertex("Escaped").property("name", s);
}
this.sqlgGraph.tx().commit();
Assert.assertEquals(vals.length,1L,this.sqlgGraph.traversal().V().has("name", P.within(vals)).count().next().longValue());
}
@Test
public void testEscapedValuesSingleQueryBatch() {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsBatchMode());
this.sqlgGraph.tx().normalBatchModeOn();
String[] vals = new String[]{"x-y", "x\ny", "x\"y", "x\\y", "x\\ny", "x\\\"y", "'x'y'", "x,y"};
for (String s : vals) {
this.sqlgGraph.addVertex("Escaped").property("name", s);
}
this.sqlgGraph.tx().commit();
for (String s : vals) {
Assert.assertEquals(s, 1L, this.sqlgGraph.traversal().V().has("name", s).count().next().longValue());
Assert.assertEquals(s, s, this.sqlgGraph.traversal().V().has("name", s).values("name").next());
}
}
@Test
public void testEscapedValuesSingleQueryBatch2() {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsStreamingBatchMode());
this.sqlgGraph.tx().streamingBatchModeOn();
this.sqlgGraph.streamVertex("Escaped", new LinkedHashMap<String, Object>() {{
put("value", new String[]{" {-45.53}H - LINK "});
}});
this.sqlgGraph.tx().commit();
List<String[]> result = this.sqlgGraph.traversal().V().<String[]>values("value").toList();
Assert.assertEquals(1, result.size());
Assert.assertEquals(1, result.get(0).length);
Assert.assertEquals(" {-45.53}H - LINK ", result.get(0)[0]);
}
}