scopeConfig = $this->getMockBuilder(ScopeConfigInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->loggerMock = $this->getMockBuilder(LoggerInterface::class) ->getMockForAbstractClass(); $this->path = 'catalog/search/engine'; $this->scopeType = 'default'; $this->scopeCode = null; $this->engines = ['defaultentengine', 'anotherengine']; $this->model = new EngineResolver( $this->scopeConfig, $this->engines, $this->loggerMock, $this->path, $this->scopeType, $this->scopeCode, $this->defaultEngine ); } /** * Test getCurrentSearchEngine */ public function testGetCurrentSearchEngine() { $engine = 'anotherengine'; $this->scopeConfig->expects($this->any()) ->method('getValue') ->willReturn($engine); $this->assertEquals($engine, $this->model->getCurrentSearchEngine()); } /** * Test getCurrentSearchEngine */ public function testGetCurrentSearchEngineDefaultEngine() { $configEngine = 'nonexistentengine'; $this->scopeConfig->expects($this->any()) ->method('getValue') ->willReturn($configEngine); $this->loggerMock->expects($this->any()) ->method('error') ->with( "{$configEngine} search engine doesn't exist. Falling back to {$this->defaultEngine}" ); $this->assertEquals($this->defaultEngine, $this->model->getCurrentSearchEngine()); } /** * Test getCurrentSearchEngine */ public function testGetCurrentSearchEngineDefaultEngineNonExistent() { $configEngine = 'nonexistentengine'; $this->defaultEngine = 'nonexistenddefaultengine'; $this->scopeConfig->expects($this->any()) ->method('getValue') ->willReturn($configEngine); $this->loggerMock->expects($this->any()) ->method('error') ->with( 'Default search engine is not configured, fallback is not possible' ); $model = new EngineResolver( $this->scopeConfig, $this->engines, $this->loggerMock, $this->path, $this->scopeType, $this->scopeCode, $this->defaultEngine ); $this->assertEquals($this->defaultEngine, $model->getCurrentSearchEngine()); } }