package integration.auth;
import com.google.common.net.HttpHeaders;
import integration.VertxNubesTestBase;
import io.vertx.ext.unit.Async;
import io.vertx.ext.unit.TestContext;
import org.junit.Test;
public class ApiAuthTest extends VertxNubesTestBase {
public static final String VALID_TOKEN = "tim";
@Test
public void testWithNoToken(TestContext context) {
Async async = context.async();
getJSON("/private/api", response -> {
context.assertEquals(401, response.statusCode());
async.complete();
});
}
@Test
public void testValidTokenAsParam(TestContext context) {
Async async = context.async();
getJSON("/private/api?access_token=" + VALID_TOKEN, response -> {
context.assertEquals(200, response.statusCode());
response.bodyHandler(buff -> {
context.assertEquals(VALID_TOKEN, buff.toString("UTF-8"));
async.complete();
});
});
}
@Test
public void testValidTokenAsHeader(TestContext context) {
Async async = context.async();
client().get("/private/api?access_token=" + VALID_TOKEN, response -> {
context.assertEquals(200, response.statusCode());
response.bodyHandler(buff -> {
context.assertEquals(VALID_TOKEN, buff.toString("UTF-8"));
async.complete();
});
}).putHeader(HttpHeaders.AUTHORIZATION, "token " + VALID_TOKEN).end();
}
@Test
public void testInvalidTokenAsParam(TestContext context) {
Async async = context.async();
getJSON("/private/api?access_token=yourmum", response -> {
context.assertEquals(403, response.statusCode());
async.complete();
});
}
@Test
public void testInvalidTokenAsHeader(TestContext context) {
Async async = context.async();
client().get("/private/api?access_token=" + VALID_TOKEN, response -> {
context.assertEquals(403, response.statusCode());
async.complete();
}).putHeader(HttpHeaders.AUTHORIZATION, "token yourmum").end();
}
}