PageRenderTime 65ms CodeModel.GetById 39ms RepoModel.GetById 1ms app.codeStats 0ms

/tests/library/houseshare/UserHouseshareTest.php

https://github.com/marcinwol/houseshare
PHP | 245 lines | 156 code | 45 blank | 44 comment | 12 complexity | 2556350994138fc8c1bf0a910b19a249 MD5 | raw file
  1. <?php
  2. /*
  3. * To change this template, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. /**
  7. * Description of UserHoueshareTest
  8. *
  9. * @author marcin
  10. */
  11. class UserHouseshareTest extends ModelTestCase {
  12. public function userClassProvider() {
  13. return array(
  14. array('My_Houseshare_User'),
  15. array('My_Houseshare_Roomate'),
  16. array('My_Houseshare_Looker')
  17. );
  18. }
  19. /**
  20. * @dataProvider userClassProvider
  21. */
  22. public function testUpdateUser($userClass) {
  23. $user = new $userClass(2);
  24. $user->phone_public = '0';
  25. $user->first_name = 'Jerzy';
  26. $user->last_name = 'Powanski';
  27. $user->last_name_public = '1';
  28. if ('My_Houseshare_Roomate' == $userClass) {
  29. $user->is_owner = '0';
  30. }
  31. $id = $user->save();
  32. $this->assertEquals(2, $id);
  33. if ('My_Houseshare_Roomate' == $userClass) {
  34. $this->assertEquals('0', $user->is_owner);
  35. }
  36. }
  37. /**
  38. * @dataProvider userClassProvider
  39. */
  40. public function testGetUser($userClass) {
  41. $user = new $userClass(1);
  42. $this->assertEquals(
  43. array(
  44. 'Marcin',
  45. 'Wolski'
  46. ), array(
  47. $user->first_name,
  48. $user->last_name
  49. )
  50. );
  51. $user = new $userClass(2);
  52. $this->assertEquals(
  53. array(
  54. 'Michal',
  55. 'Chojcan'
  56. ), array(
  57. $user->first_name,
  58. $user->last_name
  59. )
  60. );
  61. }
  62. /**
  63. * @dataProvider userClassProvider
  64. */
  65. public function testInsertUser($userClass) {
  66. $user = new $userClass();
  67. $user->email = 'new@email.com';
  68. $user->email_public = '1';
  69. $user->password = 'new password';
  70. $user->phone = '+324 new';
  71. $user->phone_public = '1';
  72. $user->first_name = 'Juzek';
  73. $user->last_name = 'Polanski';
  74. $user->last_name_public = '0';
  75. $user->type = 'ROOMATE';
  76. if ('My_Houseshare_Roomate' == $userClass) {
  77. $user->is_owner = '1';
  78. }
  79. $id = $user->save();
  80. $user = new $userClass(4);
  81. $this->assertEquals(
  82. array(
  83. 4,
  84. 'Juzek',
  85. 'Polanski',
  86. 'new@email.com',
  87. '0'
  88. ), array(
  89. $user->user_id,
  90. $user->first_name,
  91. $user->last_name,
  92. $user->email,
  93. $user->last_name_public
  94. )
  95. );
  96. }
  97. /**
  98. * @dataProvider userClassProvider
  99. */
  100. public function testUpdateUser1($userClass) {
  101. $user = new $userClass(2);
  102. $user->phone_public = '0';
  103. $user->first_name = 'Jerzy';
  104. $user->last_name = 'Powanski';
  105. $user->last_name_public = '1';
  106. if ('My_Houseshare_Roomate' == $userClass) {
  107. $user->is_owner = '0';
  108. }
  109. $id = $user->save();
  110. $user = new $userClass($id);
  111. $this->assertEquals(
  112. array(
  113. 2,
  114. 'Jerzy',
  115. 'Powanski',
  116. 'michal@michal.com',
  117. '1'
  118. ), array(
  119. $user->user_id,
  120. $user->first_name,
  121. $user->last_name,
  122. $user->email,
  123. $user->last_name_public
  124. )
  125. );
  126. if ('My_Houseshare_Roomate' == $userClass) {
  127. $this->assertEquals('0', $user->is_owner);
  128. }
  129. }
  130. /**
  131. *
  132. * @dataProvider userClassProvider
  133. */
  134. public function testGetUserPassword($userClass) {
  135. $user = new $userClass(1);
  136. $this->assertEquals('60474c9c10d7142b7508ce7a50acf414', $user->password);
  137. $user = new $userClass(2);
  138. $this->assertEquals('60474c9c10d7142b7508ce7a50acf414', $user->password);
  139. }
  140. /**
  141. *
  142. * @dataProvider userClassProvider
  143. */
  144. public function testSetUserPassword($userClass) {
  145. $user = new $userClass(2);
  146. $user->password = 'newPassword'; // md5 is 14a88b9d2f52c55b5fbcf9c5d9c11875
  147. $user->save();
  148. unset($user);
  149. $user = new $userClass(2);
  150. $this->assertEquals('14a88b9d2f52c55b5fbcf9c5d9c11875', $user->password);
  151. }
  152. /**
  153. * @expectedException Zend_Db_Exception
  154. * @dataProvider userClassProvider
  155. */
  156. public function testNoUserException($userClass) {
  157. $user = new $userClass(15);
  158. }
  159. /**
  160. * @dataProvider userClassProvider
  161. */
  162. public function testGetAccommodations($userClass) {
  163. if ('My_Houseshare_Roomate' === $userClass) {
  164. $user = new $userClass(1);
  165. $expectedNoOfAcc = 3;
  166. } else {
  167. $user = new $userClass(3);
  168. $expectedNoOfAcc = 0;
  169. }
  170. $acc = $user->getAccommodations();
  171. $this->assertEquals($expectedNoOfAcc, count($acc));
  172. }
  173. public function testUserFactory() {
  174. // no user with acc_id = 12
  175. $user = My_Houseshare_Factory::user(12);
  176. $this->assertTrue(null === $user);
  177. // get Shared object since user_id=1 is shared.
  178. $user = My_Houseshare_Factory::user(1);
  179. $this->assertTrue($user instanceof My_Houseshare_Roomate);
  180. // get Shared object since user_id=2 is shared.
  181. $user = My_Houseshare_Factory::user(2);
  182. $this->assertTrue($user instanceof My_Houseshare_Roomate);
  183. // get roomate object since user_id=2 is shared.
  184. $user = My_Houseshare_Factory::roomate(2);
  185. $this->assertTrue($user instanceof My_Houseshare_Roomate);
  186. // get new roomate object .
  187. $user = My_Houseshare_Factory::roomate();
  188. $this->assertTrue($user instanceof My_Houseshare_Roomate);
  189. // get new user object .
  190. $user = My_Houseshare_Factory::user();
  191. $this->assertTrue($user instanceof My_Houseshare_User);
  192. // get new user object .
  193. $user = My_Houseshare_Factory::user(null, 'USER');
  194. $this->assertTrue($user instanceof My_Houseshare_User);
  195. // get new user object .
  196. $user = My_Houseshare_Factory::user(null, 'ROOMATE');
  197. $this->assertTrue($user instanceof My_Houseshare_Roomate);
  198. }
  199. }
  200. ?>