package org.xenei.jdbc4sparql.sparql.parser.jsqlparser;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
public class RegexNodeValueTest {
private RegexNodeValue rnv;
private static final String SLASH = "\\";
@Test
public void testLeftSq() {
rnv = RegexNodeValue.create("x[x");
assertFalse(rnv.isWildcard());
assertEquals("x[x", rnv.asString());
rnv = RegexNodeValue.create("x[x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + "[x.$", rnv.asString());
}
@Test
public void testLeftRight() {
rnv = RegexNodeValue.create("x]x");
assertFalse(rnv.isWildcard());
assertEquals("x]x", rnv.asString());
rnv = RegexNodeValue.create("x]x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + "]x.$", rnv.asString());
}
@Test
public void testCarat() {
rnv = RegexNodeValue.create("x^x");
assertFalse(rnv.isWildcard());
assertEquals("x^x", rnv.asString());
rnv = RegexNodeValue.create("x^x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + "^x.$", rnv.asString());
}
@Test
public void testDot() {
rnv = RegexNodeValue.create("x.x");
assertFalse(rnv.isWildcard());
assertEquals("x.x", rnv.asString());
rnv = RegexNodeValue.create("x.x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + ".x.$", rnv.asString());
}
@Test
public void testBackSlash() {
rnv = RegexNodeValue.create("x" + SLASH + "x");
assertFalse(rnv.isWildcard());
assertEquals("x" + SLASH + "x", rnv.asString());
rnv = RegexNodeValue.create("x" + SLASH + "x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + SLASH + "x.$", rnv.asString());
}
@Test
public void testQuestion() {
rnv = RegexNodeValue.create("x?x");
assertFalse(rnv.isWildcard());
assertEquals("x?x", rnv.asString());
rnv = RegexNodeValue.create("x?x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + "?x.$", rnv.asString());
}
@Test
public void testAsterisk() {
rnv = RegexNodeValue.create("x*x");
assertFalse(rnv.isWildcard());
assertEquals("x*x", rnv.asString());
rnv = RegexNodeValue.create("x*x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + "*x.$", rnv.asString());
}
@Test
public void testPlus() {
rnv = RegexNodeValue.create("x+x");
assertFalse(rnv.isWildcard());
assertEquals("x+x", rnv.asString());
rnv = RegexNodeValue.create("x+x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + "+x.$", rnv.asString());
}
@Test
public void testLeftCurley() {
rnv = RegexNodeValue.create("x{x");
assertFalse(rnv.isWildcard());
assertEquals("x{x", rnv.asString());
rnv = RegexNodeValue.create("x{x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + "{x.$", rnv.asString());
}
@Test
public void testRightCurley() {
rnv = RegexNodeValue.create("x}x");
assertFalse(rnv.isWildcard());
assertEquals("x}x", rnv.asString());
rnv = RegexNodeValue.create("x}x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + "}x.$", rnv.asString());
}
@Test
public void testLeftParen() {
rnv = RegexNodeValue.create("x(x");
assertFalse(rnv.isWildcard());
assertEquals("x(x", rnv.asString());
rnv = RegexNodeValue.create("x(x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + "(x.$", rnv.asString());
}
@Test
public void testRightParen() {
rnv = RegexNodeValue.create("x)x");
assertFalse(rnv.isWildcard());
assertEquals("x)x", rnv.asString());
rnv = RegexNodeValue.create("x)x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + ")x.$", rnv.asString());
}
@Test
public void testBar() {
rnv = RegexNodeValue.create("x|x");
assertFalse(rnv.isWildcard());
assertEquals("x|x", rnv.asString());
rnv = RegexNodeValue.create("x|x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + "|x.$", rnv.asString());
}
@Test
public void testDollar() {
rnv = RegexNodeValue.create("x$x");
assertFalse(rnv.isWildcard());
assertEquals("x$x", rnv.asString());
rnv = RegexNodeValue.create("x$x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + "$x.$", rnv.asString());
}
@Test
public void testUnderbar() {
rnv = RegexNodeValue.create("x_x");
assertTrue(rnv.isWildcard());
assertEquals("^x.x$", rnv.asString());
}
@Test
public void testPercent() {
rnv = RegexNodeValue.create("x%x");
assertTrue(rnv.isWildcard());
assertEquals("^x(.+)x$", rnv.asString());
}
@Test
public void testEscUnderbar() {
rnv = RegexNodeValue.create("x" + SLASH + "_x");
assertFalse(rnv.isWildcard());
assertEquals("x_x", rnv.asString());
rnv = RegexNodeValue.create("x" + SLASH + "_x_");
assertTrue(rnv.isWildcard());
assertEquals("^x_x.$", rnv.asString());
}
@Test
public void testEscPercent() {
rnv = RegexNodeValue.create("x" + SLASH + "%x");
assertFalse(rnv.isWildcard());
assertEquals("x%x", rnv.asString());
rnv = RegexNodeValue.create("x" + SLASH + "%x.");
assertFalse(rnv.isWildcard());
assertEquals("x%x.", rnv.asString());
}
@Test
public void testDblEscPercent() {
rnv = RegexNodeValue.create("x" + SLASH + SLASH + "%x");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + SLASH + SLASH + SLASH + "(.+)x$",
rnv.asString());
}
@Test
public void testDblEscCarat() {
rnv = RegexNodeValue.create("x" + SLASH + SLASH + "^x");
assertFalse(rnv.isWildcard());
assertEquals("x" + SLASH + SLASH + "^x", rnv.asString());
rnv = RegexNodeValue.create("x" + SLASH + SLASH + "^x_");
assertTrue(rnv.isWildcard());
assertEquals("^x" + SLASH + SLASH + SLASH + SLASH + SLASH + "^x.$",
rnv.asString());
}
}