Skip to content

Commit

Permalink
Some more refactoring of tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Chris Penny committed Aug 2, 2022
1 parent 13418a7 commit a2a7660
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 74 deletions.
2 changes: 1 addition & 1 deletion src/Schema/Field.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
24 changes: 0 additions & 24 deletions tests/Fake/FakeEnterpriseSearchClient.php

This file was deleted.

2 changes: 1 addition & 1 deletion tests/Jobs/ClearIndexJobTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down
36 changes: 18 additions & 18 deletions tests/Jobs/RemoveDataObjectJobTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -22,6 +23,7 @@ class RemoveDataObjectJobTest extends SearchServiceTest
*/
protected static $extra_dataobjects = [
DataObjectFake::class,
DataObjectFakeVersioned::class,
TagFake::class,
ImageFake::class,
Member::class,
Expand All @@ -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(
Expand Down
22 changes: 0 additions & 22 deletions tests/SearchServiceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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) {
Expand Down
19 changes: 11 additions & 8 deletions tests/Service/IndexConfigurationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@

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;
use SilverStripe\SearchService\Tests\Fake\DataObjectFake;
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;

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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(
Expand All @@ -255,7 +258,7 @@ public function testGetFieldsForClass(): void
[
'index5' => [
'includeClasses' => [
FakeEnterpriseSearchClient::class => [
$className => [
'fields' => [
'field10' => true,
'field11' => true,
Expand All @@ -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();
Expand Down Expand Up @@ -385,7 +388,7 @@ protected function bootstrapIndexes(): void
],
'index5' => [
'includeClasses' => [
FakeEnterpriseSearchClient::class => false,
ServiceFake::class => false,
],
],
'index6' => [],
Expand Down

0 comments on commit a2a7660

Please sign in to comment.