use of org.graylog.testing.completebackend.GraylogBackend in project graylog2-server by Graylog2.
the class ContainerMatrixHierarchicalTestEngine method execute.
@Override
public void execute(ExecutionRequest request) {
request.getRootTestDescriptor().getChildren().forEach(descriptor -> {
if (descriptor instanceof ContainerMatrixTestWithRunningESMongoTestsDescriptor) {
GraylogBackend backend = RunningGraylogBackend.createStarted();
RequestSpecification specification = requestSpec(backend);
this.execute(request, ((ContainerMatrixTestsDescriptor) descriptor).getChildren(), backend, specification);
} else if (descriptor instanceof ContainerMatrixTestsDescriptor) {
ContainerMatrixTestsDescriptor containerMatrixTestsDescriptor = (ContainerMatrixTestsDescriptor) descriptor;
SearchVersion esVersion = containerMatrixTestsDescriptor.getEsVersion();
MongodbServer mongoVersion = containerMatrixTestsDescriptor.getMongoVersion();
int[] extraPorts = containerMatrixTestsDescriptor.getExtraPorts();
List<URL> mongoDBFixtures = containerMatrixTestsDescriptor.getMongoDBFixtures();
PluginJarsProvider pluginJarsProvider = instantiateFactory(containerMatrixTestsDescriptor.getPluginJarsProvider());
MavenProjectDirProvider mavenProjectDirProvider = instantiateFactory(containerMatrixTestsDescriptor.getMavenProjectDirProvider());
if (Lifecycle.VM.equals(containerMatrixTestsDescriptor.getLifecycle())) {
try (ContainerizedGraylogBackend backend = ContainerizedGraylogBackend.createStarted(esVersion, mongoVersion, extraPorts, mongoDBFixtures, pluginJarsProvider, mavenProjectDirProvider)) {
RequestSpecification specification = requestSpec(backend);
this.execute(request, ((ContainerMatrixTestsDescriptor) descriptor).getChildren(), backend, specification);
} catch (Exception exception) {
throw new JUnitException("Error executing tests for engine " + getId(), exception);
}
} else if (Lifecycle.CLASS.equals(containerMatrixTestsDescriptor.getLifecycle())) {
for (TestDescriptor td : containerMatrixTestsDescriptor.getChildren()) {
List<URL> fixtures = mongoDBFixtures;
if (td instanceof ContainerMatrixTestClassDescriptor) {
fixtures = ((ContainerMatrixTestClassDescriptor) td).getMongoFixtures();
}
try (ContainerizedGraylogBackend backend = ContainerizedGraylogBackend.createStarted(esVersion, mongoVersion, extraPorts, fixtures, pluginJarsProvider, mavenProjectDirProvider)) {
RequestSpecification specification = requestSpec(backend);
this.execute(request, Collections.singleton(td), backend, specification);
} catch (Exception exception) {
throw new JUnitException("Error executing tests for engine " + getId(), exception);
}
}
} else {
LOG.error("Unknown lifecycle: " + containerMatrixTestsDescriptor.getLifecycle());
}
} else {
LOG.error("All children of the root should be of type 'ContainerMatrixTestsDescriptor' or 'ContainerMatrixTestWithRunningESMongoTestsDescriptor'");
}
request.getEngineExecutionListener().executionFinished(descriptor, TestExecutionResult.successful());
});
}
Aggregations