TestFieldsProcessorPlugin.php in Search API 8
File
tests/src/Unit/Processor/TestFieldsProcessorPlugin.php
View source
<?php
namespace Drupal\Tests\search_api\Unit\Processor;
use Drupal\search_api\Item\FieldInterface;
use Drupal\search_api\Plugin\search_api\data_type\value\TextValue;
use Drupal\search_api\Processor\FieldsProcessorPluginBase;
use Drupal\search_api\Utility\Utility;
class TestFieldsProcessorPlugin extends FieldsProcessorPluginBase {
protected $methodOverrides = [];
public static function createTokenizedText($value, $score = 1.0) {
$return = new TextValue($value);
$tokens = [];
foreach (explode(' ', $value) as $word) {
$tokens[] = Utility::createTextToken($word, $score);
}
$return
->setTokens($tokens);
return $return;
}
public function setMethodOverride($method, callable $override = NULL) {
$this->methodOverrides[$method] = $override;
}
protected function testField($name, FieldInterface $field) {
if (isset($this->methodOverrides[__FUNCTION__])) {
return $this->methodOverrides[__FUNCTION__]($name, $field);
}
return parent::testField($name, $field);
}
protected function testType($type) {
if (isset($this->methodOverrides[__FUNCTION__])) {
return $this->methodOverrides[__FUNCTION__]($type);
}
return parent::testType($type);
}
protected function processFieldValue(&$value, $type) {
if (isset($this->methodOverrides[__FUNCTION__])) {
$this->methodOverrides[__FUNCTION__]($value, $type);
return;
}
parent::processFieldValue($value, $type);
}
protected function processKey(&$value) {
if (isset($this->methodOverrides[__FUNCTION__])) {
$this->methodOverrides[__FUNCTION__]($value);
return;
}
parent::processKey($value);
}
protected function processConditionValue(&$value) {
if (isset($this->methodOverrides[__FUNCTION__])) {
$this->methodOverrides[__FUNCTION__]($value);
return;
}
parent::processConditionValue($value);
}
protected function shouldProcess($value) : bool {
if (isset($this->methodOverrides[__FUNCTION__])) {
return $this->methodOverrides[__FUNCTION__]($value);
}
return parent::shouldProcess($value);
}
protected function process(&$value) {
if (isset($this->methodOverrides[__FUNCTION__])) {
$this->methodOverrides[__FUNCTION__]($value);
return;
}
if ($value !== NULL) {
$value = "*{$value}";
}
else {
$value = 'undefined';
}
}
}