package me.geso.routes;
import static org.junit.Assert.*;
import org.junit.Test;
public class WebRouterTest {
@Test
public void test() {
WebRouter<String> router = new WebRouter<>();
router.get("/", "root");
RoutingResult<String> match = router.match("GET", "/");
assertNotNull(match);
assertTrue(match.methodAllowed());
assertEquals("root", match.getDestination());
}
@Test
public void testMethodNotAllowed() {
WebRouter<String> router = new WebRouter<>();
router.get("/", "root");
{
RoutingResult<String> match = router.match("HEAD", "/");
assertNotNull(match);
assertTrue(match.methodAllowed());
}
{
RoutingResult<String> match = router.match("GET", "/");
assertNotNull(match);
assertTrue(match.methodAllowed());
}
// POST is not allowed
{
RoutingResult<String> match = router.match("POST", "/");
assertNotNull(match);
assertFalse(match.methodAllowed());
}
}
@Test
public void testOrder() {
WebRouter<String> router = new WebRouter<>();
router.get("/", "root");
router.get("/", "root2");
RoutingResult<String> match = router.match("HEAD", "/");
assertNotNull(match);
assertEquals("root", match.getDestination());
}
@Test
public void testSecondPost() {
WebRouter<String> router = new WebRouter<>();
router.get("/", "getRoot");
router.post("/", "postRoot");
{
RoutingResult<String> match = router.match("POST", "/");
assertNotNull(match);
assertEquals("postRoot", match.getDestination());
}
{
RoutingResult<String> match = router.match("GET", "/");
assertNotNull(match);
assertEquals("getRoot", match.getDestination());
}
}
}