Esempio n. 1
0
 /**
  * Gets the fields => values to write to the table.
  *
  * @since 1.20
  *
  * @param IORMRow $row
  *
  * @return array
  */
 protected function getWriteValues(IORMRow $row)
 {
     $values = array();
     $rowFields = $row->getFields();
     foreach ($this->getFields() as $name => $type) {
         if (array_key_exists($name, $rowFields)) {
             $value = $rowFields[$name];
             switch ($type) {
                 case 'array':
                     $value = (array) $value;
                     // fall-through!
                 // fall-through!
                 case 'blob':
                     $value = serialize($value);
                     // fall-through!
             }
             $values[$this->getPrefixedField($name)] = $value;
         }
     }
     return $values;
 }
Esempio n. 2
0
 /**
  * @dataProvider instanceProvider
  */
 public function testSetFields(IORMRow $item)
 {
     $originalValues = $item->getFields();
     $item->setFields(array(), false);
     foreach ($item->getTable()->getFields() as $name => $type) {
         $originalHas = array_key_exists($name, $originalValues);
         $newHas = $item->hasField($name);
         $this->assertEquals($originalHas, $newHas);
         if ($originalHas && $newHas) {
             $this->assertEquals($originalValues[$name], $item->getField($name));
         }
     }
     $mockFields = $this->getMockFields();
     $item->setFields($mockFields, false);
     $this->assertFieldValues($originalValues, $item);
     $item->setFields($mockFields, true);
     $this->assertFieldValues($mockFields, $item);
 }