server/src/tests/Controllers/GeoStatsControllerTest.php
changeset 308 e032d686d88e
child 319 78990a8a069b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/tests/Controllers/GeoStatsControllerTest.php	Sun Oct 02 11:49:00 2016 +0200
@@ -0,0 +1,65 @@
+<?php
+
+use Es;
+
+class GeoStatsControllerTest extends TestCase
+{
+   public function testGetIndex()
+    {
+        $query = [
+            'index' => env('ELASTICSEARCH_INDEX'),
+            'body' => [
+                "size" => 0,
+                "aggs" => [
+                    "geos" => [
+                        "terms" => [
+                            "size" => 0,
+                            "field" => "geonames_hierarchy"
+                        ]
+                    ]
+                ]
+            ]
+        ];
+
+        Es::shouldReceive('search')
+                    ->once()
+                    ->with($query)
+                    ->andReturn(json_decode("{
+  \"took\" : 17,
+  \"timed_out\" : false,
+  \"_shards\" : {
+    \"total\" : 1,
+    \"successful\" : 1,
+    \"failed\" : 0
+  },
+  \"hits\" : {
+    \"total\" : 3011,
+    \"max_score\" : 0.0,
+    \"hits\" : [ ]
+  },
+  \"aggregations\" : {
+    \"geos\" : {
+      \"doc_count_error_upper_bound\" : 0,
+      \"sum_other_doc_count\" : 0,
+      \"buckets\" : [ {
+        \"key\" : 6255148,
+        \"doc_count\" : 2684
+      }, {
+        \"key\" : 3017382,
+        \"doc_count\" : 2674
+      }, {
+        \"key\" : 3027939,
+        \"doc_count\" : 851
+      } ]
+    }
+  }
+}", true));
+
+        $this->get('/api/v1/stats/geostats/')->assertTrue($this->response->isOk(), $this->response->content());
+        $this->seeJsonEquals(["geostats" => [
+            '6255148' => 2684,
+            '3017382' => 2674,
+            '3027939' => 851
+        ]]);
+    }
+}