Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
/**
* Copyright Maarch since 2008 under licence GPLv3.
* See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software.
*
*/
namespace MaarchTest;
use Core\Models\DatabaseModel;
require_once __DIR__.'/define.php';
class UserControllerTest extends \PHPUnit_Framework_TestCase
{
public function testCRUD()
{
$userController = new \Core\Controllers\UserController();
// CREATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'userId' => 'TEST-CKENT',
'firstname' => 'TEST-CLARK',
'lastname' => 'TEST-KENT'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $userController->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
$id = $responseBody->user->id;
$this->assertInternalType('int', $id);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => $id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame($id, $responseBody->id);
$this->assertSame('TEST-CKENT', $responseBody->user_id);
$this->assertSame('TEST-CLARK', $responseBody->firstname);
$this->assertSame('TEST-KENT', $responseBody->lastname);
$this->assertSame('OK', $responseBody->status);
$this->assertSame('Y', $responseBody->enabled);
$this->assertSame(null, $responseBody->phone);
$this->assertSame(null, $responseBody->mail);
$this->assertSame(null, $responseBody->initials);
$this->assertSame(null, $responseBody->thumbprint);
// UPDATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'user_id' => 'TEST-CKENT',
'firstname' => 'TEST-CLARK2',
'lastname' => 'TEST-KENT2',
'mail' => 'ck@dailyP.com',
'phone' => '0122334455',
'initials' => 'CK',
'enabled' => 'N',
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $userController->update($fullRequest, new \Slim\Http\Response(), ['id' => $id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(_USER_UPDATED, $responseBody->success);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => $id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame($id, $responseBody->id);
$this->assertSame('TEST-CKENT', $responseBody->user_id);
$this->assertSame('TEST-CLARK2', $responseBody->firstname);
$this->assertSame('TEST-KENT2', $responseBody->lastname);
$this->assertSame('OK', $responseBody->status);
$this->assertSame('N', $responseBody->enabled);
$this->assertSame('0122334455', $responseBody->phone);
$this->assertSame('ck@dailyP.com', $responseBody->mail);
$this->assertSame('CK', $responseBody->initials);
$this->assertSame(null, $responseBody->thumbprint);
// DELETE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $userController->delete($request, new \Slim\Http\Response(), ['id' => $id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(_DELETED_USER, $responseBody->success);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => $id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame($id, $responseBody->id);
$this->assertSame('TEST-CKENT', $responseBody->user_id);
$this->assertSame('TEST-CLARK2', $responseBody->firstname);
$this->assertSame('TEST-KENT2', $responseBody->lastname);
$this->assertSame('DEL', $responseBody->status);
$this->assertSame('N', $responseBody->enabled);
$this->assertSame('0122334455', $responseBody->phone);
$this->assertSame('ck@dailyP.com', $responseBody->mail);
$this->assertSame('CK', $responseBody->initials);
$this->assertSame(null, $responseBody->thumbprint);
// REAL DELETE
DatabaseModel::delete([
'table' => 'users',
'where' => ['id = ?'],
'data' => [$id]
]);
}
}