diff options
Diffstat (limited to 'src/test/scala/org/perl8/router/OptionalTest.scala')
-rw-r--r-- | src/test/scala/org/perl8/router/OptionalTest.scala | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/test/scala/org/perl8/router/OptionalTest.scala b/src/test/scala/org/perl8/router/OptionalTest.scala new file mode 100644 index 0000000..1073487 --- /dev/null +++ b/src/test/scala/org/perl8/router/OptionalTest.scala @@ -0,0 +1,86 @@ +package org.perl8.router + +import org.scalatest.FunSuite + +import org.perl8.router.test._ + +class OptionalTest extends FunSuite { + val router = new Router[Boolean] + + router addRoute ( + ":controller/?:action", + true, + defaults = Map( + "action" -> "index" + ), + validations = Map( + "action" -> """\D+""".r + ) + ) + + router addRoute ( + ":controller/:id/?:action", + true, + defaults = Map( + "action" -> "show" + ), + validations = Map( + "id" -> """\d+""".r + ) + ) + + test ("routes match properly") { + assert( + router matches "people", Map( + "controller" -> "people", + "action" -> "index" + ) + ) + + assert( + router matches "people/new", Map( + "controller" -> "people", + "action" -> "new" + ) + ) + + assert( + router matches "people/create", Map( + "controller" -> "people", + "action" -> "create" + ) + ) + + assert( + router matches "people/56", Map( + "controller" -> "people", + "action" -> "show", + "id" -> "56" + ) + ) + + assert( + router matches "people/56/edit", Map( + "controller" -> "people", + "action" -> "edit", + "id" -> "56" + ) + ) + + assert( + router matches "people/56/remove", Map( + "controller" -> "people", + "action" -> "remove", + "id" -> "56" + ) + ) + + assert( + router matches "people/56/update", Map( + "controller" -> "people", + "action" -> "update", + "id" -> "56" + ) + ) + } +} |