summaryrefslogtreecommitdiff
path: root/vendor/ruflin/elastica/test/lib/Elastica/Test/Filter/GeoShapePreIndexedTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/ruflin/elastica/test/lib/Elastica/Test/Filter/GeoShapePreIndexedTest.php')
-rw-r--r--vendor/ruflin/elastica/test/lib/Elastica/Test/Filter/GeoShapePreIndexedTest.php90
1 files changed, 90 insertions, 0 deletions
diff --git a/vendor/ruflin/elastica/test/lib/Elastica/Test/Filter/GeoShapePreIndexedTest.php b/vendor/ruflin/elastica/test/lib/Elastica/Test/Filter/GeoShapePreIndexedTest.php
new file mode 100644
index 00000000..21afec1a
--- /dev/null
+++ b/vendor/ruflin/elastica/test/lib/Elastica/Test/Filter/GeoShapePreIndexedTest.php
@@ -0,0 +1,90 @@
+<?php
+
+
+namespace Elastica\Test\Filter;
+
+use Elastica\Filter\AbstractGeoShape;
+use Elastica\Filter\GeoShapePreIndexed;
+use Elastica\Query\MatchAll;
+use Elastica\Query\Filtered;
+use Elastica\Test\Base as BaseTest;
+
+class GeoShapePreIndexedTest extends BaseTest
+{
+ public function testGeoProvided()
+ {
+ $indexName = 'geo_shape_filter_test';
+ $index = $this->_createIndex($indexName);
+ $type = $index->getType('type');
+ $otherType = $index->getType('other_type');
+
+ // create mapping
+ $mapping = new \Elastica\Type\Mapping($type, array(
+ 'location' => array(
+ 'type' => 'geo_shape'
+ )
+ ));
+ $type->setMapping($mapping);
+
+ // create other type mapping
+ $otherMapping = new \Elastica\Type\Mapping($type, array(
+ 'location' => array(
+ 'type' => 'geo_shape'
+ )
+ ));
+ $otherType->setMapping($otherMapping);
+
+ // add type docs
+ $type->addDocument(new \Elastica\Document('1', array(
+ 'location' => array(
+ "type" => "envelope",
+ "coordinates" => array(
+ array(0.0, 50.0),
+ array(50.0, 0.0)
+ )
+ )
+ )));
+
+ // add other type docs
+ $otherType->addDocument(new \Elastica\Document('2', array(
+ 'location' => array(
+ "type" => "envelope",
+ "coordinates" => array(
+ array(25.0, 75.0),
+ array(75.0, 25.0)
+ )
+ )
+ )));
+
+ $index->optimize();
+ $index->refresh();
+
+ $gsp = new GeoShapePreIndexed(
+ 'location', '1', 'type', 'elastica_'.$indexName, 'location'
+ );
+ $gsp->setRelation(AbstractGeoShape::RELATION_INTERSECT);
+
+ $expected = array(
+ 'geo_shape' => array(
+ 'location' => array(
+ 'indexed_shape' => array(
+ 'id' => '1',
+ 'type' => 'type',
+ 'index' => 'elastica_'.$indexName,
+ 'path' => 'location'
+ ),
+ 'relation' => $gsp->getRelation()
+ )
+ )
+ );
+
+ $this->assertEquals($expected, $gsp->toArray());
+
+ $query = new Filtered(new MatchAll(), $gsp);
+ $results = $index->getType('type')->search($query);
+
+ $this->assertEquals(1, $results->count());
+
+ $index->delete();
+ }
+} \ No newline at end of file