public class org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner extends java.lang.Object implements org.finos.legend.engine.testable.extension.TestRunner
{
public static final boolean CLEAN_STAGING_DATA_DEFAULT;
public static final boolean STATS_COLLECTION_DEFAULT;
public static final boolean SCHEMA_EVOLUTION_DEFAULT;
private org.finos.legend.pure.generated.Root_meta_pure_persistence_metamodel_Persistence purePersistence;
private org.finos.legend.engine.plan.execution.PlanExecutor planExecutor;
private java.lang.String pureVersion;
public void <init>(org.finos.legend.pure.generated.Root_meta_pure_persistence_metamodel_Persistence, java.lang.String)
{
org.finos.legend.pure.generated.Root_meta_pure_persistence_metamodel_Persistence v;
org.finos.legend.engine.plan.execution.PlanExecutor v;
java.lang.String v;
org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner v;
v := @this: org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner;
v := @parameter: org.finos.legend.pure.generated.Root_meta_pure_persistence_metamodel_Persistence;
v := @parameter: java.lang.String;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner: org.finos.legend.pure.generated.Root_meta_pure_persistence_metamodel_Persistence purePersistence> = v;
v = staticinvoke <org.finos.legend.engine.plan.execution.PlanExecutor: org.finos.legend.engine.plan.execution.PlanExecutor newPlanExecutorWithAvailableStoreExecutors()>();
v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner: org.finos.legend.engine.plan.execution.PlanExecutor planExecutor> = v;
v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner: java.lang.String pureVersion> = v;
return;
}
public org.finos.legend.engine.protocol.pure.v.model.test.result.TestResult executeAtomicTest(org.finos.legend.pure.generated.Root_meta_pure_test_AtomicTest, org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel, org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData)
{
java.sql.Connection v;
org.eclipse.collections.api.block.predicate.Predicate v;
org.finos.legend.engine.protocol.pure.v.model.test.assertion.status.AssertPass v;
org.finos.legend.pure.generated.Root_meta_pure_persistence_metamodel_Persistence v, v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData v;
boolean v, v, v, v, v, v;
org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel v;
java.util.function.Predicate v;
java.util.Set v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.persister.Persister v;
java.lang.Exception v;
java.util.List v, v, v, v, v;
java.util.stream.Stream v, v;
org.finos.legend.engine.testable.persistence.extension.PersistenceTestH2Connection v;
java.util.Optional v;
java.lang.Throwable v;
java.lang.Object[] v;
java.util.ArrayList v;
int v, v;
java.lang.Boolean v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v;
java.lang.String v, v, v, v, v, v, v;
org.finos.legend.engine.testable.persistence.assertion.PersistenceTestAssertionEvaluator v;
org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.TestData v;
java.lang.UnsupportedOperationException v;
org.finos.legend.pure.generated.Root_meta_pure_test_AtomicTest v;
java.util.Iterator v, v;
org.finos.legend.engine.protocol.pure.v.model.valueSpecification.raw.classInstance.path.Path v;
org.finos.legend.engine.protocol.pure.v.model.test.result.TestError v;
java.lang.Object v, v, v, v, v, v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.service.output.ServiceOutputTarget v;
v := @this: org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner;
v := @parameter: org.finos.legend.pure.generated.Root_meta_pure_test_AtomicTest;
v := @parameter: org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData;
v = virtualinvoke v.<org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData: java.util.List getElementsOfType(java.lang.Class)>(class "Lorg/finos/legend/engine/protocol/pure/v1/model/packageableElement/persistence/Persistence;");
v = staticinvoke <org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner$lambda_executeAtomicTest_80e22726_1__35: org.eclipse.collections.api.block.predicate.Predicate bootstrap$(org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner,org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel)>(v, v);
v = staticinvoke <org.eclipse.collections.impl.utility.ListIterate: java.lang.Object detect(java.util.List,org.eclipse.collections.api.block.predicate.Predicate)>(v, v);
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence: java.util.List tests>;
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner$lambda_executeAtomicTest_0__36: java.util.function.Predicate bootstrap$(org.finos.legend.pure.generated.Root_meta_pure_test_AtomicTest)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.Optional findFirst()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.PersistenceTest: org.finos.legend.engine.protocol.pure.v.model.valueSpecification.raw.classInstance.path.Path graphFetchPath>;
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.PersistenceTest: java.util.List testBatches>;
v = new org.finos.legend.engine.testable.persistence.extension.PersistenceTestH2Connection;
specialinvoke v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestH2Connection: void <init>()>();
v = virtualinvoke v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestH2Connection: java.sql.Connection getConnection()>();
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence: org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.persister.Persister persister>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
specialinvoke v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner: void validatePersistenceSpec(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence)>(v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = null;
if v == 0 goto label;
v = v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner: org.finos.legend.pure.generated.Root_meta_pure_persistence_metamodel_Persistence purePersistence>;
v = staticinvoke <org.finos.legend.engine.testable.persistence.mapper.v.DatasetMapper: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset getTargetDataset(org.finos.legend.pure.generated.Root_meta_pure_persistence_metamodel_Persistence)>(v);
v = staticinvoke <org.finos.legend.engine.testable.persistence.mapper.v.IngestModeMapper: java.util.Set getFieldsToIgnore(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence)>(v);
v = staticinvoke <org.finos.legend.engine.testable.persistence.mapper.v.IngestModeMapper: boolean isTransactionMilestoningTimeBased(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence)>(v);
goto label;
label:
v = v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner: org.finos.legend.pure.generated.Root_meta_pure_persistence_metamodel_Persistence purePersistence>;
v = staticinvoke <org.finos.legend.engine.testable.persistence.mapper.v.DatasetMapper: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset getTargetDatasetV2(org.finos.legend.pure.generated.Root_meta_pure_persistence_metamodel_Persistence,org.finos.legend.engine.protocol.pure.v.model.valueSpecification.raw.classInstance.path.Path)>(v, v);
v = staticinvoke <org.finos.legend.engine.testable.persistence.mapper.v.IngestModeMapper: org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.service.output.ServiceOutputTarget getServiceOutputTarget(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence,org.finos.legend.engine.protocol.pure.v.model.valueSpecification.raw.classInstance.path.Path)>(v, v);
v = staticinvoke <org.finos.legend.engine.testable.persistence.mapper.v.IngestModeMapper: java.util.Set getFieldsToIgnoreForComparison(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.service.output.ServiceOutputTarget)>(v);
v = staticinvoke <org.finos.legend.engine.testable.persistence.mapper.v.IngestModeMapper: boolean isTransactionMilestoningTimeBased(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.service.output.ServiceOutputTarget)>(v);
label:
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.PersistenceTest: java.lang.Boolean isTestDataFromServiceOutput>;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v != 0 goto label;
v = new java.lang.UnsupportedOperationException;
v = newarray (java.lang.Object)[2];
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_pure_test_AtomicTest: java.lang.String _id()>();
v[0] = v;
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.PersistenceTest: java.lang.Boolean isTestDataFromServiceOutput>;
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Persistence Test %s isTestDataFromServiceOutput = %s is not supported", v);
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>(v);
throw v;
label:
v = 0;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.PersistenceTestBatch: java.util.List assertions>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new org.finos.legend.engine.protocol.pure.v.model.test.assertion.status.AssertPass;
specialinvoke v.<org.finos.legend.engine.protocol.pure.v.model.test.assertion.status.AssertPass: void <init>()>();
if v == null goto label;
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.PersistenceTestBatch: org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.TestData testData>;
v = specialinvoke v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner: java.lang.String getConnectionTestData(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.TestData)>(v);
if v != 0 goto label;
specialinvoke v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner: org.finos.legend.engine.persistence.components.relational.api.IngestorResult invokePersistence(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.service.output.ServiceOutputTarget,java.lang.String,java.sql.Connection)>(v, v, v, v);
goto label;
label:
specialinvoke v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner: org.finos.legend.engine.persistence.components.relational.api.IngestorResult invokePersistence(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence,java.lang.String,java.sql.Connection)>(v, v, v, v);
label:
v = virtualinvoke v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestH2Connection: java.util.List readTable(org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition)>(v);
v = new org.finos.legend.engine.testable.persistence.assertion.PersistenceTestAssertionEvaluator;
specialinvoke v.<org.finos.legend.engine.testable.persistence.assertion.PersistenceTestAssertionEvaluator: void <init>(java.util.List,java.util.Set)>(v, v);
v = virtualinvoke v.<org.finos.legend.engine.protocol.pure.v.model.test.assertion.TestAssertion: java.lang.Object accept(org.finos.legend.engine.protocol.pure.v.model.test.assertion.TestAssertionVisitor)>(v);
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
if v == 0 goto label;
v = v + 1;
v = interfaceinvoke v.<java.util.List: int size()>();
if v >= v goto label;
staticinvoke <java.lang.Thread: void sleep(long)>(1000L);
goto label;
label:
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_pure_test_AtomicTest: java.lang.String _id()>();
v = virtualinvoke v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence: java.lang.String getPath()>();
v = specialinvoke v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner: org.finos.legend.engine.protocol.pure.v.model.test.result.TestResult constructTestResult(java.lang.String,java.lang.String,java.util.List)>(v, v, v);
label:
virtualinvoke v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestH2Connection: void closeConnection()>();
goto label;
label:
v := @caughtexception;
v = new org.finos.legend.engine.protocol.pure.v.model.test.result.TestError;
specialinvoke v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestError: void <init>()>();
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_pure_test_AtomicTest: java.lang.String _id()>();
v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestError: java.lang.String atomicTestId> = v;
v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestError: java.lang.String testSuiteId> = "";
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestError: java.lang.String error> = v;
v = v;
label:
virtualinvoke v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestH2Connection: void closeConnection()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.finos.legend.engine.testable.persistence.extension.PersistenceTestH2Connection: void closeConnection()>();
throw v;
label:
return v;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void validatePersistenceSpec(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence) throws org.finos.legend.engine.testable.persistence.exception.PersistenceException
{
org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.persister.Persister v, v;
java.util.List v, v, v;
org.finos.legend.engine.testable.persistence.exception.PersistenceException v;
int v;
org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner v;
v := @this: org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence;
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence: org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.persister.Persister persister>;
if v == null goto label;
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence: java.util.List serviceOutputTargets>;
if v == null goto label;
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence: java.util.List serviceOutputTargets>;
v = interfaceinvoke v.<java.util.List: int size()>();
if v > 0 goto label;
label:
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence: org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.persister.Persister persister>;
if v != null goto label;
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence: java.util.List serviceOutputTargets>;
if v != null goto label;
label:
v = new org.finos.legend.engine.testable.persistence.exception.PersistenceException;
specialinvoke v.<org.finos.legend.engine.testable.persistence.exception.PersistenceException: void <init>(java.lang.String)>("Persistence spec should contain either persister or serviceOutputTarget blocks ");
throw v;
label:
return;
}
private org.finos.legend.engine.persistence.components.relational.api.IngestorResult invokePersistence(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset, org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence, java.lang.String, java.sql.Connection) throws java.lang.Exception
{
org.finos.legend.engine.persistence.components.ingestmode.IngestMode v;
java.sql.Connection v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence v;
org.finos.legend.engine.persistence.components.common.Datasets v;
org.finos.legend.engine.persistence.components.relational.jdbc.JdbcConnection v;
org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder v, v, v, v, v, v;
org.finos.legend.engine.persistence.components.relational.RelationalSink v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v;
java.lang.String v;
org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner v;
org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor v;
java.util.List v;
java.lang.Object v;
v := @this: org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner;
v := @parameter: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence;
v := @parameter: java.lang.String;
v := @parameter: java.sql.Connection;
v = staticinvoke <org.finos.legend.engine.testable.persistence.mapper.v.DatasetMapper: org.finos.legend.engine.persistence.components.common.Datasets enrichAndDeriveDatasets(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence,org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,java.lang.String)>(v, v, v);
v = staticinvoke <org.finos.legend.engine.testable.persistence.mapper.v.IngestModeMapper: org.finos.legend.engine.persistence.components.ingestmode.IngestMode 'from'(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.Persistence)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder ingestMode(org.finos.legend.engine.persistence.components.ingestmode.IngestMode)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.h.H2Sink: org.finos.legend.engine.persistence.components.relational.RelationalSink get()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder relationalSink(org.finos.legend.engine.persistence.components.relational.RelationalSink)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder cleanupStagingData(boolean)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder collectStatistics(boolean)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder enableSchemaEvolution(boolean)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor build()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.jdbc.JdbcConnection: org.finos.legend.engine.persistence.components.relational.jdbc.JdbcConnection of(java.sql.Connection)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor: java.util.List performFullIngestion(org.finos.legend.engine.persistence.components.relational.api.RelationalConnection,org.finos.legend.engine.persistence.components.common.Datasets)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
return v;
}
private org.finos.legend.engine.persistence.components.relational.api.IngestorResult invokePersistence(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset, org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.service.output.ServiceOutputTarget, java.lang.String, java.sql.Connection) throws java.lang.Exception
{
org.finos.legend.engine.persistence.components.ingestmode.IngestMode v;
java.sql.Connection v;
org.finos.legend.engine.persistence.components.common.Datasets v;
org.finos.legend.engine.persistence.components.relational.jdbc.JdbcConnection v;
org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder v, v, v, v, v, v;
org.finos.legend.engine.persistence.components.relational.RelationalSink v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v;
java.lang.String v;
org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner v;
org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor v;
java.util.List v;
java.lang.Object v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.service.output.ServiceOutputTarget v;
v := @this: org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner;
v := @parameter: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.service.output.ServiceOutputTarget;
v := @parameter: java.lang.String;
v := @parameter: java.sql.Connection;
v = staticinvoke <org.finos.legend.engine.testable.persistence.mapper.v.DatasetMapper: org.finos.legend.engine.persistence.components.common.Datasets enrichAndDeriveDatasets(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.service.output.ServiceOutputTarget,org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,java.lang.String)>(v, v, v);
v = staticinvoke <org.finos.legend.engine.testable.persistence.mapper.v.IngestModeMapper: org.finos.legend.engine.persistence.components.ingestmode.IngestMode 'from'(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.service.output.ServiceOutputTarget)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder ingestMode(org.finos.legend.engine.persistence.components.ingestmode.IngestMode)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.h.H2Sink: org.finos.legend.engine.persistence.components.relational.RelationalSink get()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder relationalSink(org.finos.legend.engine.persistence.components.relational.RelationalSink)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder cleanupStagingData(boolean)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder collectStatistics(boolean)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder enableSchemaEvolution(boolean)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor$Builder: org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor build()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.jdbc.JdbcConnection: org.finos.legend.engine.persistence.components.relational.jdbc.JdbcConnection of(java.sql.Connection)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor: java.util.List performFullIngestion(org.finos.legend.engine.persistence.components.relational.api.RelationalConnection,org.finos.legend.engine.persistence.components.common.Datasets)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
return v;
}
private org.finos.legend.engine.protocol.pure.v.model.test.result.TestResult constructTestResult(java.lang.String, java.lang.String, java.util.List)
{
java.util.List v;
org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted v;
java.lang.String v, v;
org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner v;
v := @this: org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v = new org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted;
specialinvoke v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: void <init>(java.util.List)>(v);
v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: java.lang.String atomicTestId> = v;
v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: java.lang.String testSuiteId> = "";
v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: java.lang.String testable> = v;
return v;
}
private java.lang.String getConnectionTestData(org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.TestData)
{
org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.TestData v;
java.lang.UnsupportedOperationException v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.ConnectionTestData v;
org.finos.legend.engine.protocol.pure.v.model.data.EmbeddedData v, v;
java.lang.String v;
org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner v;
boolean v;
v := @this: org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.TestData;
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.TestData: org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.ConnectionTestData connection>;
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.ConnectionTestData: org.finos.legend.engine.protocol.pure.v.model.data.EmbeddedData data>;
v = v instanceof org.finos.legend.engine.protocol.pure.v.model.data.ExternalFormatData;
if v == 0 goto label;
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.persistence.test.ConnectionTestData: org.finos.legend.engine.protocol.pure.v.model.data.EmbeddedData data>;
v = v.<org.finos.legend.engine.protocol.pure.v.model.data.ExternalFormatData: java.lang.String data>;
return v;
label:
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("Non ExternalFormatData is not supported");
throw v;
}
public java.util.List executeTestSuite(org.finos.legend.pure.generated.Root_meta_pure_test_TestSuite, java.util.List, org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel, org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData)
{
java.lang.UnsupportedOperationException v;
org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel v;
java.util.List v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData v;
org.finos.legend.pure.generated.Root_meta_pure_test_TestSuite v;
org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner v;
v := @this: org.finos.legend.engine.testable.persistence.extension.PersistenceTestRunner;
v := @parameter: org.finos.legend.pure.generated.Root_meta_pure_test_TestSuite;
v := @parameter: java.util.List;
v := @parameter: org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("TestSuite is not supported for Persistence");
throw v;
}
}