From f58c5d58b8b93f22992cc6b6a13a6405627aa1a1 Mon Sep 17 00:00:00 2001 From: Diego Date: Fri, 9 May 2014 16:03:44 -0300 Subject: + play: upgrade version to 2.3.RC1 and change Specs2 for ScalaTests --- .../kamon/play/RequestInstrumentationSpec.scala | 39 +++++++++-------- .../scala/kamon/play/WSInstrumentationSpec.scala | 49 ++++++---------------- project/Dependencies.scala | 6 +-- project/Projects.scala | 2 +- 4 files changed, 35 insertions(+), 61 deletions(-) diff --git a/kamon-play/src/test/scala/kamon/play/RequestInstrumentationSpec.scala b/kamon-play/src/test/scala/kamon/play/RequestInstrumentationSpec.scala index 1ba82dc5..48c1f558 100644 --- a/kamon-play/src/test/scala/kamon/play/RequestInstrumentationSpec.scala +++ b/kamon-play/src/test/scala/kamon/play/RequestInstrumentationSpec.scala @@ -17,27 +17,26 @@ package kamon.play import play.api.test._ +import play.api.test.Helpers._ +import org.scalatestplus.play._ import play.api.mvc.{ Results, Action } import play.api.mvc.Results.Ok import scala.Some -import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.Future -import org.junit.runner.RunWith -import org.specs2.runner.JUnitRunner -import play.api.test.FakeApplication import kamon.play.action.TraceName -@RunWith(classOf[JUnitRunner]) -class RequestInstrumentationSpec extends PlaySpecification { +class RequestInstrumentationSpec extends PlaySpec with OneServerPerSuite { System.setProperty("config.file", "./kamon-play/src/test/resources/conf/application.conf") - def appWithRoutes = FakeApplication(withRoutes = { + val executor = scala.concurrent.ExecutionContext.Implicits.global + + implicit override lazy val app = FakeApplication(withRoutes = { case ("GET", "/async") ⇒ Action.async { Future { Ok("Async.async") - } + }(executor) } case ("GET", "/notFound") ⇒ Action { @@ -56,7 +55,7 @@ class RequestInstrumentationSpec extends PlaySpecification { Action.async { Future { Ok("Async.async") - } + }(executor) } } }) @@ -67,30 +66,30 @@ class RequestInstrumentationSpec extends PlaySpecification { private val traceTokenHeader = traceTokenHeaderName -> traceTokenValue "the Request instrumentation" should { - "respond to the Async Action with X-Trace-Token" in new WithServer(appWithRoutes) { + "respond to the Async Action with X-Trace-Token" in { val Some(result) = route(FakeRequest(GET, "/async").withHeaders(traceTokenHeader)) - header(traceTokenHeaderName, result) must equalTo(expectedToken) + header(traceTokenHeaderName, result) must be (expectedToken) } - "respond to the NotFound Action with X-Trace-Token" in new WithServer(appWithRoutes) { + "respond to the NotFound Action with X-Trace-Token" in { val Some(result) = route(FakeRequest(GET, "/notFound").withHeaders(traceTokenHeader)) - header(traceTokenHeaderName, result) must equalTo(expectedToken) + header(traceTokenHeaderName, result) must be (expectedToken) } - "respond to the Default Action with X-Trace-Token" in new WithServer(appWithRoutes) { + "respond to the Default Action with X-Trace-Token" in { val Some(result) = route(FakeRequest(GET, "/default").withHeaders(traceTokenHeader)) - header(traceTokenHeaderName, result) must equalTo(expectedToken) + header(traceTokenHeaderName, result) must be (expectedToken) } - "respond to the Redirect Action with X-Trace-Token" in new WithServer(appWithRoutes) { + "respond to the Redirect Action with X-Trace-Token" in { val Some(result) = route(FakeRequest(GET, "/redirect").withHeaders(traceTokenHeader)) - header("Location", result) must equalTo(Some("/redirected")) - header(traceTokenHeaderName, result) must equalTo(expectedToken) + header("Location", result) must be (Some("/redirected")) + header(traceTokenHeaderName, result) must be (expectedToken) } - "respond to the Async Action with X-Trace-Token and the renamed trace" in new WithServer(appWithRoutes) { + "respond to the Async Action with X-Trace-Token and the renamed trace" in { val Some(result) = route(FakeRequest(GET, "/async-renamed").withHeaders(traceTokenHeader)) - header(traceTokenHeaderName, result) must equalTo(expectedToken) + header(traceTokenHeaderName, result) must be (expectedToken) } } } \ No newline at end of file diff --git a/kamon-play/src/test/scala/kamon/play/WSInstrumentationSpec.scala b/kamon-play/src/test/scala/kamon/play/WSInstrumentationSpec.scala index f8801d8e..e9f5d992 100644 --- a/kamon-play/src/test/scala/kamon/play/WSInstrumentationSpec.scala +++ b/kamon-play/src/test/scala/kamon/play/WSInstrumentationSpec.scala @@ -1,5 +1,5 @@ /* =================================================== - * Copyright © 2013 2014 the kamon project + * Copyright © 2013-2014 the kamon project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,51 +16,28 @@ package kamon.play -import play.api.test._ import play.api.mvc.Action import play.api.mvc.Results.Ok -import scala.Some -import scala.concurrent.ExecutionContext.Implicits.global -import org.junit.runner.RunWith -import org.specs2.runner.JUnitRunner -import play.api.test.FakeApplication import play.api.libs.ws.WS -import play.api.Play.current -import scala.util._ -import scala.concurrent.Await -import scala.concurrent.duration._ +import org.scalatestplus.play.{OneServerPerSuite, PlaySpec} +import play.api.test._ +import play.api.test.Helpers._ -@RunWith(classOf[JUnitRunner]) -class WSInstrumentationSpec extends PlaySpecification { +class WSInstrumentationSpec extends PlaySpec with OneServerPerSuite { System.setProperty("config.file", "./kamon-play/src/test/resources/conf/application.conf") - def appWithRoutes = FakeApplication(withRoutes = { - case ("GET", "/async") ⇒ - Action { - val request = WS.url("http://maps.googleapis.com/maps/api/geocode/json?address=China&sensor=true").get() - - val future = request map { - response ⇒ (response.json \\ "location") - } - - val result = Await.result(future, 10 seconds).asInstanceOf[List[play.api.libs.json.JsObject]] - - val latitude = (result(0) \\ "lat")(0).toString - val longitude = (result(0) \\ "lng")(0).toString - - Ok(latitude + " " + longitude) - } + implicit override lazy val app = FakeApplication(withRoutes = { + case ("GET", "/async") ⇒ Action { Ok("ok") } }) "the WS instrumentation" should { - "respond to the Async Action and complete the WS request" in new WithServer(appWithRoutes) { - val Some(result) = route(FakeRequest(GET, "/async")) - result.onComplete { - case Success(result) ⇒ result.header.status must equalTo(200) - case Failure(throwable) ⇒ failure(throwable.getMessage) - } - Thread.sleep(2000) //wait to complete the future + "respond to the Async Action and complete the WS request" in { + val response = await(WS.url("http://localhost:19001/async").get()) + + response.status mustBe (OK) + + //Thread.sleep(2000) //wait to complete the future } } } \ No newline at end of file diff --git a/project/Dependencies.scala b/project/Dependencies.scala index fcbb5945..e56a2bd1 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -3,13 +3,12 @@ import sbt._ object Dependencies { val resolutionRepos = Seq( - "spray repo" at "http://repo.spray.io/", + "spray repo" at "http://repo.spray.io/", "typesafe repo" at "http://repo.typesafe.com/typesafe/releases/" ) val sprayVersion = "1.3.1" val akkaVersion = "2.3.2" - val playVersion = "2.3-M1" val aspectjVersion = "1.7.4" val slf4jVersion = "1.7.6" @@ -29,8 +28,7 @@ object Dependencies { val akkaActor = "com.typesafe.akka" %% "akka-actor" % akkaVersion val akkaSlf4j = "com.typesafe.akka" %% "akka-slf4j" % akkaVersion val akkaTestKit = "com.typesafe.akka" %% "akka-testkit" % akkaVersion - val playTest = "com.typesafe.play" %% "play-test" % playVersion - val playWS = "com.typesafe.play" %% "play-ws" % playVersion + val playTest = "org.scalatestplus" %% "play" % "1.1.0-RC1" val slf4Api = "org.slf4j" % "slf4j-api" % slf4jVersion val slf4nop = "org.slf4j" % "slf4j-nop" % slf4jVersion val jsr166 = "io.gatling" % "jsr166e" % "1.0" diff --git a/project/Projects.scala b/project/Projects.scala index c24982b9..73f8f237 100644 --- a/project/Projects.scala +++ b/project/Projects.scala @@ -74,7 +74,7 @@ object Projects extends Build { .settings(basicSettings: _*) .settings(formatSettings: _*) .settings(aspectJSettings: _*) - .settings(libraryDependencies ++= compile(playTest, playWS, aspectJ) ++ test(playTest, playWS, slf4Api)) + .settings(libraryDependencies ++= compile(playTest, aspectJ) ++ test(playTest, slf4Api)) .dependsOn(kamonCore) lazy val kamonStatsd = Project("kamon-statsd", file("kamon-statsd")) -- cgit v1.2.3