summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/test/scala/optional.scala84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/test/scala/optional.scala b/src/test/scala/optional.scala
new file mode 100644
index 0000000..7832ba9
--- /dev/null
+++ b/src/test/scala/optional.scala
@@ -0,0 +1,84 @@
+import org.scalatest.FunSuite
+
+import router.Router
+
+class Optional extends FunSuite with RouterHelpers {
+ 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") {
+ testRoute(
+ router, "people", Map(
+ "controller" -> "people",
+ "action" -> "index"
+ )
+ )
+
+ testRoute(
+ router, "people/new", Map(
+ "controller" -> "people",
+ "action" -> "new"
+ )
+ )
+
+ testRoute(
+ router, "people/create", Map(
+ "controller" -> "people",
+ "action" -> "create"
+ )
+ )
+
+ testRoute(
+ router, "people/56", Map(
+ "controller" -> "people",
+ "action" -> "show",
+ "id" -> "56"
+ )
+ )
+
+ testRoute(
+ router, "people/56/edit", Map(
+ "controller" -> "people",
+ "action" -> "edit",
+ "id" -> "56"
+ )
+ )
+
+ testRoute(
+ router, "people/56/remove", Map(
+ "controller" -> "people",
+ "action" -> "remove",
+ "id" -> "56"
+ )
+ )
+
+ testRoute(
+ router, "people/56/update", Map(
+ "controller" -> "people",
+ "action" -> "update",
+ "id" -> "56"
+ )
+ )
+ }
+}