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()); } }