예제 #1
0
 /**
  * Deletes this instance
  */
 public function delete()
 {
     $where = self::$instanceTable->getAdapter()->quoteInto('instanceID = ?', $this->instanceID);
     $transactionNumber = self::startSerializableTransaction();
     self::$instanceTable->delete($where);
     self::$pageTable->delete($where);
     self::$questionTable->delete($where);
     self::$ruleTable->delete($where);
     self::$questionTypeTable->delete($where);
     self::$questionPromptTable->delete($where);
     self::$questionReferenceTable->delete($where);
     self::$referenceTable->delete($where);
     self::$referenceDetailTable->delete($where);
     self::$responseTable->delete($where);
     self::$sectionReferenceTable->delete($where);
     self::$pageReferenceTable->delete($where);
     self::$sectionTable->delete($where);
     self::dbCommit($transactionNumber);
     // Delete files after transaction to ensure a healthy state such that the worst case
     // scenario is that there may be orphaned files left on disk if the file operation
     // is not successful.
     FileModel::deleteByInstance($this->instanceRow->instanceID);
 }
예제 #2
0
 public function testDeleteByInstance()
 {
     $properties = array('filename' => 'sample.pdf', 'mime' => 'application/pdf');
     $filesNoId = new FileModel(new NoInstanceFoo());
     $filesNoId->storeFilename(TEST_PATH . '/fixtures/sample.pdf', $properties);
     $filesId = new FileModel(new InstanceFoo());
     $filesId->storeFilename(TEST_PATH . '/fixtures/sample.pdf', $properties);
     FileModel::deleteByInstance(1);
     $this->assertEquals(count($filesId->fetchAll()), 0);
     $this->assertEquals(count($filesNoId->fetchAll()), 1);
 }