diff options
Diffstat (limited to 'vendor/ruflin/elastica/test/lib/Elastica/Test/Filter/NestedTest.php')
-rw-r--r-- | vendor/ruflin/elastica/test/lib/Elastica/Test/Filter/NestedTest.php | 152 |
1 files changed, 79 insertions, 73 deletions
diff --git a/vendor/ruflin/elastica/test/lib/Elastica/Test/Filter/NestedTest.php b/vendor/ruflin/elastica/test/lib/Elastica/Test/Filter/NestedTest.php index 8d0d2004..8eb42d37 100644 --- a/vendor/ruflin/elastica/test/lib/Elastica/Test/Filter/NestedTest.php +++ b/vendor/ruflin/elastica/test/lib/Elastica/Test/Filter/NestedTest.php @@ -1,21 +1,18 @@ <?php - namespace Elastica\Test\Filter; use Elastica\Document; use Elastica\Filter\Nested; use Elastica\Query\Terms; use Elastica\Search; -use Elastica\Type\Mapping; use Elastica\Test\Base as BaseTest; +use Elastica\Type\Mapping; class NestedTest extends BaseTest { - public function setUp() + protected function _getIndexForTest() { - $client = $this->_getClient(); - $index = $client->getIndex('elastica_test_filter_nested'); - $index->create(array(), true); + $index = $this->_createIndex('elastica_test_filter_nested'); $type = $index->getType('user'); $mapping = new Mapping(); $mapping->setProperties( @@ -26,96 +23,105 @@ class NestedTest extends BaseTest 'hobbies' => array( 'type' => 'nested', 'include_in_parent' => true, - 'properties' => array('hobby' => array('type' => 'string')) - ) + 'properties' => array('hobby' => array('type' => 'string')), + ), ) ); $type->setMapping($mapping); - // Adds a list of documents with _bulk upload to the index - $docs = array(); - $docs[] = new Document(1, - array( - 'firstname' => 'Nicolas', - 'lastname' => 'Ruflin', - 'hobbies' => array( - array('hobby' => 'opensource') + $response = $type->addDocuments(array( + new Document(1, + array( + 'firstname' => 'Nicolas', + 'lastname' => 'Ruflin', + 'hobbies' => array( + array('hobby' => 'opensource'), + ), ) - ) - ); - $docs[] = new Document(2, - array( - 'firstname' => 'Nicolas', - 'lastname' => 'Ippolito', - 'hobbies' => array( - array('hobby' => 'opensource'), - array('hobby' => 'guitar'), + ), + new Document(2, + array( + 'firstname' => 'Nicolas', + 'lastname' => 'Ippolito', + 'hobbies' => array( + array('hobby' => 'opensource'), + array('hobby' => 'guitar'), + ), ) - ) - ); - $response = $type->addDocuments($docs); + ), + )); - // Refresh index $index->refresh(); - } - public function tearDown() - { - $client = $this->_getClient(); - $index = $client->getIndex('elastica_test_filter_nested'); - $index->delete(); + return $index; } + /** + * @group unit + */ public function testToArray() { - $f = new Nested(); - $this->assertEquals(array('nested' => array()), $f->toArray()); - $q = new Terms(); - $q->setTerms('hobby', array('guitar')); - $f->setPath('hobbies'); - $f->setQuery($q); + $filter = new Nested(); + $this->assertEquals(array('nested' => array()), $filter->toArray()); + $query = new Terms(); + $query->setTerms('hobby', array('guitar')); + $filter->setPath('hobbies'); + $filter->setQuery($query); $expectedArray = array( 'nested' => array( 'path' => 'hobbies', 'query' => array('terms' => array( - 'hobby' => array('guitar') - )) - ) + 'hobby' => array('guitar'), + )), + ), ); - $this->assertEquals($expectedArray, $f->toArray()); + $this->assertEquals($expectedArray, $filter->toArray()); } + /** + * @group functional + */ public function testShouldReturnTheRightNumberOfResult() { - $f = new Nested(); - $this->assertEquals(array('nested' => array()), $f->toArray()); - $q = new Terms(); - $q->setTerms('hobby', array('guitar')); - $f->setPath('hobbies'); - $f->setQuery($q); - - $c = $this->_getClient(); - $s = new Search($c); - $i = $c->getIndex('elastica_test_filter_nested'); - $s->addIndex($i); - $r = $s->search($f); - - $this->assertEquals(1, $r->getTotalHits()); - - $f = new Nested(); - $this->assertEquals(array('nested' => array()), $f->toArray()); - $q = new Terms(); - $q->setTerms('hobby', array('opensource')); - $f->setPath('hobbies'); - $f->setQuery($q); - - $c = $this->_getClient(); - $s = new Search($c); - $i = $c->getIndex('elastica_test_filter_nested'); - $s->addIndex($i); - $r = $s->search($f); - $this->assertEquals(2, $r->getTotalHits()); + $filter = new Nested(); + $this->assertEquals(array('nested' => array()), $filter->toArray()); + $query = new Terms(); + $query->setTerms('hobby', array('guitar')); + $filter->setPath('hobbies'); + $filter->setQuery($query); + + $search = new Search($this->_getClient()); + $search->addIndex($this->_getIndexForTest()); + $resultSet = $search->search($filter); + $this->assertEquals(1, $resultSet->getTotalHits()); + + $filter = new Nested(); + $this->assertEquals(array('nested' => array()), $filter->toArray()); + $query = new Terms(); + $query->setTerms('hobby', array('opensource')); + $filter->setPath('hobbies'); + $filter->setQuery($query); + + $search = new Search($this->_getClient()); + $search->addIndex($this->_getIndexForTest()); + $resultSet = $search->search($filter); + $this->assertEquals(2, $resultSet->getTotalHits()); + } + + /** + * @group unit + */ + public function testSetJoin() + { + $filter = new Nested(); + + $this->assertTrue($filter->setJoin(true)->getParam('join')); + + $this->assertFalse($filter->setJoin(false)->getParam('join')); + + $returnValue = $filter->setJoin(true); + $this->assertInstanceOf('Elastica\Filter\Nested', $returnValue); } } |