public function test_should_set_user_roles_by_id() { $Administrator = $this->Role->findFirstBy('name', 'Administrator'); $Developer = $this->Role->findFirstBy('name', 'Developer'); $Visitor = $this->Role->findFirstBy('name', 'Visitor'); $Salavert = new User(array('email' => '*****@*****.**', 'login' => 'salavert', 'password' => 'abcde', 'password_confirmation' => 'abcde')); $this->assertTrue($Salavert->save()); $expected_ids = array($Administrator->id, $Developer->id); $Salavert->role->load(); $Salavert->role->setByIds($expected_ids); $Salavert->reload(); $this->assertEqual(count($Salavert->roles), 2); $found_ids = array_values($Salavert->collect($Salavert->roles, 'id', 'id')); sort($found_ids); sort($expected_ids); $this->assertEqual($found_ids, $expected_ids); $Salavert->role->setByIds(array($Visitor->id)); $Salavert = $Salavert->find($Salavert->id, array('include' => 'roles')); $this->assertEqual(count($Salavert->roles), 1); $this->assertEqual($Salavert->roles[0]->id, $Visitor->id); }