View source
<?php
namespace Drupal\Tests\search_api\Unit;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Config\ImmutableConfig;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\search_api\Utility\Utility;
use Drupal\Tests\UnitTestCase;
class UtilityTest extends UnitTestCase {
protected function setUp() {
parent::setUp();
$container = new ContainerBuilder();
$config_factory = $this
->createMock(ConfigFactoryInterface::class);
$config = $this
->createMock(ImmutableConfig::class);
$config
->method('get')
->willReturn(NULL);
$config_factory
->method('get')
->willReturnMap([
[
'search_api.settings',
$config,
],
]);
$container
->set('config.factory', $config_factory);
\Drupal::setContainer($container);
}
public function testFormatBoostFactor() {
$this
->assertEquals('0.00', Utility::formatBoostFactor(0));
$this
->assertEquals('0.00', Utility::formatBoostFactor(0.0));
$this
->assertEquals('0.00', Utility::formatBoostFactor(0.0));
$this
->assertEquals('0.00', Utility::formatBoostFactor('0'));
$this
->assertEquals('0.00', Utility::formatBoostFactor('0.0'));
$this
->assertEquals('0.00', Utility::formatBoostFactor('0.00'));
$this
->assertEquals('0.00', Utility::formatBoostFactor(''));
$this
->assertEquals('1.00', Utility::formatBoostFactor(1));
$this
->assertEquals('1.00', Utility::formatBoostFactor(1.0));
$this
->assertEquals('1.00', Utility::formatBoostFactor(1.0));
$this
->assertEquals('1.10', Utility::formatBoostFactor(1.1));
$this
->assertEquals('1.01', Utility::formatBoostFactor(1.01));
$this
->assertEquals('1.00', Utility::formatBoostFactor('1'));
$this
->assertEquals('1.10', Utility::formatBoostFactor('1.1'));
$this
->assertEquals('1.01', Utility::formatBoostFactor('1.01'));
}
public function testGetBoostFactors() {
$expected = [
'0.00' => '0.00',
'0.10' => '0.10',
'0.20' => '0.20',
'0.30' => '0.30',
'0.50' => '0.50',
'0.60' => '0.60',
'0.70' => '0.70',
'0.80' => '0.80',
'0.90' => '0.90',
'1.00' => '1.00',
'1.10' => '1.10',
'1.20' => '1.20',
'1.30' => '1.30',
'1.40' => '1.40',
'1.50' => '1.50',
'2.00' => '2.00',
'3.00' => '3.00',
'5.00' => '5.00',
'8.00' => '8.00',
'13.00' => '13.00',
'21.00' => '21.00',
];
$this
->assertEquals($expected, Utility::getBoostFactors());
$additional_factors = [
4,
'0.81',
3,
0.8100000000000001,
'3',
'8.2',
'0.81',
14.123,
0.8110000000000001,
];
$expected = [
'0.00' => '0.00',
'0.10' => '0.10',
'0.20' => '0.20',
'0.30' => '0.30',
'0.50' => '0.50',
'0.60' => '0.60',
'0.70' => '0.70',
'0.80' => '0.80',
'0.81' => '0.81',
'0.90' => '0.90',
'1.00' => '1.00',
'1.10' => '1.10',
'1.20' => '1.20',
'1.30' => '1.30',
'1.40' => '1.40',
'1.50' => '1.50',
'2.00' => '2.00',
'3.00' => '3.00',
'4.00' => '4.00',
'5.00' => '5.00',
'8.00' => '8.00',
'8.20' => '8.20',
'13.00' => '13.00',
'14.12' => '14.12',
'21.00' => '21.00',
];
$this
->assertEquals($expected, Utility::getBoostFactors($additional_factors));
}
}