Advertisement
sanjiisan

Untitled

Sep 6th, 2017
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.33 KB | None | 0 0
  1. //TEST dla user
  2. <?php
  3.  
  4. if (!isset($_SESSION)) $_SESSION = array();
  5.  
  6. require __DIR__ . '/../User.php';
  7.  
  8. use PHPUnit\Framework\TestCase;
  9.  
  10. class UserTest extends TestCase
  11. {
  12. protected function setUp()
  13. {
  14. $_SESSION = [];
  15. }
  16.  
  17. protected $backupGlobalsBlacklist = array('_SESSION');
  18.  
  19. public function testUserRegister()
  20. {
  21. $user = new User();
  22. $this->assertFalse($user->register('sanjiisan', 'sh', '123'));//Password to short
  23.  
  24. $user->register('sanjiisan', 'zaq1@WSX12', '94030711616');
  25. $this->assertFalse($user->register('sanjiisan', 'password', '465465456'));
  26.  
  27. $usersList = [
  28. [
  29. 'login' => 'sanjiisan',
  30. 'pass' => 'zaq1@WSX12',
  31. 'pesel' => '94030711616'
  32. ]
  33. ];
  34.  
  35. $this->assertEquals($usersList, $user->getUsers());
  36. }
  37.  
  38.  
  39. public function testLoginUser()
  40. {
  41. $user = new User();
  42. $user->register('sanjiisan', 'zaq1@WSX12', '94030711616');
  43.  
  44. $this->assertFalse($user->login('sanjiisan', 'wrong_password'));
  45. $this->assertFalse($user->login('not_exist', 'pass'));
  46.  
  47. $this->assertEquals($user, $user->login('sanjiisan', 'zaq1@WSX12'));
  48.  
  49. $this->assertEquals(serialize([
  50. 'login' => 'sanjiisan',
  51. 'pass' => 'zaq1@WSX12',
  52. 'pesel' => '94030711616'
  53. ]), $_SESSION['user']);
  54. }
  55.  
  56.  
  57. public function testChangeData()
  58. {
  59. $user = new User();
  60. $user->register('sanjiisan', 'zaq1@WSX12', '94030711616');
  61.  
  62. $this->assertFalse($user->changeData('tomek', 'qweqwe', '123456789'));
  63.  
  64. $user->login('sanjiisan', 'zaq1@WSX12');
  65.  
  66. $this->assertEquals($user, $user->changeData('tomek', 'qweqwe', '123456789'));
  67.  
  68. $this->assertEquals(serialize([
  69. 'login' => 'tomek',
  70. 'pass' => 'qweqwe',
  71. 'pesel' => '123456789'
  72. ]), $_SESSION['user']);
  73.  
  74. $usersList = [
  75. [
  76. 'login' => 'tomek',
  77. 'pass' => 'qweqwe',
  78. 'pesel' => '123456789'
  79. ]
  80. ];
  81.  
  82. $this->assertEquals($usersList, $user->getUsers());
  83. }
  84. }
  85.  
  86. ///klasa usera
  87. <?php
  88.  
  89. class User
  90. {
  91. private $registeredUsers = [];
  92.  
  93. public function register($login, $pass, $pesel)
  94. {
  95. if (strlen($pass) < 3) {
  96. return false;
  97. }
  98.  
  99. $user = $this->getUser($login);
  100. if ($user) {
  101. return false;
  102. }
  103.  
  104. $this->registeredUsers[] = [
  105. 'login' => $login,
  106. 'pass' => $pass,
  107. 'pesel' => $pesel
  108. ];
  109. }
  110.  
  111. public function getUsers()
  112. {
  113. return $this->registeredUsers;
  114. }
  115.  
  116. public function login($login, $pass)
  117. {
  118. $userToLogin = $this->getUser($login, $pass);
  119.  
  120. if (!$userToLogin) {
  121. return false;
  122. }
  123.  
  124. $_SESSION['user'] = serialize([
  125. 'login' => $userToLogin['login'],
  126. 'pass' => $userToLogin['pass'],
  127. 'pesel' => $userToLogin['pesel']
  128. ]);
  129.  
  130. return $this;
  131. }
  132.  
  133. public function changeData($login, $pass, $pesel)
  134. {
  135. if (!isset($_SESSION['user'])) {
  136. return false;
  137. }
  138.  
  139. $loggedInUser = unserialize($_SESSION['user']);
  140. foreach ($this->registeredUsers as &$user) {
  141. if ($user['login'] === $loggedInUser['login']) {
  142. $user['login'] = $login;
  143. $user['pass'] = $pass;
  144. $user['pesel'] = $pesel;
  145.  
  146. break;
  147. }
  148. }
  149.  
  150. $_SESSION['user'] = serialize([
  151. 'login' => $login,
  152. 'pass' => $pass,
  153. 'pesel' => $pesel
  154. ]);
  155.  
  156. return $this;
  157. }
  158.  
  159. private function getUser($login, $password = null)
  160. {
  161. foreach ($this->registeredUsers as $user) {
  162. if ($user['login'] === $login) {
  163. if ($password !== null) {
  164. if ($user['pass'] === $password) {
  165. return $user;
  166. } else {
  167. return false;
  168. }
  169. } else {
  170. return $user;
  171. }
  172. }
  173. }
  174.  
  175. return false;
  176. }
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement