public class org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner extends java.lang.Object
{
public void <init>()
{
org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner v;
v := @this: org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public void testServiceTestSuiteWithServiceStore()
{
org.finos.legend.engine.shared.core.identity.Identity v;
org.finos.legend.engine.language.pure.grammar.'from'.PureGrammarParser v;
org.finos.legend.engine.protocol.pure.v.model.test.result.TestResult v, v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData v;
int v, v;
org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted v, v;
java.lang.String v, v, v, v, v, v, v;
org.finos.legend.engine.testable.mapping.extension.MappingTestableRunnerExtension v;
org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecutionStatus v, v, v, v;
org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel v;
java.util.List v, v;
org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner v;
org.finos.legend.pure.m.coreinstance.meta.pure.mapping.Mapping v;
org.finos.legend.engine.shared.core.deployment.DeploymentMode v;
v := @this: org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner;
v = new org.finos.legend.engine.testable.mapping.extension.MappingTestableRunnerExtension;
specialinvoke v.<org.finos.legend.engine.testable.mapping.extension.MappingTestableRunnerExtension: void <init>()>();
virtualinvoke v.<org.finos.legend.engine.testable.mapping.extension.MappingTestableRunnerExtension: void setPureVersion(java.lang.String)>("vX_X_X");
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.PureGrammarParser: org.finos.legend.engine.language.pure.grammar.'from'.PureGrammarParser newInstance()>();
v = virtualinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.PureGrammarParser: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData parseModel(java.lang.String)>("###Data\nData testServiceStoreTestSuites::TestData\n{\n  ServiceStore\n  #{\n    [\n      {\n        request:\n        {\n          method: GET;\n          url: \'/employees/allEmployees\';\n        };\n        response:\n        {\n          body:\n            ExternalFormat\n            #{\n              contentType: \'application/json\';\n              data: \'[ { \"kerberos\": \"dummy kerberos\", \"employeeID\": \"dummy id\", \"title\": \"dummy title\", \"firstName\": \"dummy firstName\", \"lastName\": \"dummy lastname\", \"countryCode\": \"dummy countryCode\" } ]\';\n            }#;\n        };\n      }\n    ]\n  }#\n}\n\n\n###ServiceStore\nServiceStore testServiceStoreTestSuites::ServiceStore\n(\n  ServiceGroup EmployeeServices\n  (\n    path : \'/employees\';\n\n    Service EmployeeService\n    (\n      path : \'/allEmployees\';\n      method : GET;\n      response : [testServiceStoreTestSuites::Employee <- testServiceStoreTestSuites::employeeServiceStoreSchemaBinding];\n      security : [];\n    )\n    Service EmployeeServiceWithParameters\n    (\n      path : \'/employeesWithParameters\';\n      method : GET;\n      parameters :\n      (\n        stringParam : String ( location = query ),\n        integerParam : Integer ( location = query ),\n        floatParam : Float ( location = query ),\n        booleanParam : Boolean ( location = query )\n      );\n      response : [testServiceStoreTestSuites::Employee <- testServiceStoreTestSuites::employeeServiceStoreSchemaBinding];\n      security : [];\n    )\n  )\n)\n\n\n###ExternalFormat\nBinding testServiceStoreTestSuites::employeeServiceStoreSchemaBinding\n{\n  contentType: \'application/json\';\n  modelIncludes: [\n    testServiceStoreTestSuites::Employee,\n    testServiceStoreTestSuites::Employee2\n  ];\n}\n\n\n###Pure\nClass testServiceStoreTestSuites::Employee\n{\n  kerberos: String[1];\n  employeeID: String[1];\n  title: String[0..1];\n  firstName: String[0..1];\n  lastName: String[0..1];\n  countryCode: String[0..1];\n}\n\nClass testServiceStoreTestSuites::Employee2\n{\n  stringParam: String[1];\n  integerParam: Integer[1];\n  floatParam: Float[1];\n  booleanParam: Boolean[1];\n}\n\n\n###Mapping\nMapping testServiceStoreTestSuites::ServiceStoreMapping\n(\n  *testServiceStoreTestSuites::Employee[employee_set]: ServiceStore\n  {\n    ~service [testServiceStoreTestSuites::ServiceStore] EmployeeServices.EmployeeService\n  }\n  *testServiceStoreTestSuites::Employee[employee2_set]: ServiceStore\n  {\n    ~service [testServiceStoreTestSuites::ServiceStore] EmployeeServices.EmployeeServiceWithParameters\n    (\n      ~request\n      (\n        parameters\n        (\n          stringParam = $this.stringParam,\n          integerParam = $this.integerParam,\n          floatParam = $this.floatParam,\n          booleanParam = $this.booleanParam\n        )\n      )\n    )\n  }\n\n  testSuites:\n  [\n    testSuite1:\n    {\n      function: |testServiceStoreTestSuites::Employee.all()->graphFetch(\n  #{\n    testServiceStoreTestSuites::Employee{\n      kerberos,\n      employeeID,\n      title,\n      firstName,\n      lastName,\n      countryCode\n    }\n  }#\n)->serialize(\n  #{\n    testServiceStoreTestSuites::Employee{\n      kerberos,\n      employeeID,\n      title,\n      firstName,\n      lastName,\n      countryCode\n    }\n  }#\n);\n      tests:\n      [\n        passingTest:\n        {\n          data:\n          [\n            testServiceStoreTestSuites::ServiceStore:\n              Reference\n              #{\n                testServiceStoreTestSuites::TestData\n              }#\n          ];\n          asserts:\n          [\n            assert1:\n              EqualToJson\n              #{\n                expected:\n                  ExternalFormat\n                  #{\n                    contentType: \'application/json\';\n                    data: \'{\\n  \"kerberos\": \"dummy kerberos\",\\n  \"employeeID\": \"dummy id\",\\n  \"title\": \"dummy title\",\\n  \"firstName\": \"dummy firstName\",\\n  \"lastName\": \"dummy lastname\",\\n  \"countryCode\": \"dummy countryCode\"\\n}\';\n                  }#;\n              }#\n          ];\n        },\n        failingTest:\n        {\n          data:\n          [\n            testServiceStoreTestSuites::ServiceStore:\n              Reference\n              #{\n                testServiceStoreTestSuites::TestData\n              }#\n          ];\n          asserts:\n          [\n            assert1:\n              EqualToJson\n              #{\n                expected:\n                  ExternalFormat\n                  #{\n                    contentType: \'application/json\';\n                    data: \'{\\n  \"kerberos\": \"dummy kerberos\",\\n  \"employeeID\": \"Whoops\",\\n  \"title\": \"dummy title\",\\n  \"firstName\": \"dummy firstName\",\\n  \"lastName\": \"dummy lastname\",\\n  \"countryCode\": \"dummy countryCode\"\\n}\';\n                  }#;\n              }#\n          ];\n        }\n      ];\n    }\n  ]\n)\n");
v = <org.finos.legend.engine.shared.core.deployment.DeploymentMode: org.finos.legend.engine.shared.core.deployment.DeploymentMode TEST>;
v = staticinvoke <org.finos.legend.engine.shared.core.identity.Identity: org.finos.legend.engine.shared.core.identity.Identity getAnonymousIdentity()>();
v = virtualinvoke v.<org.finos.legend.engine.shared.core.identity.Identity: java.lang.String getName()>();
v = staticinvoke <org.finos.legend.engine.language.pure.compiler.Compiler: org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel compile(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData,org.finos.legend.engine.shared.core.deployment.DeploymentMode,java.lang.String)>(v, v, v);
virtualinvoke v.<org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel: org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.PackageableElement getPackageableElement(java.lang.String)>("testServiceStoreTestSuites::ServiceStoreMapping");
v = virtualinvoke v.<org.finos.legend.engine.testable.mapping.extension.MappingTestableRunnerExtension: java.util.List executeAllTest(org.finos.legend.pure.m.coreinstance.meta.pure.test.Testable,org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel,org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData)>(v, v, v);
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.Assert: void assertEquals(long,long)>(2L, v);
v = specialinvoke v.<org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner: org.finos.legend.engine.protocol.pure.v.model.test.result.TestResult findTestById(java.util.List,java.lang.String)>(v, "passingTest");
v = specialinvoke v.<org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner: org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted guaranteedTestExecuted(org.finos.legend.engine.protocol.pure.v.model.test.result.TestResult)>(v);
v = <org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecutionStatus: org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecutionStatus PASS>;
v = v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecutionStatus testExecutionStatus>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: java.lang.String testable>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>("testServiceStoreTestSuites::ServiceStoreMapping", v);
v = v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: java.lang.String testSuiteId>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>("testSuite1", v);
v = v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: java.lang.String atomicTestId>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>("passingTest", v);
v = specialinvoke v.<org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner: org.finos.legend.engine.protocol.pure.v.model.test.result.TestResult findTestById(java.util.List,java.lang.String)>(v, "failingTest");
v = specialinvoke v.<org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner: org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted guaranteedTestExecuted(org.finos.legend.engine.protocol.pure.v.model.test.result.TestResult)>(v);
v = <org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecutionStatus: org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecutionStatus FAIL>;
v = v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecutionStatus testExecutionStatus>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: java.lang.String testable>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>("testServiceStoreTestSuites::ServiceStoreMapping", v);
v = v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: java.lang.String testSuiteId>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>("testSuite1", v);
v = v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: java.lang.String atomicTestId>;
staticinvoke <org.junit.Assert: void assertEquals(java.lang.Object,java.lang.Object)>("failingTest", v);
v = v.<org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted: java.util.List assertStatuses>;
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.Assert: void assertEquals(long,long)>(1L, v);
return;
}
private org.finos.legend.engine.protocol.pure.v.model.test.result.TestResult findTestById(java.util.List, java.lang.String)
{
java.util.function.Predicate v;
java.util.function.Supplier v;
java.util.List v;
java.util.stream.Stream v, v;
org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner v;
java.util.Optional v;
java.lang.Object v;
java.lang.String v;
v := @this: org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner;
v := @parameter: java.util.List;
v := @parameter: java.lang.String;
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner$lambda_findTestById_0__10: java.util.function.Predicate bootstrap$(java.lang.String)>(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 = staticinvoke <org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner$lambda_findTestById_1__11: java.util.function.Supplier bootstrap$(java.lang.String)>(v);
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseThrow(java.util.function.Supplier)>(v);
return v;
}
private org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted guaranteedTestExecuted(org.finos.legend.engine.protocol.pure.v.model.test.result.TestResult)
{
org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner v;
org.finos.legend.engine.protocol.pure.v.model.test.result.TestResult v;
java.lang.RuntimeException v;
boolean v;
v := @this: org.finos.legend.engine.plan.execution.stores.service.testable.mapping.TestMappingTestRunner;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.test.result.TestResult;
v = v instanceof org.finos.legend.engine.protocol.pure.v.model.test.result.TestExecuted;
if v == 0 goto label;
return v;
label:
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>("test expected to have been executed");
throw v;
}
}