15 require_once dirname(__DIR__, 4) .
'/lib/php/Plugin/FO_Plugin.php';
29 use Slim\Psr7\Request;
60 protected function setUp() : void
63 $container = M::mock(
'ContainerBuilder');
64 $this->dbHelper = M::mock(DbHelper::class);
65 $this->restHelper = M::mock(RestHelper::class);
66 $this->userDao = M::mock(UserDao::class);
68 $this->restHelper->shouldReceive(
'getDbHelper')->andReturn($this->dbHelper);
69 $this->restHelper->shouldReceive(
'getUserDao')
70 ->andReturn($this->userDao);
72 $container->shouldReceive(
'get')->withArgs(array(
73 'helper.restHelper'))->andReturn($this->restHelper);
75 $this->assertCountBefore = \Hamcrest\MatcherAssert::getCount();
85 $this->addToAssertionCount(
86 \Hamcrest\MatcherAssert::getCount() - $this->assertCountBefore);
99 $response->getBody()->seek(0);
100 return json_decode($response->getBody()->getContents(),
true);
110 $userArray = array();
111 foreach ($userIds as $userId) {
114 } elseif ($userId > 2 && $userId <= 4) {
116 } elseif ($userId == 5) {
121 $user =
new User($userId,
"user$userId",
"User $userId",
122 "user$userId@example.com", $accessLevel, 2, 4,
"");
123 $userArray[] = $user;
154 $userArray = [
'user_pk' => $userId];
156 if ($version == ApiVersion::V2) {
157 $userArray = [
'user_pk' => $userId];
158 $this->restHelper->getUserDao()->shouldReceive(
'getUserByName')
159 ->withArgs([$userId])->andReturn($userArray);
161 $request = M::mock(Request::class);
162 $this->restHelper->getUserDao()->shouldReceive(
'getUserByName')
163 ->withArgs([$userName])->andReturn($userArray);
164 $request->shouldReceive(
'getAttribute')->andReturn($version);
165 $this->dbHelper->shouldReceive(
'doesIdExist')
166 ->withArgs([
"users",
"user_pk", $userId])->andReturn(
true);
167 $this->dbHelper->shouldReceive(
'getUsers')->withArgs([$userId])
169 $expectedResponse = (
new ResponseHelper())->withJson($user[0]->getArray($version), 200);
170 $actualResponse = $this->userController->getUsers($request,
new ResponseHelper(),
171 [
'pathParam' => $userId]);
172 $this->assertEquals($expectedResponse->getStatusCode(),
173 $actualResponse->getStatusCode());
203 $request = M::mock(Request::class);
204 if ($version == ApiVersion::V2) {
205 $userArray = [
'user_pk' => $userId];
206 $this->restHelper->getUserDao()->shouldReceive(
'getUserByName')
207 ->withArgs([$userId])->andReturn($userArray);
209 $request->shouldReceive(
'getAttribute')->andReturn($version);
210 $this->dbHelper->shouldReceive(
'doesIdExist')
211 ->withArgs([
"users",
"user_pk", $userId])->andReturn(
false);
212 $this->expectException(HttpNotFoundException::class);
215 [
'pathParam' => $userId]);
243 $users = $this->
getUsers([2, 3, 4]);
244 if ($version == ApiVersion::V2) {
245 $userArray = [
'user_pk' => $userId];
246 $this->restHelper->getUserDao()->shouldReceive(
'getUserByName')
247 ->withArgs([$userId])->andReturn($userArray);
249 $request = M::mock(Request::class);
250 $request->shouldReceive(
'getAttribute')->andReturn($version);
251 $this->dbHelper->shouldReceive(
'getUsers')->withArgs([
null])
255 foreach ($users as $user) {
256 $allUsers[] = $user->getArray($version);
259 $expectedResponse = (
new ResponseHelper())->withJson($allUsers, 200);
260 $actualResponse = $this->userController->getUsers($request,
new ResponseHelper(), []);
261 $this->assertEquals($expectedResponse->getStatusCode(),
262 $actualResponse->getStatusCode());
292 $userArray = [
'user_pk' => $userId];
293 $request = M::mock(Request::class);
294 $request->shouldReceive(
'getAttribute')->andReturn($version);
295 $this->restHelper->getUserDao()->shouldReceive(
'getUserByName')
296 ->withArgs([$userId])->andReturn($userArray);
297 $this->dbHelper->shouldReceive(
'doesIdExist')
298 ->withArgs([
"users",
"user_pk", $userId])->andReturn(
true);
299 $this->dbHelper->shouldReceive(
'deleteUser')->withArgs([$userId]);
300 $info =
new Info(202,
"User will be deleted", InfoType::INFO);
301 $expectedResponse = (
new ResponseHelper())->withJson($info->getArray(),
303 $actualResponse = $this->userController->deleteUser($request,
new ResponseHelper(),
304 [
'pathParam' => $userId]);
305 $this->assertEquals($expectedResponse->getStatusCode(),
306 $actualResponse->getStatusCode());
336 $userArray = [
'user_pk' => $userId];
337 $request = M::mock(Request::class);
338 $request->shouldReceive(
'getAttribute')->andReturn($version);
339 $this->restHelper->getUserDao()->shouldReceive(
'getUserByName')
340 ->withArgs([$userId])->andReturn($userArray);
341 $this->dbHelper->shouldReceive(
'doesIdExist')
342 ->withArgs([
"users",
"user_pk", $userId])->andReturn(
false);
343 $this->expectException(HttpNotFoundException::class);
346 [
'pathParam' => $userId]);
375 $request = M::mock(Request::class);
376 $request->shouldReceive(
'getAttribute')->andReturn($version);
377 $this->restHelper->shouldReceive(
'getUserId')->andReturn($userId);
378 $this->dbHelper->shouldReceive(
'getUsers')->withArgs([$userId])
380 $this->userDao->shouldReceive(
'getUserAndDefaultGroupByUserName')->withArgs([$user[0]->getArray()[
"name"]])
381 ->andReturn([
"group_name" =>
"fossy"]);
383 $expectedUser = $user[0]->getArray($version);
384 if ($version == ApiVersion::V1) {
385 $expectedUser[
"default_group"] =
"fossy";
387 $expectedResponse = (
new ResponseHelper())->withJson($expectedUser, 200);
389 $actualResponse = $this->userController->getCurrentUser($request,
391 $this->assertEquals($expectedResponse->getStatusCode(),
392 $actualResponse->getStatusCode());
Contains the constants and helpers for authentication of user.
Controller for User model.
Provides helper methods to access database for REST api.
Override Slim response for withJson function.
Provides various DAO helper functions for REST api.
Different type of infos provided by REST.
Info model to contain general error and return values.
Model to hold user information.
Test cases for UserController.
testDeleteUserDoesNotExists($version=ApiVersion::V2)
testGetSpecificUserNotFoundV2()
tearDown()
Remove test objects.
testGetAllUsers($version=ApiVersion::V2)
testGetSpecificUserNotFoundV1()
testDeleteUser($version=ApiVersion::V2)
testDeleteUserDoesNotExistsV1()
testGetSpecificUserNotFound($version=ApiVersion::V2)
testGetCurrentUser($version=ApiVersion::V2)
testGetSpecificUser($version=ApiVersion::V2)
getResponseJson($response)
setUp()
Setup test objects.
testDeleteUserDoesNotExistsV2()
#define PLUGIN_DB_WRITE
Plugin requires write permission on DB.
#define PLUGIN_DB_READ
Plugin requires read permission on DB.
#define PLUGIN_DB_ADMIN
Plugin requires admin level permission on DB.