From bfac7dc33ae5cde5795dc6f90e559e428e41a601 Mon Sep 17 00:00:00 2001 From: Mark Anthony Adriano Date: Fri, 13 May 2022 22:55:43 +1200 Subject: [PATCH] Initial test coverage added --- tests/DataObject/DataObjectDocumentTest.php | 36 ++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/tests/DataObject/DataObjectDocumentTest.php b/tests/DataObject/DataObjectDocumentTest.php index 7eefcb3..5ad2d22 100644 --- a/tests/DataObject/DataObjectDocumentTest.php +++ b/tests/DataObject/DataObjectDocumentTest.php @@ -2,13 +2,16 @@ namespace SilverStripe\SearchService\Tests\DataObject; +use SilverStripe\Core\Config\Config; use SilverStripe\ORM\DataObject; use SilverStripe\ORM\FieldType\DBDatetime; use SilverStripe\ORM\RelationList; use SilverStripe\SearchService\DataObject\DataObjectDocument; +use SilverStripe\SearchService\Exception\IndexConfigurationException; use SilverStripe\SearchService\Interfaces\DocumentAddHandler; use SilverStripe\SearchService\Interfaces\DocumentRemoveHandler; use SilverStripe\SearchService\Schema\Field; +use SilverStripe\SearchService\Service\IndexConfiguration; use SilverStripe\SearchService\Tests\Fake\DataObjectFake; use SilverStripe\SearchService\Tests\Fake\DataObjectFakeVersioned; use SilverStripe\SearchService\Tests\Fake\DataObjectSubclassFake; @@ -18,7 +21,6 @@ use SilverStripe\SearchService\Tests\SearchServiceTest; use SilverStripe\Security\Member; use SilverStripe\Security\Permission; -use SilverStripe\SearchService\Exception\IndexConfigurationException; use SilverStripe\Versioned\Versioned; class DataObjectDocumentTest extends SearchServiceTest @@ -85,6 +87,38 @@ public function testShouldIndex() $this->assertFalse($doc->shouldIndex()); } + public function testSubsiteShouldIndex() + { + $config = $this->mockConfig(); + + Config::modify()->merge( + IndexConfiguration::class, + 'indexes', + [ + 'index4' => [ + 'includeClasses' => [ + VersionedDataObjectFake::class => true + ] + ], + ] + ); + + $classes = $config->getSearchableBaseClasses(); + $this->assertCount(1, $classes); + $this->assertContains(VersionedDataObjectFake::class, $classes); + + /** @var Versioned $dataobject */ + $dataobject = new VersionedDataObjectFake([ + 'ID' => 5, + 'ShowInSearch' => true, + 'SubsiteID' => null, + ]); + $dataobject->publishSingle(); + $doc = DataObjectDocument::create($dataobject); + + $this->assertTrue($doc->shouldIndex()); + } + public function testMarkIndexed() { $dataobject = new DataObjectFake(['ShowInSearch' => true]);