From f4e21bca86ec7c2b2ab96b9c0daa573a8b448efc Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 26 Jul 2018 00:00:33 +0800 Subject: WIP getting first decorator unit test working --- cask/test/src/test/cask/Decorator.scala | 26 ++++++++++++++++++++++++++ cask/test/src/test/cask/ExampleTests.scala | 3 +++ 2 files changed, 29 insertions(+) create mode 100644 cask/test/src/test/cask/Decorator.scala (limited to 'cask/test') 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() } } -- cgit v1.2.3