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 78f0c08c4e406bdb10aa79b8689c852f4ae7f2c9..f966b684d4abfa9c190add45a8b09a4b8dc8ede3 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 99543de7a2711d0045534736202278c94895b015..d7a1d370f3c79ae0356514fad9081898ee43dfd8 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 0000000000000000000000000000000000000000..00d88312cf6e5ce61ff900491c5d8cd0f81d211d
--- /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]
+  }
+
+}