public function testImportDateRules() { $xmlstr = <<<XML <?xml version="1.0" encoding="UTF-8"?> <rules> </rules> XML; $xml = new SimpleXMLElement($xmlstr); $date_rules = $xml->addChild('date_rules'); $rule1 = $date_rules->addChild('rule'); $rule1->addChild('source_field')->addAttribute('REF', 'F28'); $rule1->addChild('target_field')->addAttribute('REF', 'F25'); $rule1->addChild('comparator')->addAttribute('type', Tracker_rule_date::COMPARATOR_NOT_EQUALS); $rule2 = $date_rules->addChild('rule'); $rule2->addChild('source_field')->addAttribute('REF', 'F29'); $rule2->addChild('target_field')->addAttribute('REF', 'F30'); $rule2->addChild('comparator')->addAttribute('type', Tracker_rule_date::COMPARATOR_LESS_THAN_OR_EQUALS); $tracker = mock('Tracker'); stub($tracker)->getId()->returns(900); $f1 = stub('Tracker_FormElement_Field_Date')->getId()->returns(102); $f2 = stub('Tracker_FormElement_Field_Date')->getId()->returns(103); $f3 = stub('Tracker_FormElement_Field_Date')->getId()->returns(104); $f4 = stub('Tracker_FormElement_Field_Date')->getId()->returns(105); $array_xml_mapping = array('F25' => $f3, 'F28' => $f1, 'F29' => $f2, 'F30' => $f4); $tracker_rule_dao = mock('Tracker_RuleDao'); $rule_factory = new Tracker_RuleFactory($tracker_rule_dao); $rules = $rule_factory->getInstanceFromXML($xml, $array_xml_mapping, $tracker); $date_rule_expected = new Tracker_Rule_Date(); $date_rule_expected->setComparator(Tracker_rule_date::COMPARATOR_NOT_EQUALS)->setTrackerId($tracker->getId())->setSourceField($array_xml_mapping['F28'])->setTargetField($array_xml_mapping['F25']); $date_rule_expected2 = new Tracker_Rule_Date(); $date_rule_expected2->setComparator(Tracker_rule_date::COMPARATOR_LESS_THAN_OR_EQUALS)->setTrackerId($tracker->getId())->setSourceField($array_xml_mapping['F29'])->setTargetField($array_xml_mapping['F30']); $this->assertEqual(count($rules['date_rules']), 2); $this->assertEqual($rules['date_rules'][0], $date_rule_expected); $this->assertEqual($rules['date_rules'][1], $date_rule_expected2); }
private function setUpRule($id, $source_field, $comparator, $target_field) { $rule = new Tracker_Rule_Date(); $rule->setId($id); $rule->setSourceField($source_field); $rule->setComparator($comparator); $rule->setTargetField($target_field); return $rule; }
public function testValidateReturnsFalseForSameDateAndTimestamp() { $date_rule = new Tracker_Rule_Date(); $date_rule->setComparator(Tracker_Rule_Date::COMPARATOR_NOT_EQUALS); $source_value = strtotime('2012-11-15 14:58'); $target_value = '2012-11-15'; $this->assertFalse($date_rule->validate($source_value, $target_value)); }
/** * * @param SimpleXMLElement $xml containing the structure of the imported semantic * @param array $xmlMapping containig the newly created formElements idexed by their XML IDs * @param Tracker $tracker to which the rule is attached * @return array of \Tracker_Rule_Date */ private function generateDateRulesArrayFromXml($date_rules, &$xmlMapping, $tracker) { $rules = array(); foreach ($date_rules->rule as $xml_rule) { $xml_source_field_attributes = $xml_rule->source_field->attributes(); $source_field = $xmlMapping[(string) $xml_source_field_attributes['REF']]; $xml_target_field_attributes = $xml_rule->target_field->attributes(); $target_field = $xmlMapping[(string) $xml_target_field_attributes['REF']]; $xml_comparator_attributes = $xml_rule->comparator->attributes(); $comparator = $xml_comparator_attributes['type']; $rule_list = new Tracker_Rule_Date(); $rule_list->setComparator($comparator)->setTrackerId($tracker->getId())->setSourceField($source_field)->setTargetField($target_field); $rules[] = $rule_list; } return $rules; }
public function itDelegatesSaveToDao() { $id = 20; $rule = new Tracker_Rule_Date(); $rule->setId($id); $rule->setSourceField($this->source_field); $rule->setComparator('>'); $rule->setTargetField($this->target_field); stub($this->date_rule_dao)->save($id, $this->source_field_id, $this->target_field_id, '>')->once()->returns(true); $success = $this->date_rule_factory->save($rule); $this->assertTrue($success); }