objectManagerMock = $this->createMock(\Magento\Framework\ObjectManagerInterface::class); $this->model = new \Magento\Framework\Indexer\ActionFactory($this->objectManagerMock); } /** * @expectedException \InvalidArgumentException * @expectedExceptionMessage NotAction doesn't implement \Magento\Framework\Indexer\ActionInterface */ public function testGetWithException() { $notActionInterfaceMock = $this->getMockBuilder('NotAction')->getMock(); $this->objectManagerMock->expects($this->once()) ->method('create') ->with('NotAction', []) ->willReturn($notActionInterfaceMock); $this->model->create('NotAction'); } public function testCreate() { $actionInterfaceMock = $this->getMockForAbstractClass( \Magento\Framework\Indexer\ActionInterface::class, [], '', false ); $this->objectManagerMock->expects($this->once()) ->method('create') ->with(\Magento\Framework\Indexer\ActionInterface::class, []) ->willReturn($actionInterfaceMock); $this->model->create(\Magento\Framework\Indexer\ActionInterface::class); $this->assertInstanceOf(\Magento\Framework\Indexer\ActionInterface::class, $actionInterfaceMock); } }