Commit e4a0b165 authored by Leonardo Menezes's avatar Leonardo Menezes
Browse files

added test to GetIndexController

parent c98572c0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
package controllers

class GetIndexSettings extends ElasticActionController {
class GetIndexSettingsController extends ElasticActionController {

  def processElasticRequest = (request, client) => client.getIndexSettings(request.get("index"), request.host)

+1 −1
Original line number Diff line number Diff line
@@ -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
+61 −0
Original line number Diff line number Diff line
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]
  }

}