public function testGetUsers() { // Create User $user_name = 'test_user'; $sugar = $this->getEntryPointInstance(); $this->cleanUsers($user_name); $um = new UsersManager($sugar); $user_id = $um->createUser($user_name, array('is_admin' => 1)); $this->assertRegExp('/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/', $user_id); // Fetch user $user_bean = $um->getUserBeanByName($user_name); $this->assertEquals($user_id, $user_bean->id); $this->assertEquals(1, $user_bean->is_admin); $this->assertEquals($user_id, $um->getUserIdByName($user_name)); // Deactivate $um->deactivate($user_name); $user_bean = $um->getUserBeanByName($user_name); $this->assertEquals('Inactive', $user_bean->status); // Activate $um->activate($user_name); $user_bean = $um->getUserBeanByName($user_name); $this->assertEquals('Active', $user_bean->status); //Unset admin $um->setAdmin($user_name, false); $user_bean = $um->getUserBeanByName($user_name); $this->assertEquals(0, $user_bean->is_admin); // Set email $email = '*****@*****.**'; $um->updateUser($user_name, array('email1' => $email)); $user_bean = $um->getUserBeanByName($user_name); // Test a second time because it might fail sometimes. $email = '*****@*****.**'; $um->updateUser($user_name, array('email1' => $email)); $user_bean = $um->getUserBeanByName($user_name); $this->assertEquals($email, $user_bean->email1); //Set password $um->setPassword($user_name, 'test_password'); $user_bean = $um->getUserBeanByName($user_name); $this->assertTrue($user_bean->authenticate_user(md5('test_password'))); $mock = $this->getMock('Inet\\SugarCRM\\UsersManager', array('getUserBeanByName'), array($sugar)); $mock->method('getUserBeanByName')->willReturn((object) array('id' => $user_id, 'table_name' => 'users')); $mock->setPassword($user_name, 'test_password2'); $user_bean = $um->getUserBeanByName($user_name); $this->assertEquals(md5('test_password2'), $user_bean->user_hash); $this->assertTrue($user_bean->authenticate_user(md5('test_password2'))); }