public function testResultSet()
 {
     try {
         $account = new Sobject_Account();
         $result = $account->join('Owner', 'Id, Username')->join('CreatedBy', 'Username')->child('Contacts', 'Id, Name')->child('Cases', 'Id, Reason')->like('Name', 'G%')->select('Id, Name');
         //print("<pre>");
         //var_dump($result);
         //print("</pre>");
         //SELECT Account.Id, Account.Name, Account.Owner.Id, Account.Owner.Username, Account.CreatedBy.Username, (SELECT Id, name FROM Contacts), (SELECT Id, reason FROM Cases) FROM Account WHERE Name LIKE 'G%'";
         $this->assertEqual(count($result), 3);
         $this->assertEqual($result[0]->Id, '0018000000UoDxpAAF');
         $this->assertEqual($result[0]->Name, 'GenePoint');
         $this->assertEqual($result[0]->Owner->Username, '*****@*****.**');
         $this->assertEqual($result[0]->Owner->Id, '00580000002fHOEAA2');
         $this->assertEqual($result[0]->CreatedBy->Username, '*****@*****.**');
         $this->assertEqual(count($result[0]->Contacts), 1);
         $this->assertEqual($result[0]->Contacts[0]->Name, 'Frank Edna');
         $this->assertEqual($result[0]->Contacts[0]->Id, '0038000000gVvdvAAC');
         $this->assertEqual(count($result[0]->Cases), 2);
         $this->assertEqual($result[0]->Cases[0]->Reason, 'Feedback');
         $this->assertEqual($result[0]->Cases[0]->Id, '500800000075hBuAAI');
         $this->assertEqual($result[0]->Cases[1]->Reason, 'Feedback');
         $this->assertEqual($result[0]->Cases[1]->Id, '500800000075hC4AAI');
     } catch (Exception $e) {
         $this->fail($e->getTraceAsString());
     }
 }