@Test public void testDeployAsSource() throws Exception { String sourceFile = SourceVerticle.class.getName().replace('.', '/'); sourceFile += ".java"; vertx.deployVerticle("java:" + sourceFile, onSuccess(res -> { testComplete(); })); await(); }
@Test public void testDeployUsingClassName() throws Exception { vertx.deployVerticle("java:" + TestVerticle.class.getCanonicalName(), ar -> { assertTrue(ar.succeeded()); testComplete(); }); await(); }
private void testDeployClassNotFound(String className) throws Exception { vertx.deployVerticle(className, ar -> { assertTrue(ar.failed()); // No prefix or suffix so should be interpreted as a java class assertTrue(ar.cause() instanceof ClassNotFoundException); testComplete(); }); await(); }
@Test public void testAsyncDeployFailureCalledSynchronously() throws Exception { MyAsyncVerticle verticle = new MyAsyncVerticle(f -> f.fail(new Exception("foobar")), null); vertx.deployVerticle(verticle, ar -> { assertFalse(ar.succeeded()); assertEquals("foobar", ar.cause().getMessage()); testComplete(); }); await(); }
@Test public void testAsyncDeployCalledSynchronously() throws Exception { MyAsyncVerticle verticle = new MyAsyncVerticle(f -> f.complete(null), f -> f.complete(null)); vertx.deployVerticle(verticle, ar -> { assertTrue(ar.succeeded()); testComplete(); }); await(); }
@Test public void testDeployUsingClassFails() throws Exception { vertx.deployVerticle("java:uhqwuhiqwduhwd", ar -> { assertFalse(ar.succeeded()); assertTrue(ar.cause() instanceof ClassNotFoundException); testComplete(); }); await(); }
private void testDeployThrowableInStart(int startAction, Class<? extends Throwable> expectedThrowable) throws Exception { MyVerticle verticle = new MyVerticle(startAction, MyVerticle.NOOP); vertx.deployVerticle(verticle, ar -> { assertFalse(ar.succeeded()); assertEquals(expectedThrowable, ar.cause().getClass()); assertEquals("FooBar!", ar.cause().getMessage()); assertTrue(vertx.deploymentIDs().isEmpty()); testComplete(); }); await(); }
@Test public void testAsyncUndeployFailureCalledSynchronously() throws Exception { MyAsyncVerticle verticle = new MyAsyncVerticle(f -> f.complete(null), f -> f.fail(new Exception("foobar"))); vertx.deployVerticle(verticle, ar -> { assertTrue(ar.succeeded()); vertx.undeploy(ar.result(), ar2 -> { assertFalse(ar2.succeeded()); assertEquals("foobar", ar2.cause().getMessage()); assertFalse(vertx.deploymentIDs().contains(ar.result())); testComplete(); }); }); await(); }
@Test public void testNullIsolationGroup() throws Exception { vertx.deployVerticle("java:" + TestVerticle.class.getCanonicalName(), new DeploymentOptions().setIsolationGroup(null), ar -> { assertTrue(ar.succeeded()); assertEquals(1, TestVerticle.instanceCount.get()); testComplete(); }); await(); }
@Test public void testAsyncUndeployCalledSynchronously() throws Exception { MyAsyncVerticle verticle = new MyAsyncVerticle(f -> f.complete(null), f -> f.complete(null)); vertx.deployVerticle(verticle, ar -> { assertTrue(ar.succeeded()); vertx.undeploy(ar.result(), ar2 -> { assertTrue(ar2.succeeded()); assertFalse(vertx.deploymentIDs().contains(ar.result())); testComplete(); }); }); await(); }
private void testUndeployThrowableInStop(int stopAction, Class<? extends Throwable> expectedThrowable) throws Exception { MyVerticle verticle = new MyVerticle(MyVerticle.NOOP, stopAction); vertx.deployVerticle(verticle, ar -> { assertTrue(ar.succeeded()); vertx.undeploy(ar.result(), ar2 -> { assertFalse(ar2.succeeded()); assertEquals(expectedThrowable, ar2.cause().getClass()); assertEquals("BooFar!", ar2.cause().getMessage()); assertTrue(vertx.deploymentIDs().isEmpty()); testComplete(); }); }); await(); }
@Test public void testUndeployAllNoDeployments() throws Exception { vertx.close(ar -> { assertTrue(ar.succeeded()); testComplete(); }); await(); vertx = null; }
@Test public void testDeployClassNoDefaultPublicConstructor() throws Exception { class NoDefaultPublicConstructorVerticle extends AbstractVerticle { } vertx.deployVerticle(NoDefaultPublicConstructorVerticle.class, new DeploymentOptions(), onFailure(t -> { testComplete(); })); await(); }
@Test public void testDeployUsingClassAndConfig() throws Exception { JsonObject config = generateJSONObject(); vertx.deployVerticle("java:" + TestVerticle.class.getCanonicalName(), new DeploymentOptions().setConfig(config), ar -> { assertTrue(ar.succeeded()); testComplete(); }); await(); }
@Test public void testUndeployInvalidID() throws Exception { vertx.undeploy("uqhwdiuhqwd", ar -> { assertFalse(ar.succeeded()); assertTrue(ar.cause() instanceof IllegalStateException); testComplete(); }); await(); }
@Test public void testDeploySupplierThrowsException() { Supplier<Verticle> supplier = () -> { throw new RuntimeException("boum"); }; // Without completion handler vertx.deployVerticle(supplier, new DeploymentOptions()); assertEquals(Collections.emptySet(), vertx.deploymentIDs()); // With completion handler vertx.deployVerticle(supplier, new DeploymentOptions().setInstances(2), onFailure(t -> { assertEquals(Collections.emptySet(), vertx.deploymentIDs()); testComplete(); })); await(); }
@Test public void testDeployWithConfig() throws Exception { MyVerticle verticle = new MyVerticle(); JsonObject config = generateJSONObject(); vertx.deployVerticle(verticle, new DeploymentOptions().setConfig(config), ar -> { assertDeployment(1, verticle, config, ar); testComplete(); }); await(); }
@Test public void testDeployWorkerFromTestThread() throws Exception { MyVerticle verticle = new MyVerticle(); vertx.deployVerticle(verticle, new DeploymentOptions().setWorker(true), ar -> { assertDeployment(1, verticle, null, ar); assertTrue(verticle.startContext.isWorkerContext()); vertx.undeploy(ar.result(), ar2 -> { assertTrue(ar2.succeeded()); assertEquals(verticle.startContext, verticle.stopContext); testComplete(); }); }); await(); }
@Test public void testDeployFromTestThread() throws Exception { MyVerticle verticle = new MyVerticle(); vertx.deployVerticle(verticle, ar -> { assertDeployment(1, verticle, null, ar); assertFalse(verticle.startContext.isWorkerContext()); assertTrue(verticle.startContext.isEventLoopContext()); testComplete(); }); await(); }
@Test public void testDeployClass() { JsonObject config = generateJSONObject(); vertx.deployVerticle(ReferenceSavingMyVerticle.class, new DeploymentOptions().setInstances(4).setConfig(config), onSuccess(deploymentId -> { ReferenceSavingMyVerticle.myVerticles.forEach(myVerticle -> { assertEquals(deploymentId, myVerticle.deploymentID); assertEquals(config, myVerticle.config); assertTrue(myVerticle.startCalled); }); testComplete(); })); await(); }