diff --git a/src/Schema/Field.php b/src/Schema/Field.php index e87ae93..d3de15c 100644 --- a/src/Schema/Field.php +++ b/src/Schema/Field.php @@ -42,7 +42,7 @@ public function setProperty(?string $property): Field return $this; } - public function getOption(string $key) // phpcs:ignore SlevomatCodingStandard.TypeHints + public function getOption(string $key): mixed { return $this->options[$key] ?? null; } diff --git a/tests/Fake/FakeEnterpriseSearchClient.php b/tests/Fake/FakeEnterpriseSearchClient.php deleted file mode 100644 index c00640d..0000000 --- a/tests/Fake/FakeEnterpriseSearchClient.php +++ /dev/null @@ -1,24 +0,0 @@ -documents[$doc['id']] = $doc; - } - } - - public function deleteDocuments($engineName, $ids) // phpcs:ignore SlevomatCodingStandard.TypeHints - { - foreach ($ids as $id) { - unset($this->documents[$id]); - } - } - -} diff --git a/tests/Jobs/ClearIndexJobTest.php b/tests/Jobs/ClearIndexJobTest.php index bd9a73f..8946fb5 100644 --- a/tests/Jobs/ClearIndexJobTest.php +++ b/tests/Jobs/ClearIndexJobTest.php @@ -47,7 +47,7 @@ public function testSetup(): void { $config = $this->mockConfig(); $config->set('crawl_page_content', false); - $this->loadIndex(10); + $job = ClearIndexJob::create('myindex', 1); $job->setup(); diff --git a/tests/Jobs/RemoveDataObjectJobTest.php b/tests/Jobs/RemoveDataObjectJobTest.php index fec297e..a63f3ec 100644 --- a/tests/Jobs/RemoveDataObjectJobTest.php +++ b/tests/Jobs/RemoveDataObjectJobTest.php @@ -6,6 +6,7 @@ use SilverStripe\SearchService\Jobs\RemoveDataObjectJob; use SilverStripe\SearchService\Schema\Field; use SilverStripe\SearchService\Tests\Fake\DataObjectFake; +use SilverStripe\SearchService\Tests\Fake\DataObjectFakeVersioned; use SilverStripe\SearchService\Tests\Fake\ImageFake; use SilverStripe\SearchService\Tests\Fake\TagFake; use SilverStripe\SearchService\Tests\SearchServiceTest; @@ -22,6 +23,7 @@ class RemoveDataObjectJobTest extends SearchServiceTest */ protected static $extra_dataobjects = [ DataObjectFake::class, + DataObjectFakeVersioned::class, TagFake::class, ImageFake::class, Member::class, @@ -30,28 +32,26 @@ class RemoveDataObjectJobTest extends SearchServiceTest public function testJob(): void { $config = $this->mockConfig(); - $service = $this->mockService(); - $config->set('getSearchableClasses', [ - DataObjectFake::class, - TagFake::class, - ]); + $config->set( + 'getSearchableClasses', + [ + DataObjectFake::class, + TagFake::class, + ] + ); - $config->set('getFieldsForClass', [ - DataObjectFake::class => [ - new Field('title'), - new Field('tagtitles', 'Tags.Title'), - ], - ]); + $config->set( + 'getFieldsForClass', + [ + DataObjectFake::class => [ + new Field('title'), + new Field('tagtitles', 'Tags.Title'), + ], + ] + ); $dataobject = $this->objFromFixture(DataObjectFake::class, 'one'); - $service->addDocument($doc = DataObjectDocument::create($dataobject)); - $this->assertCount(1, $service->listDocuments('test')); - $doc = $service->documents[$doc->getIdentifier()] ?? null; - $this->assertNotNull($doc); - $this->assertArrayHasKey('tagtitles', $doc); - $this->assertCount(2, $doc['tagtitles']); - // delete a tag $tag = $dataobject->Tags()->first(); $job = RemoveDataObjectJob::create( diff --git a/tests/SearchServiceTest.php b/tests/SearchServiceTest.php index 88b51c3..80151d0 100644 --- a/tests/SearchServiceTest.php +++ b/tests/SearchServiceTest.php @@ -2,7 +2,6 @@ namespace SilverStripe\SearchService\Tests; -use Elastic\EnterpriseSearch\Client; use PHPUnit\Framework\ExpectationFailedException; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\SapphireTest; @@ -50,27 +49,6 @@ protected function loadIndex(int $count = 10): ServiceFake return $service; } - protected function mockClient(): Client - { - $client = $this->getMockBuilder(Client::class) - ->onlyMethods([ - 'indexDocuments', - 'deleteDocuments', - 'getDocuments', - 'listDocuments', - 'getSchema', - 'updateSchema', - 'listEngines', - 'createEngine', - ]) - ->disableOriginalConstructor() - ->getMock(); - - Injector::inst()->registerService($client, Client::class); - - return $client; - } - protected function assertArrayContainsCallback(array $arr, callable $func): bool { foreach ($arr as $item) { diff --git a/tests/Service/IndexConfigurationTest.php b/tests/Service/IndexConfigurationTest.php index 41182be..d723ad0 100644 --- a/tests/Service/IndexConfigurationTest.php +++ b/tests/Service/IndexConfigurationTest.php @@ -4,6 +4,7 @@ use SilverStripe\Control\Controller; use SilverStripe\Core\Config\Config; +use SilverStripe\Dev\Debug; use SilverStripe\Dev\SapphireTest; use SilverStripe\SearchService\Schema\Field; use SilverStripe\SearchService\Service\IndexConfiguration; @@ -11,8 +12,8 @@ use SilverStripe\SearchService\Tests\Fake\DataObjectFakeAlternate; use SilverStripe\SearchService\Tests\Fake\DataObjectSubclassFake; use SilverStripe\SearchService\Tests\Fake\DocumentFake; -use SilverStripe\SearchService\Tests\Fake\FakeEnterpriseSearchClient; use SilverStripe\SearchService\Tests\Fake\FakeFetcher; +use SilverStripe\SearchService\Tests\Fake\ServiceFake; use SilverStripe\Security\Member; use SilverStripe\View\ViewableData; @@ -72,7 +73,7 @@ public function testIndexesForClassName(): void $this->assertFalse(in_array('index5', $indexNames)); $this->assertFalse(in_array('index6', $indexNames)); - $this->assertEmpty($config->getIndexesForClassName(FakeEnterpriseSearchClient::class)); + $this->assertEmpty($config->getIndexesForClassName(ServiceFake::class)); } public function testGetIndexesForDocument(): void @@ -116,7 +117,7 @@ public function testGetIndexesForDocument(): void $this->assertFalse(in_array('index5', $indexNames)); $this->assertFalse(in_array('index6', $indexNames)); - $this->assertEmpty($config->getIndexesForDocument(new DocumentFake(FakeEnterpriseSearchClient::class))); + $this->assertEmpty($config->getIndexesForDocument(new DocumentFake('ClassDoesNotExist'))); } public function testIsClassIndexed(): void @@ -131,7 +132,7 @@ public function testIsClassIndexed(): void $this->assertTrue($config->isClassIndexed(Controller::class)); $this->assertTrue($config->isClassIndexed(DataObjectFakeAlternate::class)); $this->assertFalse($config->isClassIndexed(FakeFetcher::class)); - $this->assertFalse($config->isClassIndexed(FakeEnterpriseSearchClient::class)); + $this->assertFalse($config->isClassIndexed(ServiceFake::class)); } public function testGetClassesForIndex(): void @@ -246,7 +247,9 @@ public function testGetFieldsForClass(): void $this->assertContains('field3', $names); $this->assertContains('field9', $names); - $fields = $config->getFieldsForClass(FakeEnterpriseSearchClient::class); + $className = ServiceFake::class; + + $fields = $config->getFieldsForClass($className); $this->assertEmpty($fields); Config::modify()->merge( @@ -255,7 +258,7 @@ public function testGetFieldsForClass(): void [ 'index5' => [ 'includeClasses' => [ - FakeEnterpriseSearchClient::class => [ + $className => [ 'fields' => [ 'field10' => true, 'field11' => true, @@ -267,7 +270,7 @@ public function testGetFieldsForClass(): void ], ); - $fields = $config->getFieldsForClass(FakeEnterpriseSearchClient::class); + $fields = $config->getFieldsForClass($className); $this->assertCount(2, $fields); $names = array_map(function (Field $field) { return $field->getSearchFieldName(); @@ -385,7 +388,7 @@ protected function bootstrapIndexes(): void ], 'index5' => [ 'includeClasses' => [ - FakeEnterpriseSearchClient::class => false, + ServiceFake::class => false, ], ], 'index6' => [],