use of org.jboss.resteasy.core.SynchronousDispatcher in project kie-wb-common by kiegroup.
the class MavenRestHandlerTest method post.
@Test
public void post() {
// Start preparation FS
try {
fileSystemTestingUtils.setup();
ioService = fileSystemTestingUtils.getIoService();
final String repoName = "myrepo";
final JGitFileSystem fs = (JGitFileSystem) ioService.newFileSystem(URI.create("git://" + repoName), new HashMap<String, Object>() {
{
put("init", Boolean.TRUE);
put("internal", Boolean.TRUE);
}
});
ioService.startBatch(fs);
String pom = "target/test-classes/kjar-2-single-resources/pom.xml";
if (!runIntoMavenCLI) {
pom = "kie-wb-common-services/kie-wb-common-compiler/kie-wb-common-compiler-distribution/target/test-classes/kjar-2-single-resources/pom.xml";
}
ioService.write(fs.getPath("/kjar-2-single-resources/pom.xml"), new String(java.nio.file.Files.readAllBytes(new File(pom).toPath())));
String personDotJava = "target/test-classes/kjar-2-single-resources/src/main/java/org/kie/maven/plugin/test/Person.java";
if (!runIntoMavenCLI) {
personDotJava = "kie-wb-common-services/kie-wb-common-compiler/kie-wb-common-compiler-distribution/target/test-classes/kjar-2-single-resources/src/main/java/org/kie/maven/plugin/test/Person.java";
}
ioService.write(fs.getPath("/kjar-2-single-resources/src/main/java/org/kie/maven/plugin/test/Person.java"), new String(java.nio.file.Files.readAllBytes(new File(personDotJava).toPath())));
String simpleRulesDotDRL = "target/test-classes/kjar-2-single-resources/src/main/resources/AllResourcesTypes/simple-rules.drl";
if (!runIntoMavenCLI) {
simpleRulesDotDRL = "kie-wb-common-services/kie-wb-common-compiler/kie-wb-common-compiler-distribution/target/test-classes/kjar-2-single-resources/src/main/resources/AllResourceTypes/simple-rules.drl";
}
ioService.write(fs.getPath("/kjar-2-single-resources/src/main/resources/AllResourcesTypes/simple-rules.drl"), new String(java.nio.file.Files.readAllBytes(new File(simpleRulesDotDRL).toPath())));
String kmodule = "target/test-classes/kjar-2-single-resources/src/main/resources/META-INF/kmodule.xml";
if (!runIntoMavenCLI) {
kmodule = "kie-wb-common-services/kie-wb-common-compiler/kie-wb-common-compiler-distribution/target/test-classes/kjar-2-single-resources/src/main/resources/META-INF/kmodule.xml";
}
ioService.write(fs.getPath("/kjar-2-single-resources/src/main/resources/META-INF/kmodule.xml"), new String(java.nio.file.Files.readAllBytes(new File(kmodule).toPath())));
ioService.endBatch();
java.nio.file.Path tmpRootCloned = java.nio.file.Files.createTempDirectory("cloned");
java.nio.file.Path tmpCloned = java.nio.file.Files.createDirectories(java.nio.file.Paths.get(tmpRootCloned.toString(), "dummy"));
final File gitClonedFolder = new File(tmpCloned.toFile(), ".clone.git");
final Git cloned = Git.cloneRepository().setURI(fs.getGit().getRepository().getDirectory().toURI().toString()).setBare(false).setDirectory(gitClonedFolder).call();
assertThat(cloned).isNotNull();
mavenRepoPath = java.nio.file.Paths.get(System.getProperty("user.home"), ".m2", "repository");
tmpRoot = java.nio.file.Paths.get(gitClonedFolder + "/dummy/");
// END preparation FS
Dispatcher dispatcher = new AsynchronousDispatcher(new ResteasyProviderFactory());
ResteasyProviderFactory.setInstance(dispatcher.getProviderFactory());
RegisterBuiltin.register(dispatcher.getProviderFactory());
POJOResourceFactory noDefaults = new POJOResourceFactory(MavenRestHandler.class);
dispatcher.getRegistry().addResourceFactory(noDefaults);
MockHttpRequest request = MockHttpRequest.create("POST", "build/maven/");
request.header("project", tmpRoot.toAbsolutePath().toString() + "/dummy").header("mavenrepo", mavenRepoPath.toAbsolutePath().toString());
MockHttpResponse response = new MockHttpResponse();
SynchronousExecutionContext synchronousExecutionContext = new SynchronousExecutionContext((SynchronousDispatcher) dispatcher, request, response);
request.setAsynchronousContext(synchronousExecutionContext);
dispatcher.invoke(request, response);
assertThat(response.getStatus()).isEqualTo(200);
byte[] serializedCompilationResponse = response.getOutput();
HttpCompilationResponse res = RestUtils.readDefaultCompilationResponseFromBytes(serializedCompilationResponse);
assertThat(res).isNotNull();
assertThat(res.getDependencies()).hasSize(4);
assertThat(res.getTargetContent()).hasSize(3);
tearDown();
} catch (Exception e) {
logger.error(e.getMessage());
} finally {
fileSystemTestingUtils.cleanup();
}
}
Aggregations