function testDates()
 {
     $GLOBALS['Language']->setReturnValueAt(0, 'getText', "Y-m-d", array('system', 'datefmt_short'));
     $GLOBALS['Language']->setReturnValueAt(1, 'getText', "d/m/Y", array('system', 'datefmt_short'));
     $GLOBALS['Language']->setReturnValueAt(2, 'getText', "Y-m-d", array('system', 'datefmt_short'));
     $field = new MockTracker_FormElement_Field_Date();
     $date = new Tracker_Artifact_ChangesetValue_Date(111, $field, false, 1221221466);
     $this->assertEqual($date->getTimestamp(), 1221221466);
     $this->assertEqual($date->getDate(), "2008-09-12");
     $this->assertEqual($date->getDate(), "12/09/2008");
     $this->assertEqual($date->getSoapValue(), 1221221466);
     $this->assertEqual($date->getValue(), "2008-09-12");
     $null_date = new Tracker_Artifact_ChangesetValue_Date(111, $field, false, null);
     $this->assertNull($null_date->getTimestamp());
     $this->assertEqual($null_date->getDate(), '');
     $this->assertEqual($null_date->getSoapValue(), '');
 }
 public function testDates()
 {
     stub($this->field)->formatDateForDisplay(1221221466)->returns("12/09/2008");
     $date = new Tracker_Artifact_ChangesetValue_Date(111, $this->field, false, 1221221466);
     $this->assertEqual($date->getTimestamp(), 1221221466);
     $this->assertEqual($date->getDate(), "12/09/2008");
     stub($this->field)->formatDateForDisplay(1221221467)->returns("2008-09-12");
     $date = new Tracker_Artifact_ChangesetValue_Date(111, $this->field, false, 1221221467);
     $this->assertEqual($date->getTimestamp(), 1221221467);
     $this->assertEqual($date->getDate(), "2008-09-12");
     $this->assertEqual($date->getSoapValue($this->user), array('value' => 1221221467));
     $this->assertEqual($date->getValue(), "2008-09-12");
     $null_date = new Tracker_Artifact_ChangesetValue_Date(111, $this->field, false, null);
     $this->assertNull($null_date->getTimestamp());
     $this->assertEqual($null_date->getDate(), '');
     $this->assertEqual($null_date->getSoapValue($this->user), array('value' => ''));
 }
 /**
  * Returns diff between current date and date in param
  *
  * @param Tracker_Artifact_ChangesetValue_Date $changeset_value the changeset value to compare
  *
  * @return string The difference between another $changeset_value, false if no differneces
  */
 public function diff($changeset_value, $format = 'html')
 {
     $next_date = $this->getDate();
     if ($changeset_value->getTimestamp() != 0) {
         $previous_date = $changeset_value->getDate();
         if ($previous_date !== $next_date) {
             if ($next_date === '') {
                 return $GLOBALS['Language']->getText('plugin_tracker_artifact', 'cleared');
             } else {
                 return $GLOBALS['Language']->getText('plugin_tracker_artifact', 'changed_from') . ' ' . $previous_date . ' ' . $GLOBALS['Language']->getText('plugin_tracker_artifact', 'to') . ' ' . $next_date;
             }
         }
     } else {
         return $GLOBALS['Language']->getText('plugin_tracker_artifact', 'set_to') . ' ' . $next_date;
     }
     return false;
 }