use of org.finos.legend.engine.test.runner.service.RichServiceTestResult in project legend-engine by finos.
the class ServiceModeling method executeTests.
private static TestRun executeTests(Service service, Root_meta_legend_service_metamodel_Service pureService, Pair<PureModelContextData, PureModel> pureModelPairs, String pureVersion, String metricsContext) throws IOException, JavaCompileException {
MutableList<PlanGeneratorExtension> extensions = Lists.mutable.withAll(ServiceLoader.load(PlanGeneratorExtension.class));
RichIterable<? extends Root_meta_pure_router_extension_RouterExtension> routerExtensions = extensions.flatCollect(e -> e.getExtraRouterExtensions(pureModelPairs.getTwo()));
MutableList<PlanTransformer> planTransformers = extensions.flatCollect(PlanGeneratorExtension::getExtraPlanTransformers);
ServiceTestRunner runner = new ServiceTestRunner(service, pureService, pureModelPairs.getOne(), pureModelPairs.getTwo(), objectMapper, planExecutor, routerExtensions, planTransformers, pureVersion, metricsContext);
RichServiceTestResult richServiceTestResult = runner.executeTests().get(0);
Map<String, Boolean> results = Maps.mutable.empty();
for (Map.Entry<String, org.finos.legend.engine.test.runner.shared.TestResult> entry : richServiceTestResult.getResults().entrySet()) {
Boolean testResult = entry.getValue().equals(org.finos.legend.engine.test.runner.shared.TestResult.SUCCESS);
results.put(entry.getKey(), testResult);
}
return new SingleTestRun(richServiceTestResult.getExecutionPlan(), new JavaCode(richServiceTestResult.getJavaCodeString()), results);
}
use of org.finos.legend.engine.test.runner.service.RichServiceTestResult in project legend-sdlc by finos.
the class ServiceTestCase method handleResults.
private void handleResults(List<RichServiceTestResult> testRun) {
Set<String> failedAsserts = getFailedServiceAssertIndices(testRun);
Map<String, Exception> erroringAssertsWithExceptions = getErroringServiceAssertIndicesWithException(testRun);
if (!failedAsserts.isEmpty() || !erroringAssertsWithExceptions.isEmpty()) {
fail(failedAsserts.stream().sorted().collect(Collectors.joining(", ", "Failures for " + this.entity.getPath() + ": ", ".\n")).concat(erroringAssertsWithExceptions.entrySet().stream().sorted(Map.Entry.comparingByKey()).map(keyValue -> {
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
keyValue.getValue().printStackTrace(printWriter);
String stackTraceString = stringWriter.toString();
return "Errors for " + this.entity.getPath() + ": " + keyValue.getKey() + " with error stack trace: \n" + stackTraceString + "\n";
}).collect(Collectors.joining("\n", "", ""))));
}
}
Aggregations