summaryrefslogtreecommitdiff
path: root/cask/test
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-07-26 00:00:33 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-07-26 00:00:33 +0800
commitf4e21bca86ec7c2b2ab96b9c0daa573a8b448efc (patch)
treea4bd0b30c6ae2a8daadc149a3c11a3f153cf01c7 /cask/test
parent712bafb0c903a14dc0bf6b07e5529007635e004a (diff)
downloadcask-f4e21bca86ec7c2b2ab96b9c0daa573a8b448efc.tar.gz
cask-f4e21bca86ec7c2b2ab96b9c0daa573a8b448efc.tar.bz2
cask-f4e21bca86ec7c2b2ab96b9c0daa573a8b448efc.zip
WIP getting first decorator unit test working
Diffstat (limited to 'cask/test')
-rw-r--r--cask/test/src/test/cask/Decorator.scala26
-rw-r--r--cask/test/src/test/cask/ExampleTests.scala3
2 files changed, 29 insertions, 0 deletions
diff --git a/cask/test/src/test/cask/Decorator.scala b/cask/test/src/test/cask/Decorator.scala
new file mode 100644
index 0000000..0e31019
--- /dev/null
+++ b/cask/test/src/test/cask/Decorator.scala
@@ -0,0 +1,26 @@
+package test.cask
+import cask.internal.Router.ArgReader
+import cask.model.ParamContext
+
+
+object Decorator extends cask.MainRoutes{
+ class myDecorator extends cask.main.Routes.Decorator {
+ type InputType = Int
+
+ def handle(ctx: ParamContext) = Map("extra" -> 31337)
+
+ def parseMethodInput[T] = new ArgReader[Int, T, ParamContext] {
+ def arity = 0
+
+ def read(ctx: ParamContext, label: String, input: Int) = 0.asInstanceOf[T]
+ }
+ }
+
+ @myDecorator()
+ @cask.get("/hello/:world")
+ def hello(world: String)(extra: Int) = {
+ world + extra
+ }
+
+ initialize()
+}
diff --git a/cask/test/src/test/cask/ExampleTests.scala b/cask/test/src/test/cask/ExampleTests.scala
index b60f30c..8787b3a 100644
--- a/cask/test/src/test/cask/ExampleTests.scala
+++ b/cask/test/src/test/cask/ExampleTests.scala
@@ -85,6 +85,9 @@ object ExampleTests extends TestSuite{
data = Seq("value1" -> "hello", "value2" -> "1", "value2" -> "2")
).text() ==>
"OK Plain(hello,null) List(1, 2)"
+ }
+ 'Decorator - test(Decorator){ host =>
+ requests.get(host + "/hello/woo").text()
}
}