diff options
Diffstat (limited to 'example/variableRoutes/app/test/src/ExampleTests.scala')
-rw-r--r-- | example/variableRoutes/app/test/src/ExampleTests.scala | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/example/variableRoutes/app/test/src/ExampleTests.scala b/example/variableRoutes/app/test/src/ExampleTests.scala new file mode 100644 index 0000000..49c960b --- /dev/null +++ b/example/variableRoutes/app/test/src/ExampleTests.scala @@ -0,0 +1,48 @@ +package app +import io.undertow.Undertow + +import utest._ + +object ExampleTests extends TestSuite{ + def test[T](example: cask.main.BaseMain)(f: String => T): T = { + val server = Undertow.builder + .addHttpListener(8080, "localhost") + .setHandler(example.defaultHandler) + .build + server.start() + val res = + try f("http://localhost:8080") + finally server.stop() + res + } + + val tests = Tests{ + 'VariableRoutes - test(VariableRoutes){ host => + val noIndexPage = requests.get(host) + noIndexPage.statusCode ==> 404 + + requests.get(s"$host/user/lihaoyi").text() ==> "User lihaoyi" + + requests.get(s"$host/user").statusCode ==> 404 + + + requests.get(s"$host/post/123?param=xyz¶m=abc").text() ==> + "Post 123 ArrayBuffer(xyz, abc)" + + requests.get(s"$host/post/123").text() ==> + """Missing argument: (param: Seq[String]) + | + |Arguments provided did not match expected signature: + | + |showPost + | postId Int + | param Seq[String] + | + |""".stripMargin + + requests.get(s"$host/path/one/two/three").text() ==> + "Subpath List(one, two, three)" + } + + } +} |