/*
* ******************************************************************************
* Copyright (c) 2013 JavaTIC.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Yann Le Moigne - initial API and implementation
* *****************************************************************************
*/
package fr.javatic.vertx.webjar;
import static org.junit.Assert.assertFalse;
import static org.vertx.testtools.VertxAssert.assertNotNull;
import static org.vertx.testtools.VertxAssert.assertTrue;
import static org.vertx.testtools.VertxAssert.testComplete;
import org.junit.Test;
import org.vertx.java.core.AsyncResult;
import org.vertx.java.core.AsyncResultHandler;
import org.vertx.java.core.Handler;
import org.vertx.java.core.eventbus.Message;
import org.vertx.java.core.file.FileSystem;
import org.vertx.java.core.json.JsonArray;
import org.vertx.java.core.json.JsonObject;
import org.vertx.testtools.TestVerticle;
public class WebjarVerticleTest extends TestVerticle {
private final static String WEBJARS_DIR = "testWebjar";
@Test
public void testContent() {
vertx.eventBus().send("module.webjar.resourceRequest", "webjars/angularjs/1.0.7/angular.js",
new Handler<Message<String>>() {
@Override
public void handle(Message<String> event) {
String content = event.body();
assertNotNull(content);
assertFalse(content.isEmpty());
testComplete();
}
});
}
@Override
public void start() {
initialize();
cleanWebjarsDir();
JsonObject config = new JsonObject();
JsonArray webjars = new JsonArray();
webjars.addString("org.webjars:angularjs:1.0.7");
config.putArray("webjars", webjars);
config.putBoolean("pullin-on-startup", true);
config.putString("webjars-dir", WEBJARS_DIR);
container.deployVerticle(WebjarVerticle.class.getName(), config, new AsyncResultHandler<String>() {
@Override
public void handle(AsyncResult<String> asyncResult) {
if (asyncResult.failed()) {
container.logger().error(asyncResult.cause());
}
assertTrue(asyncResult.succeeded());
assertNotNull("deploymentID should not be null", asyncResult.result());
startTests();
}
});
}
@Override
public void stop() {
cleanWebjarsDir();
}
private void cleanWebjarsDir() {
FileSystem fileSystem = vertx.fileSystem();
if (fileSystem.existsSync(WEBJARS_DIR)) {
fileSystem.deleteSync(WEBJARS_DIR, true);
}
}
}