public class org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn extends org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest
{
public void <init>()
{
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn;
specialinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest: void <init>()>();
return;
}
public void byDefaultOptionalColumnsCanMeMissing()
{
java.lang.Double v, v;
java.lang.String[] v;
org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue[] v, v;
org.finos.legend.engine.external.format.flatdata.metamodel.FlatData v;
java.lang.String v, v, v;
java.util.function.Consumer v;
java.util.List v, v, v;
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn v;
org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue v, v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn;
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: org.finos.legend.engine.external.format.flatdata.metamodel.FlatData parseFlatData(java.lang.String)>("section default: DelimitedWithHeadings\n{\n  scope.untilEof;\n  delimiter       : \',\';\n  nullString      : \'\';\n\n  Record\n  {\n    NAME          : STRING;\n    WEIGHT        : DECIMAL(optional);\n  }\n}\n");
v = newarray (java.lang.String)[3];
v[0] = "NAME";
v[1] = "John";
v[2] = "Will";
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: java.lang.String data(java.lang.String,java.lang.String[])>("\n", v);
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: 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/TestDelimitedRequiredColumn$Person;", v, v);
v = staticinvoke <org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn$assertNoDefects__30: java.util.function.Consumer bootstrap$(org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn)>(v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
v = newarray (org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue)[1];
v = staticinvoke <org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest: org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue rValue(java.lang.Object,java.lang.String)>("NAME", "John");
v[0] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: void assertSource(long,long,java.lang.String,java.util.List,org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked)>(1L, 2L, "John", v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
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.TestDelimitedRequiredColumn$Person: java.lang.String name>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>("John", v);
v = v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn$Person: java.lang.Double weight>;
staticinvoke <org.junit.Assert: void assertNull(java.lang.Object)>(v);
v = newarray (org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue)[1];
v = staticinvoke <org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest: org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue rValue(java.lang.Object,java.lang.String)>("NAME", "Will");
v[0] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: void assertSource(long,long,java.lang.String,java.util.List,org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked)>(2L, 3L, "Will", v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
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.TestDelimitedRequiredColumn$Person: java.lang.String name>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>("Will", v);
v = v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn$Person: java.lang.Double weight>;
staticinvoke <org.junit.Assert: void assertNull(java.lang.Object)>(v);
return;
}
public void whenSpecifiedColumnsCanBeRequired()
{
java.lang.String[] v;
java.util.List v;
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn v;
org.finos.legend.engine.external.format.flatdata.metamodel.FlatData v;
int v;
java.lang.Object v, v;
java.lang.String v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn;
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: org.finos.legend.engine.external.format.flatdata.metamodel.FlatData parseFlatData(java.lang.String)>("section default: DelimitedWithHeadings\n{\n  scope.untilEof;\n  delimiter       : \',\';\n  nullString      : \'\';\n  modelledColumnsMustBePresent;\n\n  Record\n  {\n    NAME   : STRING;\n    WEIGHT : DECIMAL;\n  }\n}\n");
v = newarray (java.lang.String)[3];
v[0] = "NAME";
v[1] = "John";
v[2] = "Will";
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: java.lang.String data(java.lang.String,java.lang.String[])>("\n", v);
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: 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/TestDelimitedRequiredColumn$Person;", v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: void assertHasDefect(java.lang.String,java.lang.String,org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked)>("Critical", "Heading WEIGHT missing for required column", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: void assertHasDefect(java.lang.String,java.lang.String,org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked)>("Critical", "Header row is invalid. Skipping all data in this section.", v);
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.Assert: void assertEquals(long,long)>(1L, v);
return;
}
public void whenPresentRequiredFieldsCanBeOptional()
{
java.lang.Double v, v;
java.lang.String[] v;
org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue[] v, v;
org.finos.legend.engine.external.format.flatdata.metamodel.FlatData v;
java.lang.String v, v, v;
double v;
java.util.function.Consumer v;
java.util.List v, v, v;
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn v;
org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue v, v, v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn;
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: org.finos.legend.engine.external.format.flatdata.metamodel.FlatData parseFlatData(java.lang.String)>("section default: DelimitedWithHeadings\n{\n  scope.untilEof;\n  delimiter       : \',\';\n  nullString      : \'\';\n  modelledColumnsMustBePresent;\n\n  Record\n  {\n    NAME   : STRING;\n    WEIGHT : DECIMAL(optional);\n  }\n}\n");
v = newarray (java.lang.String)[3];
v[0] = "NAME,WEIGHT";
v[1] = "John,75";
v[2] = "Will";
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: java.lang.String data(java.lang.String,java.lang.String[])>("\n", v);
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: 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/TestDelimitedRequiredColumn$Person;", v, v);
v = staticinvoke <org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn$assertNoDefects__31: java.util.function.Consumer bootstrap$(org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn)>(v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
v = newarray (org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue)[2];
v = staticinvoke <org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest: org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue rValue(java.lang.Object,java.lang.String)>("NAME", "John");
v[0] = v;
v = staticinvoke <org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest: org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue rValue(java.lang.Object,java.lang.String)>("WEIGHT", "75");
v[1] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: void assertSource(long,long,java.lang.String,java.util.List,org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked)>(1L, 2L, "John,75", v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
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.TestDelimitedRequiredColumn$Person: java.lang.String name>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>("John", v);
v = v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn$Person: java.lang.Double weight>;
v = virtualinvoke v.<java.lang.Double: double doubleValue()>();
staticinvoke <org.junit.Assert: void assertEquals(double,double,double)>(75.0, v, 1.0E-8);
v = newarray (org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue)[1];
v = staticinvoke <org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest: org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue rValue(java.lang.Object,java.lang.String)>("NAME", "Will");
v[0] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: void assertSource(long,long,java.lang.String,java.util.List,org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked)>(2L, 3L, "Will", v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
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.TestDelimitedRequiredColumn$Person: java.lang.String name>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>("Will", v);
v = v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn$Person: java.lang.Double weight>;
staticinvoke <org.junit.Assert: void assertNull(java.lang.Object)>(v);
return;
}
public void byDefaultUnmodelledColumnsCanBePresent()
{
java.lang.String[] v;
org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue[] v, v;
org.finos.legend.engine.external.format.flatdata.metamodel.FlatData v;
java.lang.String v, v, v;
java.util.function.Consumer v;
java.util.List v, v, v;
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn v;
org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue v, v, v, v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn;
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: org.finos.legend.engine.external.format.flatdata.metamodel.FlatData parseFlatData(java.lang.String)>("section default: DelimitedWithHeadings\n{\n  scope.untilEof;\n  delimiter       : \',\';\n  nullString      : \'\';\n\n  Record\n  {\n    NAME : STRING;\n  }\n}\n");
v = newarray (java.lang.String)[3];
v[0] = "NAME,HOBBY";
v[1] = "John,Reading";
v[2] = "Will,Singing";
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: java.lang.String data(java.lang.String,java.lang.String[])>("\n", v);
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: 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/TestDelimitedRequiredColumn$Person;", v, v);
v = staticinvoke <org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn$assertNoDefects__32: java.util.function.Consumer bootstrap$(org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn)>(v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
v = newarray (org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue)[2];
v = staticinvoke <org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest: org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue rValue(java.lang.Object,java.lang.String)>("NAME", "John");
v[0] = v;
v = staticinvoke <org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest: org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue rValue(java.lang.Object,java.lang.String)>("HOBBY", "Reading");
v[1] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: void assertSource(long,long,java.lang.String,java.util.List,org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked)>(1L, 2L, "John,Reading", v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
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.TestDelimitedRequiredColumn$Person: java.lang.String name>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>("John", v);
v = newarray (org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue)[2];
v = staticinvoke <org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest: org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue rValue(java.lang.Object,java.lang.String)>("NAME", "Will");
v[0] = v;
v = staticinvoke <org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest: org.finos.legend.engine.external.format.flatdata.grammar.driver.AbstractDriverTest$ExpectedRecordValue rValue(java.lang.Object,java.lang.String)>("HOBBY", "Singing");
v[1] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: void assertSource(long,long,java.lang.String,java.util.List,org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked)>(2L, 3L, "Will,Singing", v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
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.TestDelimitedRequiredColumn$Person: java.lang.String name>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>("Will", v);
return;
}
public void byUnmodelledColumnsCanBeProhibited()
{
java.lang.String[] v;
java.util.List v;
org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn v;
org.finos.legend.engine.external.format.flatdata.metamodel.FlatData v;
int v;
java.lang.Object v, v;
java.lang.String v;
v := @this: org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn;
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: org.finos.legend.engine.external.format.flatdata.metamodel.FlatData parseFlatData(java.lang.String)>("section default: DelimitedWithHeadings\n{\n  scope.untilEof;\n  delimiter       : \',\';\n  nullString      : \'\';\n  onlyModelledColumnsAllowed;\n\n  Record\n  {\n    NAME : STRING;\n  }\n}\n");
v = newarray (java.lang.String)[3];
v[0] = "NAME,HOBBY";
v[1] = "John,Reading";
v[2] = "Will,Singing";
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: java.lang.String data(java.lang.String,java.lang.String[])>("\n", v);
v = virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: 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/TestDelimitedRequiredColumn$Person;", v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: void assertHasDefect(java.lang.String,java.lang.String,org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked)>("Critical", "Unexpected heading HOBBY", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
virtualinvoke v.<org.finos.legend.engine.external.format.flatdata.grammar.driver.TestDelimitedRequiredColumn: void assertHasDefect(java.lang.String,java.lang.String,org.finos.legend.engine.plan.dependencies.domain.dataQuality.IChecked)>("Critical", "Header row is invalid. Skipping all data in this section.", v);
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.Assert: void assertEquals(long,long)>(1L, v);
return;
}
}