java - instalar - Iterar todas las rutas de Play Framework en Test
play framework vs spring (1)
No es fácil. Me las arreglé para hackear mi camino hace un tiempo (sin conocimientos de scala). Voy a publicar ese código, tal vez puede ser de utilidad.
public static List<String[]> parseRoutes() {
scala.Option<play.core.Router.Routes> option = Play.application().getWrappedApplication().routes();
if (option.isDefined()) {
play.core.Router.Routes routes = option.get();
scala.collection.Seq<scala.Tuple3<String, String, String>> doc = routes.documentation();
scala.collection.Iterator<scala.Tuple3<String, String, String>> it = doc.iterator();
List<String[]> listOfRoutes = new ArrayList<String[]>();
while(it.hasNext()) {
scala.Tuple3<String, String, String> tuple = it.next();
//tuple._1() is the method and tuple._2() the url... tuple._3() is the controller name
String[] route = {tuple._1(), tuple._2()};
listOfRoutes.add(route);
Logger.debug("route -> " + Arrays.toString(route));
}
return listOfRoutes;
}
return null;
}
No se preocupe porque .iterator()
muestre a The method iterator() is ambiguous for the type Seq<Tuple3<String,String,String>>
. Compila muy bien en el juego.
¿Hay alguna forma de iterar todos los servicios descritos en el archivo de routes
? Los métodos URL y HTTP son necesarios.
Necesito esta característica para ejecutar alguna prueba de integración.
Estoy usando Play for Java.