package com.linkedin.data.schema.grammar; import com.linkedin.data.grammar.PdlParser; import java.math.BigDecimal; import java.util.Arrays; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; public class TestPdlParseUtils { @Test public void testExtractMarkdown() { String extracted = PdlParseUtils.extractMarkdown( " /**\n" + " * The quick\n" + " * brown fox\n" + " */\n"); assertEquals(extracted, "The quick\n brown fox"); } @Test public void testUnescapeDocstring() { String extracted = PdlParseUtils.extractMarkdown( " /**\n" + " * <div>Some html</div>\n" + " * /* A comment */\n" + " */\n"); assertEquals(extracted, "<div>Some html</div>\n" + " /* A comment */"); } @Test public void testExtractString() { String extracted = PdlParseUtils.extractString("\"A string with escape chars: \\n\\t\\f\""); assertEquals(extracted, "A string with escape chars: \n\t\f"); } @Test public void testStripMargin() { String docString = PdlParseUtils.stripMargin( " * The quick\n" + " * brown fox\n"); assertEquals(docString, " The quick\n" + " brown fox\n"); } @Test public void testUnescapeIdentifier() { assertEquals(PdlParseUtils.unescapeIdentifier("`record`"), "record"); assertEquals(PdlParseUtils.unescapeIdentifier("notEscaped"), "notEscaped"); } @Test public void testJoin() { PdlParser.IdentifierContext a = new PdlParser.IdentifierContext(null, 0); a.value = "a"; PdlParser.IdentifierContext b = new PdlParser.IdentifierContext(null, 0); b.value = "b"; assertEquals(PdlParseUtils.join(Arrays.asList(a, b)), "a.b"); } @Test public void testToNumber() { Number n1 = PdlParseUtils.toNumber("1"); assertEquals(n1.getClass(), Integer.class); assertEquals(n1.intValue(), 1); Number n10000000000 = PdlParseUtils.toNumber("10000000000"); assertEquals(n10000000000.getClass(), Long.class); assertEquals(n10000000000.longValue(), 10000000000L); Number n1_0 = PdlParseUtils.toNumber("1.0"); assertEquals(n1_0.getClass(), Double.class); assertEquals(n1_0.doubleValue(), 1.0d, 0.001d); Number n1_0e10 = PdlParseUtils.toNumber("1234567.1e1000"); assertEquals(n1_0e10.getClass(), BigDecimal.class); } }