Exemple #1
0
 /**
  * @depends testCreate
  */
 public function testSetProperties()
 {
     $model = new \Rapid\Model();
     $this->assertEquals(array(), $model->properties(), 'Properties of new model are not empty');
     $properties = array('my' => 1, 'another' => 'string');
     $model->setProperties($properties, true);
     $this->assertEquals($properties, $model->properties(), 'Properties don\\t match');
     $this->assertEquals(array(), $model->modifiedProperties(), 'Modified properties are incorrect');
     $modifiedProperties = array('my' => 2);
     $model->setProperties($modifiedProperties);
     $this->assertEquals(array_merge($properties, $modifiedProperties), $model->properties(), 'Properties don\\t match');
     $this->assertEquals($modifiedProperties, $model->modifiedProperties(), 'Modified properties are incorrect');
     $model->setProperty('new', 1);
     $this->assertEquals(1, $model->property('new'), 'Property not set');
     $this->assertEquals(array_merge($modifiedProperties, array('new' => 1)), $model->modifiedProperties(), 'Modified properties are incorrect');
 }
Exemple #2
0
 public function save(\Rapid\Model $model)
 {
     if (null === ($id = $model->id())) {
         $data = $model->properties();
         unset($data['id']);
         $id = $this->db()->insert($this->tablename, $data);
         $model->setId($id);
     } else {
         $data = $model->modifiedProperties();
         if (count($data)) {
             $this->db()->update($this->tablename, $data, array('id' => $id));
         }
     }
 }