public class org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting extends org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest
{
public void <init>()
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest: void <init>()>();
return;
}
public void simpleQuoting()
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("Hello", "The", "World", "\'Hello\',\'The\',\'World\'");
return;
}
public void ifQuotesAreUsedThereCanBeWhitespaceAroundDelimiters()
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("Hello", "The", "World", "\'Hello\'\t , \'The\' ,  \'World\'");
return;
}
public void ifQuotesAreNotUsedWhitespaceAroundDelimitersIsPartOfValue()
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("Hello\t", " The ", "  World", "Hello\t, The ,  World");
return;
}
public void ifQuotesAreNotUsedAndOnlyWhitespaceIsBetweenDelimitersTheWhitespaceIsTheValue()
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("Hello", " ", "World", "Hello, ,World");
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("Hello", "  ", "World", "Hello,  ,World");
return;
}
public void quoteInsideValueIsJustAChar()
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("Hello \'World\'", "and", "Bye", "Hello \'World\',\'and\',\'Bye\'");
return;
}
public void delimiterInQuotesIsPartOfValue()
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("Hello, World", "and", "Bye", "\'Hello, World\',\'and\',\'Bye\'");
return;
}
public void eolInQuotesIsPartOfValue()
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("Hello\r\nWorld", "and", "Bye", "\'Hello\r\nWorld\',\'and\',\'Bye\'");
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("Hello\nWorld", "and", "Bye", "\'Hello\nWorld\',\'and\',\'Bye\'");
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("Hello\rWorld", "and", "Bye", "\'Hello\rWorld\',\'and\',\'Bye\'");
return;
}
public void twoQuotesIsAnEscapedQuote()
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("\'", "X", "Y", "\'\'\'\',\'X\',\'Y\'");
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("\'\'", "X", "Y", "\'\'\'\'\'\',\'X\',\'Y\'");
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTest(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("Hello, \'World\'", "and", "Bye", "\'Hello, \'\'World\'\'\',\'and\',\'Bye\'");
return;
}
public void quotedFieldShouldBeFollowedByDelimiter()
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTestInvalid(java.lang.String,java.lang.String)>("Unexpected text after closing quote in value 1 at line 2", "\'Hello\' World,\'Bye\'");
return;
}
public void quotesShouldBeTerminated()
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void runTestInvalid(java.lang.String,java.lang.String)>("Unclosed quotes in value 2 at line 2", "\'Hello\',\'W");
return;
}
private void runTest(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
{
java.lang.String[] v;
org.finos.legend.engine.external.format.flatdata.metamodel.FlatData v;
int v;
java.lang.String v, v, v, v, v, v, v, v;
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
java.util.List v;
java.lang.Object v, v, v, v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: org.finos.legend.engine.external.format.flatdata.metamodel.FlatData parseFlatData(java.lang.String)>("section default: DelimitedWithHeadings\n{\n  scope.untilEof;\n  delimiter       : \',\';\n  quoteChar       : \'\\\'\';\n  nullString      : \'\';\n\n  Record\n  {\n     FIELD1 : STRING;\n     FIELD2 : STRING;\n     FIELD3 : STRING;\n  }\n}\n");
v = newarray (java.lang.String)[2];
v[0] = "FIELD1,FIELD2,FIELD3";
v[1] = v;
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: java.lang.String data(java.lang.String,java.lang.String[])>("\n", v);
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: java.util.List deserialize(java.lang.Class,org.finos.legend.engine.external.format.flatdata.metamodel.FlatData,java.lang.String)>(class "Lorg/finos/legend/engine/external/format/flatdata/grammar/driver/TestDelimitedQuoting$Data;", v, v);
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.Assert: void assertEquals(long,long)>(1L, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void assertNoDefects(org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked)>(v);
v = interfaceinvoke v.<org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked: java.lang.Object getValue()>();
v = v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting$Data: java.lang.String field1>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked: java.lang.Object getValue()>();
v = v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting$Data: java.lang.String field2>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked: java.lang.Object getValue()>();
v = v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting$Data: java.lang.String field3>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
return;
}
private void runTestInvalid(java.lang.String, java.lang.String)
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting v;
java.lang.String[] v;
java.util.List v;
org.finos.legend.engine.external.format.flatdata.metamodel.FlatData v;
int v;
java.lang.Object v;
java.lang.String v, v, v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: org.finos.legend.engine.external.format.flatdata.metamodel.FlatData parseFlatData(java.lang.String)>("section default: DelimitedWithHeadings\n{\n  scope.untilEof;\n  delimiter       : \',\';\n  quoteChar       : \'\\\'\';\n  nullString      : \'\';\n\n  Record\n  {\n     FIELD1 : STRING;\n     FIELD2 : STRING;\n  }\n}\n");
v = newarray (java.lang.String)[2];
v[0] = "FIELD1,FIELD2";
v[1] = v;
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: java.lang.String data(java.lang.String,java.lang.String[])>("\n", v);
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: java.util.List deserialize(java.lang.Class,org.finos.legend.engine.external.format.flatdata.metamodel.FlatData,java.lang.String)>(class "Lorg/finos/legend/engine/external/format/flatdata/grammar/driver/TestDelimitedQuoting$Data;", v, v);
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.Assert: void assertEquals(long,long)>(1L, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedQuoting: void assertHasDefect(java.lang.String,java.lang.String,org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked)>("Critical", v, v);
return;
}
}