From 4b7e460d2ee94f7a8acbdcea5b9fef25157072ff Mon Sep 17 00:00:00 2001 From: Leonardo Menezes Date: Mon, 4 Apr 2016 13:55:10 +0200 Subject: [PATCH] added test to EnableShardAllocationController --- .../EnableShardAllocationControllerSpec.scala | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 test/controllers/EnableShardAllocationControllerSpec.scala diff --git a/test/controllers/EnableShardAllocationControllerSpec.scala b/test/controllers/EnableShardAllocationControllerSpec.scala new file mode 100644 index 0000000..2435125 --- /dev/null +++ b/test/controllers/EnableShardAllocationControllerSpec.scala @@ -0,0 +1,51 @@ +package controllers + +import elastic.{ElasticClient, ElasticResponse} +import models.CerebroRequest +import org.specs2.Specification +import org.specs2.mock.Mockito +import play.api.libs.json.Json +import play.api.test.FakeApplication + +import scala.concurrent.duration.Duration +import scala.concurrent.{Await, Future} + +object EnableShardAllocationControllerSpec extends Specification with Mockito { + + def is = + s2""" + EnableShardAllocationController should ${step(play.api.Play.start(FakeApplication()))} + invoke enableShardAllocation $enableShardAllocation + ${step(play.api.Play.stop(FakeApplication()))} + """ + + val controller = new EnableShardAllocationController + + def enableShardAllocation = { + val expectedResponse = Json.parse( + """ + |{ + | "acknowledged": true, + | "persistent": {}, + | "transient": { + | "cluster": { + | "routing": { + | "allocation": { + | "enable": "all" + | } + | } + | } + | } + |} + """.stripMargin + ) + val body = Json.obj("host" -> "somehost") + val client = mock[ElasticClient] + client.enableShardAllocation("somehost") returns Future.successful(ElasticResponse(200, expectedResponse)) + val response = Await.result(controller.processElasticRequest(CerebroRequest(body), client), Duration("1s")) + there was one(client).enableShardAllocation("somehost") + response.body mustEqual expectedResponse + response.status mustEqual 200 + } + +} -- GitLab