From e4a0b165f45797ddb6063662debee2d6274b0740 Mon Sep 17 00:00:00 2001 From: Leonardo Menezes <leonardo.menezes@xing.com> Date: Mon, 4 Apr 2016 14:03:38 +0200 Subject: [PATCH] added test to GetIndexController --- ...scala => GetIndexSettingsController.scala} | 2 +- conf/routes | 2 +- .../GetIndexSettingsControllerSpec.scala | 61 +++++++++++++++++++ 3 files changed, 63 insertions(+), 2 deletions(-) rename app/controllers/{GetIndexSettings.scala => GetIndexSettingsController.scala} (66%) create mode 100644 test/controllers/GetIndexSettingsControllerSpec.scala diff --git a/app/controllers/GetIndexSettings.scala b/app/controllers/GetIndexSettingsController.scala similarity index 66% rename from app/controllers/GetIndexSettings.scala rename to app/controllers/GetIndexSettingsController.scala index 78f0c08..f966b68 100644 --- a/app/controllers/GetIndexSettings.scala +++ b/app/controllers/GetIndexSettingsController.scala @@ -1,6 +1,6 @@ package controllers -class GetIndexSettings extends ElasticActionController { +class GetIndexSettingsController extends ElasticActionController { def processElasticRequest = (request, client) => client.getIndexSettings(request.get("index"), request.host) diff --git a/conf/routes b/conf/routes index 99543de..d7a1d37 100644 --- a/conf/routes +++ b/conf/routes @@ -15,7 +15,7 @@ POST /apis/optimize_indices @controllers.OptimizeIndexControlle POST /apis/clear_indices_cache @controllers.ClearIndexCacheController.execute POST /apis/refresh_indices @controllers.RefreshIndexController.execute POST /apis/delete_indices @controllers.DeleteIndexController.execute -POST /apis/get_index_settings @controllers.GetIndexSettings.execute +POST /apis/get_index_settings @controllers.GetIndexSettingsController.execute POST /apis/get_index_mapping @controllers.GetIndexMappingController.execute POST /apis/update_cluster_settings @controllers.PutClusterSettings.execute POST /apis/get_node_stats @controllers.NodeStatsController.execute diff --git a/test/controllers/GetIndexSettingsControllerSpec.scala b/test/controllers/GetIndexSettingsControllerSpec.scala new file mode 100644 index 0000000..00d8831 --- /dev/null +++ b/test/controllers/GetIndexSettingsControllerSpec.scala @@ -0,0 +1,61 @@ +package controllers + +import elastic.{ElasticResponse, ElasticClient} +import exceptions.MissingRequiredParamException +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 GetIndexSettingsControllerSpec extends Specification with Mockito { + + def is = + s2""" + GetIndexSettingsController should ${step(play.api.Play.start(FakeApplication()))} + invoke getIndexSettings $getIndexSettings + should throw exception if index param is missing $missingIndex + ${step(play.api.Play.stop(FakeApplication()))} + """ + + val controller = new GetIndexSettingsController + + def getIndexSettings = { + val expectedResponse = Json.parse( + """ + |{ + | "someIndex": { + | "settings": { + | "index": { + | "creation_date": "1459675569309", + | "number_of_shards": "5", + | "number_of_replicas": "1", + | "uuid": "6sN-tL30Sfyz_tW0iVqVPQ", + | "version": { + | "created": "2030099" + | } + | } + | } + | } + |} + """.stripMargin + ) + val body = Json.obj("host" -> "somehost", "index" -> "someIndex") + val client = mock[ElasticClient] + client.getIndexSettings("someIndex", "somehost") returns Future.successful(ElasticResponse(200, expectedResponse)) + val response = Await.result(controller.processElasticRequest(CerebroRequest(body), client), Duration("1s")) + there was one(client).getIndexSettings("someIndex", "somehost") + response.body mustEqual expectedResponse + response.status mustEqual 200 + } + + def missingIndex = { + val body = Json.obj("host" -> "somehost") + val client = mock[ElasticClient] + controller.processElasticRequest(CerebroRequest(body), client) must throwA[MissingRequiredParamException] + } + +} -- GitLab