package integration.paginationcontext; import integration.VertxNubesTestBase; import io.vertx.core.json.JsonObject; import io.vertx.ext.unit.Async; import io.vertx.ext.unit.TestContext; import org.junit.Test; public class PaginationContextTest extends VertxNubesTestBase { @Test public void defaultPaginationContext(TestContext context) { Async async = context.async(); getJSON("/paginationcontext", response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buff -> { JsonObject json = new JsonObject(buff.toString("UTF-8")); context.assertEquals(1, json.getInteger("current")); context.assertNull(json.getInteger("next")); context.assertNull(json.getInteger("last")); context.assertNull(json.getInteger("prev")); context.assertNull(json.getInteger("first")); context.assertEquals(1, json.getInteger("total")); async.complete(); }); }); } @Test public void moreThanOnePage(TestContext context) { Async async = context.async(); getJSON("/paginationcontext/more", response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buff -> { JsonObject json = new JsonObject(buff.toString("UTF-8")); context.assertEquals(1, json.getInteger("current")); context.assertEquals(2, json.getInteger("next")); context.assertEquals(11, json.getInteger("last")); context.assertNull(json.getInteger("prev")); context.assertNull(json.getInteger("first")); context.assertEquals(11, json.getInteger("total")); async.complete(); }); }); } @Test public void moreThanOnePageInTheMiddle(TestContext context) { Async async = context.async(); getJSON("/paginationcontext/more?page=3", response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buff -> { JsonObject json = new JsonObject(buff.toString("UTF-8")); context.assertEquals(3, json.getInteger("current")); context.assertEquals(4, json.getInteger("next")); context.assertEquals(11, json.getInteger("last")); context.assertEquals(2, json.getInteger("prev")); context.assertEquals(1, json.getInteger("first")); context.assertEquals(11, json.getInteger("total")); async.complete(); }); }); } @Test public void moreThanOnePageAndCustomPerPage(TestContext context) { Async async = context.async(); getJSON("/paginationcontext/more?page=2&perPage=100", response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buff -> { JsonObject json = new JsonObject(buff.toString("UTF-8")); context.assertEquals(2, json.getInteger("current")); context.assertEquals(3, json.getInteger("next")); context.assertEquals(4, json.getInteger("last")); context.assertEquals(1, json.getInteger("prev")); context.assertEquals(1, json.getInteger("first")); context.assertEquals(4, json.getInteger("total")); async.complete(); }); }); } }