176 lines
5.1 KiB
PHP
Executable File
176 lines
5.1 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Search\Model\SearchEngine;
|
|
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
|
|
/**
|
|
* Class ConfigTest
|
|
*
|
|
* @magentoAppIsolation enabled
|
|
*/
|
|
class ConfigTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* @var \Magento\Search\Model\SearchEngine\Config|MockObject
|
|
*/
|
|
private $config;
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
protected function setUp(): void
|
|
{
|
|
$xmlPath = __DIR__ . '/../../_files/search_engine.xml';
|
|
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
|
|
|
|
// Clear out the cache
|
|
$cacheManager = $objectManager->create(\Magento\Framework\App\Cache\Manager::class);
|
|
/** @var \Magento\Framework\App\Cache\Manager $cacheManager */
|
|
$cacheManager->clean($cacheManager->getAvailableTypes());
|
|
|
|
$fileResolver = $this->getMockForAbstractClass(
|
|
\Magento\Framework\Config\FileResolverInterface::class,
|
|
[],
|
|
'',
|
|
false
|
|
);
|
|
$fileResolver->expects($this->any())->method('get')->willReturn([file_get_contents($xmlPath)]);
|
|
|
|
$configReader = $objectManager->create(
|
|
\Magento\Framework\Search\SearchEngine\Config\Reader::class,
|
|
['fileResolver' => $fileResolver]
|
|
);
|
|
$dataStorage = $objectManager->create(
|
|
\Magento\Search\Model\SearchEngine\Config\Data::class,
|
|
['reader' => $configReader]
|
|
);
|
|
$this->config = $objectManager->create(
|
|
\Magento\Search\Model\SearchEngine\Config::class,
|
|
['dataStorage' => $dataStorage]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Data provider for the test
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function loadGetDeclaredFeaturesDataProvider()
|
|
{
|
|
return [
|
|
'features-synonyms' => [
|
|
'searchEngine' => 'mysql',
|
|
'expectedResult' => ['synonyms']
|
|
],
|
|
'features-synonyms-stopwords' => [
|
|
'searchEngine' => 'other',
|
|
'expectedResult' => ['synonyms', 'stopwords']
|
|
],
|
|
'features-none1' => [
|
|
'searchEngine' => 'none1',
|
|
'expectedResult' => []
|
|
],
|
|
'features-none2' => [
|
|
'searchEngine' => 'none2',
|
|
'expectedResult' => []
|
|
],
|
|
'features-none_exist' => [
|
|
'searchEngine' => 'none_exist',
|
|
'expectedResult' => []
|
|
]
|
|
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @param string $searchEngine
|
|
* @param array $expectedResult
|
|
* @dataProvider loadGetDeclaredFeaturesDataProvider
|
|
*/
|
|
public function testGetDeclaredFeatures($searchEngine, $expectedResult)
|
|
{
|
|
$this->assertEquals($expectedResult, $this->config->getDeclaredFeatures($searchEngine));
|
|
}
|
|
|
|
/**
|
|
* Data provider for the test
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function loadIsFeatureSupportedDataProvider()
|
|
{
|
|
return [
|
|
[
|
|
'feature' => 'synonyms',
|
|
'searchEngine' => 'mysql',
|
|
'expectedResult' => true
|
|
],
|
|
[
|
|
'feature' => 'stopwords',
|
|
'searchEngine' => 'mysql',
|
|
'expectedResult' => false
|
|
],
|
|
[
|
|
'feature' => 'synonyms',
|
|
'searchEngine' => 'other',
|
|
'expectedResult' => true
|
|
],
|
|
[
|
|
'feature' => 'stopwords',
|
|
'searchEngine' => 'other',
|
|
'expectedResult' => true
|
|
],
|
|
[
|
|
'feature' => 'synonyms',
|
|
'searchEngine' => 'none1',
|
|
'expectedResult' => false
|
|
],
|
|
[
|
|
'feature' => 'stopwords',
|
|
'searchEngine' => 'none1',
|
|
'expectedResult' => false
|
|
],
|
|
[
|
|
'feature' => 'synonyms',
|
|
'searchEngine' => 'none2',
|
|
'expectedResult' => false
|
|
],
|
|
[
|
|
'feature' => 'stopwords',
|
|
'searchEngine' => 'none2',
|
|
'expectedResult' => false
|
|
],
|
|
[
|
|
'feature' => 'stopwords',
|
|
'searchEngine' => 'none_exist',
|
|
'expectedResult' => false
|
|
],
|
|
[
|
|
'feature' => 'none_exist',
|
|
'searchEngine' => 'none_exist',
|
|
'expectedResult' => false
|
|
],
|
|
[
|
|
'feature' => 'none_exist',
|
|
'searchEngine' => 'mysql',
|
|
'expectedResult' => false
|
|
]
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @param string $searchEngine
|
|
* @param string $feature
|
|
* @param array $expectedResult
|
|
* @dataProvider loadIsFeatureSupportedDataProvider
|
|
*/
|
|
public function testIsFeatureSupported($searchEngine, $feature, $expectedResult)
|
|
{
|
|
$this->assertEquals($expectedResult, $this->config->isFeatureSupported($searchEngine, $feature));
|
|
}
|
|
}
|