Пример #1
0
 function testAddRelatedRecord()
 {
     $fragrance = df_get_record('fragrances', array('fragrance_id' => '=1'));
     $this->assertTrue($fragrance instanceof Dataface_Record, 'Loaded fragrance should be a Dataface_Record object.');
     $formulasRelationship = $fragrance->table()->getRelationship('formulas');
     $this->assertTrue($formulasRelationship instanceof Dataface_Relationship, 'The formulas relationship does not exist or could not be loaded.');
     $relatedRecord = new Dataface_RelatedRecord($fragrance, 'formulas');
     $this->assertTrue(!$relatedRecord->isDirty('formula_name'), 'Record should not be dirty when it is first created.');
     $formula = $relatedRecord->toRecord('formulas');
     $this->assertTrue($formula instanceof Dataface_Record, 'Formula should be a Dataface_Record');
     $records = $relatedRecord->toRecords();
     $this->assertTrue($records[0] instanceof Dataface_Record, 'Formulas record from toRecords() should be of type Dataface_Record.');
     $relatedRecord->setValues(array('formula_name' => 'Test formula', 'formula_description' => 'This is just a test formula', 'ingredients' => array(0 => array('ingredient_id' => 3, 'concentration' => 10, 'concentration_units' => 1, 'amount' => 10, 'amount_units' => 2, '__id__' => 'new', '__order__' => 0), '__loaded__' => 1)));
     $this->assertTrue($relatedRecord->isDirty('formula_name'), 'The formula name should be dirty before it is saved.');
     $this->assertTrue($relatedRecord->isDirty('ingredients'), 'The ingredients should be dirty befor it is saved.');
     $io = new Dataface_IO('fragrances');
     $res = $io->addRelatedRecord($relatedRecord);
     $this->assertTrue(!PEAR::isError($res), 'The result of saving a related formula should not be an error.');
 }