/** * Login as given roles * * @param CakeTestCase $test CakeTestCase instance * @param string $role role key * @return void */ public static function login(CakeTestCase $test, $role = Role::ROLE_KEY_SYSTEM_ADMINISTRATOR) { $test->controller->Components->Auth->staticExpects($test->any())->method('user')->will($test->returnCallback(function ($key = null) use($role) { CakeSession::write('Auth.User', self::$roles[$role]); if (isset(self::$roles[$role][$key])) { return self::$roles[$role][$key]; } else { return self::$roles[$role]; } })); $test->controller->Components->Auth->login(['username' => self::$roles[$role]['username'], 'password' => self::$roles[$role]['password']]); }