1717
1818import static act .route .RouteSource .ACTION_ANNOTATION ;
1919import static act .route .RouteSource .ROUTE_TABLE ;
20+ import static org .osgl .http .H .Method .GET ;
2021
2122public class RouterTest extends RouterTestBase {
2223 private RequestHandler staticDirHandler ;
@@ -33,21 +34,21 @@ public void prepare() {
3334
3435 @ Test
3536 public void testMappingAdded () {
36- no (router .isMapped (H . Method . GET , "/foo" ));
37- router .addMapping (H . Method . GET , "/foo" , "Foo.bar" );
38- yes (router .isMapped (H . Method . GET , "/foo" ));
37+ no (router .isMapped (GET , "/foo" ));
38+ router .addMapping (GET , "/foo" , "Foo.bar" );
39+ yes (router .isMapped (GET , "/foo" ));
3940 }
4041
4142 @ Test
4243 public void searchRoot () {
43- router .addMapping (H . Method . GET , "/" , controller );
44- router .getInvoker (H . Method . GET , "/" , ctx ).handle (ctx );
44+ router .addMapping (GET , "/" , controller );
45+ router .getInvoker (GET , "/" , ctx ).handle (ctx );
4546 controllerInvoked ();
4647 }
4748
4849 @ Test (expected = NotFound .class )
4950 public void searchBadUrl () {
50- router .getInvoker (H . Method . GET , "/nonexists" , ctx );
51+ router .getInvoker (GET , "/nonexists" , ctx );
5152 }
5253
5354 @ Test
@@ -59,24 +60,24 @@ public void searchStaticUrl() {
5960
6061 @ Test
6162 public void searchDynamicUrl () {
62- router .addMapping (H . Method . GET , "/svc/{<[0-9]{4}>id}" , controller );
63- router .getInvoker (H . Method . GET , "/svc/1234/" , ctx ).handle (ctx );
63+ router .addMapping (GET , "/svc/{<[0-9]{4}>id}" , controller );
64+ router .getInvoker (GET , "/svc/1234/" , ctx ).handle (ctx );
6465 controllerInvoked ();
6566 Mockito .verify (ctx ).param ("id" , "1234" );
6667 }
6768
6869 @ Test
6970 public void searchPartialUrl () {
70- router .addMapping (H . Method . GET , "/public" , staticDirHandler );
71- router .getInvoker (H . Method . GET , "/public/foo/bar.txt" , ctx ).handle (ctx );
71+ router .addMapping (GET , "/public" , staticDirHandler );
72+ router .getInvoker (GET , "/public/foo/bar.txt" , ctx ).handle (ctx );
7273 Mockito .verify (staticDirHandler ).handle (ctx );
7374 Mockito .verify (ctx ).param (ParamNames .PATH , "/foo/bar.txt" );
7475 }
7576
7677 @ Test
7778 public void routeWithStaticDir () {
78- router .addMapping (H . Method . GET , "/public" , "file:/public" );
79- RequestHandler handler = router .getInvoker (H . Method . GET , "/public/foo/bar.txt" , ctx );
79+ router .addMapping (GET , "/public" , "file:/public" );
80+ RequestHandler handler = router .getInvoker (GET , "/public/foo/bar.txt" , ctx );
8081 yes (handler instanceof StaticFileGetter );
8182 yes (handler .supportPartialPath ());
8283 eq (new File (BASE , "/public" ), fieldVal (handler , "base" ));
@@ -85,8 +86,8 @@ public void routeWithStaticDir() {
8586 @ Test
8687 public void overrideExistingRouting () {
8788 routeWithStaticDir ();
88- router .addMapping (H . Method . GET , "/public" , "file:/private" );
89- RequestHandler handler = router .getInvoker (H . Method . GET , "/public/foo/bar.txt" , ctx );
89+ router .addMapping (GET , "/public" , "file:/private" );
90+ RequestHandler handler = router .getInvoker (GET , "/public/foo/bar.txt" , ctx );
9091 yes (handler instanceof StaticFileGetter );
9192 yes (handler .supportPartialPath ());
9293 eq (new File (BASE , "/private" ), fieldVal (handler , "base" ));
@@ -95,8 +96,8 @@ public void overrideExistingRouting() {
9596 @ Test
9697 public void doNotOverrideExistingRouting () {
9798 routeWithStaticDir ();
98- router .addMapping (H . Method . GET , "/public" , "file:/private" , ACTION_ANNOTATION );
99- RequestHandler handler = router .getInvoker (H . Method . GET , "/public/foo/bar.txt" , ctx );
99+ router .addMapping (GET , "/public" , "file:/private" , ACTION_ANNOTATION );
100+ RequestHandler handler = router .getInvoker (GET , "/public/foo/bar.txt" , ctx );
100101 yes (handler instanceof StaticFileGetter );
101102 yes (handler .supportPartialPath ());
102103 eq (new File (BASE , "/public" ), fieldVal (handler , "base" ));
@@ -111,30 +112,30 @@ public void senseControllerMethodWithControllerPackage() {
111112 Mockito .when (app .config ()).thenReturn (appConfig );
112113 router = new Router (controllerLookup , app );
113114
114- router .addMapping (H . Method . GET , "/foo" , "Controller.foo" );
115+ router .addMapping (GET , "/foo" , "Controller.foo" );
115116 yes (router .isActionMethod ("foo.controller.Controller" , "foo" ));
116117
117- router .addMapping (H . Method . GET , "/bar" , "com.newcontroller.Controller.bar" );
118+ router .addMapping (GET , "/bar" , "com.newcontroller.Controller.bar" );
118119 yes (router .isActionMethod ("com.newcontroller.Controller" , "bar" ));
119120 }
120121
121122 @ Test
122123 public void senseControllerMethodWithoutControllerPackage () {
123- router .addMapping (H . Method . GET , "/foo" , "Controller.foo" );
124+ router .addMapping (GET , "/foo" , "Controller.foo" );
124125 no (router .isActionMethod ("foo.controller.Controller" , "foo" ));
125126 yes (router .isActionMethod ("Controller" , "foo" ));
126127
127- router .addMapping (H . Method . GET , "/bar" , "com.newcontroller.Controller.bar" );
128+ router .addMapping (GET , "/bar" , "com.newcontroller.Controller.bar" );
128129 yes (router .isActionMethod ("com.newcontroller.Controller" , "bar" ));
129130 }
130131
131132 @ Test
132133 public void itShallNotOverwriteRouteMappingWithSameRouteSource () {
133134 for (RouteSource source : RouteSource .values ()) {
134135 router = new Router (controllerLookup , app );
135- router .addMapping (H . Method . GET , "/foo" , "Controller.foo" , source );
136+ router .addMapping (GET , "/foo" , "Controller.foo" , source );
136137 try {
137- router .addMapping (H . Method . GET , "/foo" , "Foo.bar" , source );
138+ router .addMapping (GET , "/foo" , "Foo.bar" , source );
138139 if (source != ROUTE_TABLE ) {
139140 fail ("expected DuplicateRouteMappingException" );
140141 }
@@ -144,4 +145,16 @@ public void itShallNotOverwriteRouteMappingWithSameRouteSource() {
144145 }
145146 }
146147
148+ @ Test
149+ public void testAddingTwoRoutesWithSameDynamicPart () {
150+ router .addMapping (GET , "/foo/{id}" , "Controller.foo" );
151+ router .addMapping (GET , "/foo/{id}/bar" , "Foo.bar" );
152+ }
153+
154+ @ Test (expected = DuplicateRouteMappingException .class )
155+ public void itShallNotAllowAddingHandlersToSameRouteEndingWithDynamicPart () {
156+ router .addMapping (GET , "/foo/{id}" , "Controller.foo" , RouteSource .ACTION_ANNOTATION );
157+ router .addMapping (GET , "/foo/{id}" , "Foo.bar" , RouteSource .ACTION_ANNOTATION );
158+ }
159+
147160}
0 commit comments