summaryrefslogtreecommitdiff
path: root/vendor/ruflin/elastica/test/lib/Elastica/Test/Suggest/TermTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/ruflin/elastica/test/lib/Elastica/Test/Suggest/TermTest.php')
-rw-r--r--vendor/ruflin/elastica/test/lib/Elastica/Test/Suggest/TermTest.php104
1 files changed, 104 insertions, 0 deletions
diff --git a/vendor/ruflin/elastica/test/lib/Elastica/Test/Suggest/TermTest.php b/vendor/ruflin/elastica/test/lib/Elastica/Test/Suggest/TermTest.php
new file mode 100644
index 00000000..7765f1bb
--- /dev/null
+++ b/vendor/ruflin/elastica/test/lib/Elastica/Test/Suggest/TermTest.php
@@ -0,0 +1,104 @@
+<?php
+
+namespace Elastica\Test\Suggest;
+
+use Elastica\Suggest;
+use Elastica\Suggest\Term;
+use Elastica\Test\Base as BaseTest;
+use Elastica\Query;
+use Elastica\Document;
+use Elastica\Index;
+
+class TermTest extends BaseTest
+{
+ const TEST_TYPE = 'testSuggestType';
+
+ /**
+ * @var Index
+ */
+ protected $_index;
+
+ protected function setUp()
+ {
+ parent::setUp();
+ $this->_index = $this->_createIndex('test_suggest');
+ $docs = array();
+ $docs[] = new Document(1, array('id' => 1, 'text' => 'GitHub'));
+ $docs[] = new Document(2, array('id' => 1, 'text' => 'Elastic'));
+ $docs[] = new Document(3, array('id' => 1, 'text' => 'Search'));
+ $docs[] = new Document(4, array('id' => 1, 'text' => 'Food'));
+ $docs[] = new Document(5, array('id' => 1, 'text' => 'Flood'));
+ $docs[] = new Document(6, array('id' => 1, 'text' => 'Folks'));
+ $type = $this->_index->getType(self::TEST_TYPE);
+ $type->addDocuments($docs);
+ $this->_index->refresh();
+ }
+
+ protected function tearDown()
+ {
+ $this->_index->delete();
+ }
+
+ public function testToArray()
+ {
+ $suggest = new Suggest();
+ $suggest1 = new Term('suggest1', '_all');
+ $suggest->addSuggestion($suggest1->setText('Foor'));
+ $suggest2 = new Term('suggest2', '_all');
+ $suggest->addSuggestion($suggest2->setText('Girhub'));
+
+ $expected = array(
+ 'suggest' => array(
+ 'suggest1' => array(
+ 'term' => array(
+ 'field' => '_all'
+ ),
+ 'text' => 'Foor'
+ ),
+ 'suggest2' => array(
+ 'term' => array(
+ 'field' => '_all'
+ ),
+ 'text' => 'Girhub'
+ )
+ )
+ );
+
+ $this->assertEquals($expected, $suggest->toArray());
+ }
+
+ public function testSuggestResults()
+ {
+ $suggest = new Suggest();
+ $suggest1 = new Term('suggest1', '_all');
+ $suggest->addSuggestion($suggest1->setText('Foor seach'));
+ $suggest2 = new Term('suggest2', '_all');
+ $suggest->addSuggestion($suggest2->setText('Girhub'));
+
+ $result = $this->_index->search($suggest);
+
+ $this->assertEquals(2, $result->countSuggests());
+
+ $suggests = $result->getSuggests();
+
+ // Ensure that two suggestion results are returned for suggest1
+ $this->assertEquals(2, sizeof($suggests['suggest1']));
+
+ $this->assertEquals('github', $suggests['suggest2'][0]['options'][0]['text']);
+ $this->assertEquals('food', $suggests['suggest1'][0]['options'][0]['text']);
+ }
+
+ public function testSuggestNoResults()
+ {
+ $termSuggest = new Term('suggest1', '_all');
+ $termSuggest->setText('Foobar')->setSize(4);
+
+ $result = $this->_index->search($termSuggest);
+
+ $this->assertEquals(1, $result->countSuggests());
+
+ // Assert that no suggestions were returned
+ $suggests = $result->getSuggests();
+ $this->assertEquals(0, sizeof($suggests['suggest1'][0]['options']));
+ }
+}