Refactor Aquarium to make it more configurable
[aquarium] / src / test / scala / gr / grnet / aquarium / rest / actor / RESTActorTest.scala
index 8368954..68b4732 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2011 GRNET S.A. All rights reserved.
+ * Copyright 2011-2012 GRNET S.A. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or
  * without modification, are permitted provided that the following
@@ -39,16 +39,14 @@ import org.junit.Test
 import org.junit.Assert._
 import org.junit.Assume.assumeTrue
 
-import gr.grnet.aquarium.actor.RESTRole
-import cc.spray.can.HttpMethods.{GET, POST}
+import cc.spray.can.HttpMethods.{GET}
 import cc.spray.can.HttpClient._
 import cc.spray.can.HttpClient.{HttpDialog ⇒ SprayHttpDialog}
-import cc.spray.can.{HttpResponse, HttpHeader, HttpRequest, HttpServer ⇒ SprayHttpServer, HttpClient ⇒ SprayHttpClient}
-import akka.actor.{PoisonPill, Actor}
-import gr.grnet.aquarium.logic.events.ResourceEvent
-import net.liftweb.json.JsonAST.JInt
-import gr.grnet.aquarium.util.json.JsonHelpers
-import gr.grnet.aquarium.{LogicTestsAssumptions, Configurator}
+import cc.spray.can.{HttpResponse, HttpHeader, HttpRequest}
+import gr.grnet.aquarium.util.makeString
+import gr.grnet.aquarium.converter.StdConverters
+import net.liftweb.json.JsonAST.{JValue, JInt}
+import gr.grnet.aquarium.{ResourceLocator, AquariumBuilder, AquariumException, LogicTestsAssumptions, Aquarium}
 
 /**
  * 
@@ -60,9 +58,10 @@ class RESTActorTest {
     assumeTrue(LogicTestsAssumptions.EnableSprayTests)
     
     // Initialize configuration subsystem
-    val mc = Configurator.MasterConfigurator
-    mc.startServices()
-    val port = mc.props.getInt(Configurator.Keys.rest_port).getOr(8080)
+    val aquarium = new AquariumBuilder(ResourceLocator.AquariumProperties).build()
+    aquarium.start()
+
+    val port = aquarium.restPort
     val dialog = SprayHttpDialog("localhost", port)
 
     val pingReq = HttpRequest(method = GET, uri = "/ping", headers = HttpHeader("Content-Type", "text/plain; charset=UTF-8")::Nil)
@@ -70,11 +69,10 @@ class RESTActorTest {
       futureResp.value match {
         case Some(Right(HttpResponse(status, _, bytesBody, _))) ⇒
           assertTrue("Status 200 OK", status == 200)
-          val stringBody = new String(bytesBody, "UTF-8")
+          val stringBody = makeString(bytesBody)
+          val jValue = StdConverters.AllConverters.convertEx[JValue](stringBody)
           println("!! Got stringBody = %s".format(stringBody))
           // Note that the response is in JSON format, so must parse it
-          implicit val formats = JsonHelpers.DefaultJsonFormats
-          val jValue = net.liftweb.json.parse(stringBody)
           println("!! ==> jValue = %s".format(jValue))
           val pongValue = jValue \ "pong"
           println("!! ==> pongValue = %s".format(pongValue))
@@ -86,6 +84,6 @@ class RESTActorTest {
       }
     }
 
-    mc.stopServicesWithDelay(1000)
+    aquarium.stopAfterMillis(1000)
   }
 }
\ No newline at end of file