public function testDelete() { $connectionInterfaceMock = $this->getMock('\\Magento\\Framework\\DB\\Adapter\\AdapterInterface', [], [], '', false); $contextMock = $this->getMock('\\Magento\\Framework\\Model\\Context', [], [], '', false); $registryMock = $this->getMock('\\Magento\\Framework\\Registry', [], [], '', false); $abstractModelMock = $this->getMockForAbstractClass('\\Magento\\Framework\\Model\\AbstractModel', [$contextMock, $registryMock], '', false, true, true, ['__wakeup', 'getId', 'beforeDelete', 'afterDelete', 'afterDeleteCommit', 'getData']); $this->_resourcesMock->expects($this->any())->method('getConnection')->will($this->returnValue($connectionInterfaceMock)); $abstractModelMock->expects($this->once())->method('getData')->willReturn(['data' => 'value']); $connectionMock = $this->getMock('\\Magento\\Framework\\DB\\Adapter\\AdapterInterface'); $this->transactionManagerMock->expects($this->once())->method('start')->with($connectionInterfaceMock)->willReturn($connectionMock); $this->relationProcessorMock->expects($this->once())->method('delete')->with($this->transactionManagerMock, $connectionMock, 'tableName', 'idFieldName', ['data' => 'value']); $this->transactionManagerMock->expects($this->once())->method('commit'); $data = 'tableName'; $this->_resourcesMock->expects($this->any())->method('getTableName')->with($data)->will($this->returnValue('tableName')); $mainTableReflection = new \ReflectionProperty('Magento\\Framework\\Model\\ModelResource\\Db\\AbstractDb', '_mainTable'); $mainTableReflection->setAccessible(true); $mainTableReflection->setValue($this->_model, 'tableName'); $idFieldNameReflection = new \ReflectionProperty('Magento\\Framework\\Model\\ModelResource\\Db\\AbstractDb', '_idFieldName'); $idFieldNameReflection->setAccessible(true); $idFieldNameReflection->setValue($this->_model, 'idFieldName'); $connectionInterfaceMock->expects($this->any())->method('delete')->with('tableName', 'idFieldName'); $connectionInterfaceMock->expects($this->any())->method('quoteInto')->will($this->returnValue('idFieldName')); $abstractModelMock->expects($this->once())->method('beforeDelete'); $abstractModelMock->expects($this->once())->method('afterDelete'); $abstractModelMock->expects($this->once())->method('afterDeleteCommit'); $this->assertInstanceOf('Magento\\Framework\\Model\\ModelResource\\Db\\AbstractDb', $this->_model->delete($abstractModelMock)); }