/**
* Copyright (C) 2012-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package conf;
import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Map;
import ninja.NinjaRouterTest;
import org.junit.Test;
import com.google.common.collect.Maps;
import controllers.ApplicationController;
/**
*
* Remove me once NinjaRouterTest has been put to rest.
*
* @author ra
* @deprecated
*/
@Deprecated
public class RoutesTest extends NinjaRouterTest {
@Test
public void testTestRoutesAreHiddenFromProduction() {
startServerInProdMode();
//test that test route is not available in production mode.
aRequestLike("GET", "/_test/testPage").isNotHandledByRoutesInRouter();
}
@Test
public void testRoutes() {
startServer();
//some tests that routes are there:
aRequestLike("GET", "/").isHandledBy(ApplicationController.class, "index");
}
@Test
public void testReverseRoutingWithoutMap() {
startServer();
// TEST 1: a simple route without replacements:
String generatedReverseRoute = router.getReverseRoute(ApplicationController.class, "index");
assertEquals("/", generatedReverseRoute);
// TEST 2: a more complex route with replacements:
//router.GET().route("/user/{id}/{email}/userDashboard").with(ApplicationController.class, "userDashboard");
generatedReverseRoute = router.getReverseRoute(ApplicationController.class, "userDashboard");
// this looks strange, but is expected:
assertEquals(null, generatedReverseRoute);
}
@Test
public void testReverseRoutingWithMap() {
startServer();
// TEST 1: a simple route without replacements:
Map<String, Object> map = Maps.newHashMap();
String generatedReverseRoute = router.getReverseRoute(ApplicationController.class, "index", map);
assertEquals("/", generatedReverseRoute);
// TEST 2: a more complex route with replacements:
//router.GET().route("/user/{id}/{email}/userDashboard").with(ApplicationController.class, "userDashboard");
map = Maps.newHashMap();
map.put("id","myId");
map.put("email","myEmail");
generatedReverseRoute = router.getReverseRoute(ApplicationController.class, "userDashboard", map);
assertEquals("/user/myId/myEmail/userDashboard", generatedReverseRoute);
}
@Test
public void testReverseRoutingWithMapAndQueryParameter() {
startServer();
// TEST 2: a more complex route with replacements and query parameters
//router.GET().route("/user/{id}/{email}/userDashboard").with(ApplicationController.class, "userDashboard");
Map<String, Object> map = Maps.newHashMap();
map.put("id","myId");
map.put("email","myEmail");
map.put("paging_size","100");
map.put("page","1");
String generatedReverseRoute = router.getReverseRoute(ApplicationController.class, "userDashboard", map);
assertThat(generatedReverseRoute, containsString("page=1"));
assertThat(generatedReverseRoute, containsString("paging_size=100"));
assertThat(generatedReverseRoute, containsString("/user/myId/myEmail/userDashboard?"));
}
@Test
public void testReverseRoutingWithArrayAndQueryParameters() {
startServer();
String generatedReverseRoute = router.getReverseRoute(
ApplicationController.class,
"userDashboard",
"id","myId",
"email","myEmail",
"paging_size","100",
"page","1");
assertThat(generatedReverseRoute, containsString("page=1"));
assertThat(generatedReverseRoute, containsString("paging_size=100"));
assertThat(generatedReverseRoute, containsString("/user/myId/myEmail/userDashboard?"));
}
@Test
public void testReverseRoutingWithArrayAndWrongAmountOfQueryParameters() {
startServer();
// TEST 2: a more complex route with replacements and query parameters
//router.GET().route("/user/{id}/{email}/userDashboard").with(ApplicationController.class, "userDashboard");
Map<String, Object> map = Maps.newHashMap();
map.put("id","myId");
map.put("email","myEmail");
map.put("paging_size","100");
map.put("page","1");
String generatedReverseRoute = router.getReverseRoute(
ApplicationController.class,
"userDashboard",
"1", "2", "3");
assertEquals(null, generatedReverseRoute);
}
}