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\\ResourceModel\\Db\\AbstractDb', '_mainTable');
     $mainTableReflection->setAccessible(true);
     $mainTableReflection->setValue($this->_model, 'tableName');
     $idFieldNameReflection = new \ReflectionProperty('Magento\\Framework\\Model\\ResourceModel\\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\\ResourceModel\\Db\\AbstractDb', $this->_model->delete($abstractModelMock));
 }