Exemplo n.º 1
0
 public function testFromArray()
 {
     $arr = array('_type' => 'FakeObjectTest_Object', 'foo' => 'bar', 'hasOne' => array('_type' => 'FakeObjectTest_Object', 'hasOneProp' => 'baz'), 'hasMany' => array(array('_type' => 'FakeObjectTest_Object', 'hasManyProp' => 'baz')), 'bar' => 'baz');
     $obj = FakeObject::create_from_array($arr);
     $this->assertNotNull($obj);
     $this->assertInstanceOf('FakeObjectTest_Object', $obj);
     $this->assertInstanceOf('FakeObjectTest_Object', $obj->hasOne);
     $this->assertInstanceOf('FakeObjectTest_Object', $obj->hasMany[0]);
     $this->assertEquals($obj->bar, 'baz');
     $this->assertEquals('baz', $obj->hasOne->hasOneProp);
     $this->assertEquals('baz', $obj->hasMany[0]->hasManyProp);
 }
Exemplo n.º 2
0
 /**
  * Create nested object representation from array,
  * based on "_type" hints.
  *
  * @param Array
  * @return FakeObject
  */
 public static function create_from_array($array)
 {
     // array_walk_recursive doesn't recurse into arrays...
     foreach ($array as &$v) {
         // Convert "has one" relations
         if (is_array($v)) {
             $v = FakeObject::create_from_array($v);
         } elseif (is_array($v)) {
             foreach ($v as &$v1) {
                 if (is_array($v1)) {
                     $v1 = FakeObject::create_from_array($v1);
                 }
             }
         }
     }
     $class = isset($array['_type']) ? $array['_type'] : 'FakeObject';
     unset($array['_type']);
     return new $class($array);
 }
 public function getAll($type)
 {
     $data = $this->getData();
     if (!isset($data[$type])) {
         return false;
     }
     $return = array();
     foreach ($data[$type] as $record) {
         $return[] = FakeObject::create_from_array($record);
     }
     return $return;
 }