function testToNestedArray()
 {
     $data = ["message" => "Test"];
     ApiDataObject::to_nested_array($data, 1, $a);
     $this->assertEquals($data, $a);
     $member = $this->objFromFixture('Member', 'api');
     $a = null;
     ApiDataObject::to_nested_array($member, 1, $a);
     $this->assertEquals($member->ID, $a['id']);
     $this->assertEquals($member->Email, $a['email']);
     $list = new ArrayList([$this->objFromFixture('Member', 'api'), $this->objFromFixture('Member', 'admin')]);
     $a = null;
     ApiDataObject::to_nested_array($list, 1, $a);
     $this->assertEquals(2, sizeof($a));
     $this->assertEquals($list[0]->ID, $a[0]['id']);
     $this->assertEquals($list[1]->ID, $a[1]['id']);
 }
 protected function prepareApiData($data = null)
 {
     $api = array();
     if ($data) {
         $this->dataRecord = $data;
     }
     ApiDataObject::to_nested_array($data, 0, $data);
     $api['data'] = $data;
     if (!$this->config()->get('useDataProperty')) {
         if (is_array($api['data'])) {
             foreach ($api['data'] as $key => $value) {
                 $api[$key] = $value;
             }
         } else {
             $api = $api['data'];
         }
         unset($api['data']);
     }
     if ($this->code) {
         $api["code"] = $this->code;
     }
     if ($this->error) {
         $api["error"] = (string) $this->error;
     }
     if ($this->message) {
         $api["message"] = (string) $this->message;
     }
     if ($this->help) {
         $api["help"] = (string) $this->help;
     }
     if ($this->dataRecord === null && !$this->error && !$this->message && !$this->help) {
         return null;
     }
     return $api;
 }