/**
  * test delete test instance
  * @depends testInstanceCreate
  * @param \core_kernel_classes_Resource $testInstance
  * @return void
  */
 public function testInstanceDuplicate($testInstance)
 {
     $duplicate = $testInstance->duplicate();
     $this->assertTrue($duplicate->exists());
     $this->assertNotEquals($testInstance->getUri(), $duplicate->getUri());
     $this->assertEquals('unittest test', $duplicate->getLabel());
     $duplicate->delete();
 }
 /**
  * (non-PHPdoc)
  * @see taoTests_models_classes_TestModel::cloneContent()
  */
 public function cloneContent(core_kernel_classes_Resource $content)
 {
     return $content->duplicate();
 }
 /**
  * Short description of method duplicateActivityExecutionVariables
  *
  * @access public
  * @author Somsack Sipasseuth, <*****@*****.**>
  * @param  Resource oldActivityExecution
  * @param  Resource newActivityDefinition
  * @param  Resource processExecution
  * @return core_kernel_classes_Resource
  */
 public function duplicateActivityExecutionVariables(core_kernel_classes_Resource $oldActivityExecution, core_kernel_classes_Resource $newActivityDefinition, core_kernel_classes_Resource $processExecution)
 {
     $returnValue = null;
     $excludedProperties = array(RDFS_LABEL, PROPERTY_ACTIVITY_EXECUTION_CURRENT_USER, PROPERTY_ACTIVITY_EXECUTION_ACTIVITY, PROPERTY_ACTIVITY_EXECUTION_CTX_RECOVERY, PROPERTY_ACTIVITY_EXECUTION_PREVIOUS, PROPERTY_ACTIVITY_EXECUTION_FOLLOWING, PROPERTY_ACTIVITY_EXECUTION_STATUS, PROPERTY_ACTIVITY_EXECUTION_TIME_CREATED, PROPERTY_ACTIVITY_EXECUTION_TIME_STARTED, PROPERTY_ACTIVITY_EXECUTION_TIME_LASTACCESS, PROPERTY_ACTIVITY_EXECUTION_ACL_MODE, PROPERTY_ACTIVITY_EXECUTION_RESTRICTED_USER, PROPERTY_ACTIVITY_EXECUTION_RESTRICTED_ROLE);
     $newActivityExecution = $oldActivityExecution->duplicate($excludedProperties);
     $newActivityExecution->setPropertyValue($this->activityProperty, $newActivityDefinition->getUri());
     $newActivityExecution->setPropertyValue(new core_kernel_classes_Property(PROPERTY_ACTIVITY_EXECUTION_TIME_CREATED), time());
     //apply activity ACL from definition:
     $this->applyAclDefinitionToExecution($newActivityDefinition, $newActivityExecution);
     if ($processExecution->setPropertyValue($this->processInstanceActivityExecutionsProperty, $newActivityExecution->getUri())) {
         $returnValue = $newActivityExecution;
     }
     return $returnValue;
 }
 /**
  * Short description of method cloneWfResource
  *
  * @access protected
  * @author Joel Bout, <*****@*****.**>
  * @param  Resource instance
  * @param  Class clazz
  * @param  array forbiddenProperties
  * @param  string newLabel
  * @return core_kernel_classes_Resource
  */
 protected function cloneWfResource(core_kernel_classes_Resource $instance, core_kernel_classes_Class $clazz, $forbiddenProperties = array(), $newLabel = '')
 {
     $returnValue = null;
     $returnValue = $instance->duplicate($forbiddenProperties);
     if (!is_null($returnValue)) {
         $cloneLabel = empty($newLabel) ? $instance->getLabel() . $this->cloneLabel : $newLabel;
         $returnValue->setLabel($cloneLabel);
     }
     return $returnValue;
 }