engineResolverMock = $this->getMockBuilder(EngineResolverInterface::class) ->getMockForAbstractClass(); $this->objectManager = $this->createMock(ObjectManagerInterface::class); $this->adapterFactory = new AdapterFactory( $this->objectManager, ['ClassName' => 'ClassName'], $this->engineResolverMock ); } public function testCreate() { $this->engineResolverMock->expects($this->once())->method('getCurrentSearchEngine') ->will($this->returnValue('ClassName')); $adapter = $this->getMockBuilder(\Magento\Framework\Search\AdapterInterface::class) ->disableOriginalConstructor() ->getMock(); $this->objectManager->expects($this->once())->method('create') ->with($this->equalTo('ClassName'), $this->equalTo(['input'])) ->will($this->returnValue($adapter)); $result = $this->adapterFactory->create(['input']); $this->assertInstanceOf(\Magento\Framework\Search\AdapterInterface::class, $result); } /** * @expectedException \InvalidArgumentException */ public function testCreateExceptionThrown() { $this->engineResolverMock->expects($this->once())->method('getCurrentSearchEngine') ->will($this->returnValue('ClassName')); $this->objectManager->expects($this->once())->method('create') ->with($this->equalTo('ClassName'), $this->equalTo(['input'])) ->will($this->returnValue('t')); $this->adapterFactory->create(['input']); } /** * @expectedException \LogicException */ public function testCreateLogicException() { $this->engineResolverMock->expects($this->once())->method('getCurrentSearchEngine') ->will($this->returnValue('Class')); $this->adapterFactory->create(['input']); } }