From e22d6053e599bde80ff7e3038d6cb7fde64a1423 Mon Sep 17 00:00:00 2001 From: Sean Harvey Date: Thu, 21 Aug 2014 16:58:00 +1200 Subject: [PATCH] Adding tests for SearchIndex::fieldData() --- tests/SearchUpdaterTest.php | 15 +++++++++++++++ tests/SolrIndexTest.php | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/tests/SearchUpdaterTest.php b/tests/SearchUpdaterTest.php index 2ee7d02..ea1c371 100644 --- a/tests/SearchUpdaterTest.php +++ b/tests/SearchUpdaterTest.php @@ -14,6 +14,10 @@ class SearchUpdaterTest_Container extends DataObject { private static $has_many = array( 'HasManyObjects' => 'SearchUpdaterTest_HasMany' ); + + private static $many_many = array( + 'ManyManyObjects' => 'SearchUpdaterTest_ManyMany' + ); } class SearchUpdaterTest_HasOne extends DataObject { @@ -38,6 +42,17 @@ class SearchUpdaterTest_HasMany extends DataObject { ); } +class SearchUpdaterTest_ManyMany extends DataObject { + private static $db = array( + 'Field1' => 'Varchar', + 'Field2' => 'Varchar' + ); + + private static $belongs_many_many = array( + 'ManyManyContainer' => 'SearchUpdaterTest_Container' + ); +} + class SearchUpdaterTest_Index extends SearchIndex_Recording { function init() { $this->addClass('SearchUpdaterTest_Container'); diff --git a/tests/SolrIndexTest.php b/tests/SolrIndexTest.php index ee96e73..7b05da2 100644 --- a/tests/SolrIndexTest.php +++ b/tests/SolrIndexTest.php @@ -16,6 +16,36 @@ class SolrIndexTest extends SapphireTest { parent::setUp(); } + function testFieldDataHasOne() { + $index = new SolrIndexTest_FakeIndex(); + $data = $index->fieldData('HasOneObject.Field1'); + $data = $data['SearchUpdaterTest_Container_HasOneObject_Field1']; + + $this->assertEquals('SearchUpdaterTest_Container', $data['origin']); + $this->assertEquals('SearchUpdaterTest_Container', $data['base']); + $this->assertEquals('SearchUpdaterTest_HasOne', $data['class']); + } + + function testFieldDataHasMany() { + $index = new SolrIndexTest_FakeIndex(); + $data = $index->fieldData('HasManyObjects.Field1'); + $data = $data['SearchUpdaterTest_Container_HasManyObjects_Field1']; + + $this->assertEquals('SearchUpdaterTest_Container', $data['origin']); + $this->assertEquals('SearchUpdaterTest_Container', $data['base']); + $this->assertEquals('SearchUpdaterTest_HasMany', $data['class']); + } + + function testFieldDataManyMany() { + $index = new SolrIndexTest_FakeIndex(); + $data = $index->fieldData('ManyManyObjects.Field1'); + $data = $data['SearchUpdaterTest_Container_ManyManyObjects_Field1']; + + $this->assertEquals('SearchUpdaterTest_Container', $data['origin']); + $this->assertEquals('SearchUpdaterTest_Container', $data['base']); + $this->assertEquals('SearchUpdaterTest_ManyMany', $data['class']); + } + function testBoost() { $serviceMock = $this->getServiceMock(); Phockito::when($serviceMock)->search(anything(), anything(), anything(), anything(), anything())->return($this->getFakeRawSolrResponse()); @@ -132,5 +162,6 @@ class SolrIndexTest_FakeIndex extends SolrIndex { $this->addFilterField('MyDate', 'Date'); $this->addFilterField('HasOneObject.Field1'); $this->addFilterField('HasManyObjects.Field1'); + $this->addFilterField('ManyManyObjects.Field1'); } -} \ No newline at end of file +}