Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
Complex classes like UserServiceTest often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes. You can also have a look at the cohesion graph to spot any un-connected, or weakly-connected components.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
While breaking up the class, it is a good idea to analyze how other classes use UserServiceTest, and based on these observations, apply Extract Interface, too.
1 | <?php |
||
25 | class UserServiceTest extends BaseTest |
||
26 | { |
||
27 | /** |
||
28 | * Test for the loadUserGroup() method. |
||
29 | * |
||
30 | * @see \eZ\Publish\API\Repository\UserService::loadUserGroup() |
||
31 | */ |
||
32 | public function testLoadUserGroup() |
||
47 | |||
48 | /** |
||
49 | * Test for the loadUserGroup() method. |
||
50 | * |
||
51 | * @see \eZ\Publish\API\Repository\UserService::loadUserGroup() |
||
52 | * @expectedException \eZ\Publish\API\Repository\Exceptions\NotFoundException |
||
53 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserGroup |
||
54 | */ |
||
55 | public function testLoadUserGroupThrowsNotFoundException() |
||
67 | |||
68 | /** |
||
69 | * Test for the loadSubUserGroups() method. |
||
70 | * |
||
71 | * @see \eZ\Publish\API\Repository\UserService::loadSubUserGroups() |
||
72 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserGroup |
||
73 | */ |
||
74 | public function testLoadSubUserGroups() |
||
93 | |||
94 | /** |
||
95 | * Test for the newUserGroupCreateStruct() method. |
||
96 | * |
||
97 | * @return \eZ\Publish\API\Repository\Values\User\UserGroupCreateStruct |
||
98 | * |
||
99 | * @see \eZ\Publish\API\Repository\UserService::newUserGroupCreateStruct() |
||
100 | * @depends eZ\Publish\API\Repository\Tests\ContentTypeServiceTest::testLoadContentTypeByIdentifier |
||
101 | */ |
||
102 | public function testNewUserGroupCreateStruct() |
||
119 | |||
120 | /** |
||
121 | * Test for the newUserGroupCreateStruct() method. |
||
122 | * |
||
123 | * @param \eZ\Publish\API\Repository\Values\User\UserGroupCreateStruct $groupCreate |
||
124 | * |
||
125 | * @see \eZ\Publish\API\Repository\UserService::newUserGroupCreateStruct() |
||
126 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testNewUserGroupCreateStruct |
||
127 | */ |
||
128 | public function testNewUserGroupCreateStructSetsMainLanguageCode($groupCreate) |
||
132 | |||
133 | /** |
||
134 | * Test for the newUserGroupCreateStruct() method. |
||
135 | * |
||
136 | * @param \eZ\Publish\API\Repository\Values\User\UserGroupCreateStruct $groupCreate |
||
137 | * |
||
138 | * @see \eZ\Publish\API\Repository\UserService::newUserGroupCreateStruct() |
||
139 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testNewUserGroupCreateStruct |
||
140 | */ |
||
141 | public function testNewUserGroupCreateStructSetsContentType($groupCreate) |
||
148 | |||
149 | /** |
||
150 | * Test for the newUserGroupCreateStruct() method. |
||
151 | * |
||
152 | * @see \eZ\Publish\API\Repository\UserService::newUserGroupCreateStruct($mainLanguageCode, $contentType) |
||
153 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testNewUserGroupCreateStruct |
||
154 | * @depends eZ\Publish\API\Repository\Tests\ContentTypeServiceTest::testLoadContentTypeByIdentifier |
||
155 | */ |
||
156 | View Code Duplication | public function testNewUserGroupCreateStructWithSecondParameter() |
|
180 | |||
181 | /** |
||
182 | * Test for the createUserGroup() method. |
||
183 | * |
||
184 | * @return \eZ\Publish\API\Repository\Values\User\UserGroup |
||
185 | * |
||
186 | * @see \eZ\Publish\API\Repository\UserService::createUserGroup() |
||
187 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testNewUserGroupCreateStruct |
||
188 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserGroup |
||
189 | * @depends eZ\Publish\API\Repository\Tests\ContentServiceTest::testCreateContent |
||
190 | */ |
||
191 | public function testCreateUserGroup() |
||
209 | |||
210 | /** |
||
211 | * Test for the createUserGroup() method. |
||
212 | * |
||
213 | * @param \eZ\Publish\API\Repository\Values\User\UserGroup $userGroup |
||
214 | * |
||
215 | * @see \eZ\Publish\API\Repository\UserService::createUserGroup() |
||
216 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUserGroup |
||
217 | */ |
||
218 | public function testCreateUserGroupSetsExpectedProperties($userGroup) |
||
231 | |||
232 | /** |
||
233 | * Test for the createUserGroup() method. |
||
234 | * |
||
235 | * @see \eZ\Publish\API\Repository\UserService::createUserGroup() |
||
236 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUserGroup |
||
237 | */ |
||
238 | View Code Duplication | public function testCreateUserGroupIncrementsParentSubGroupCount() |
|
258 | |||
259 | /** |
||
260 | * Test for the createUserGroup() method. |
||
261 | * |
||
262 | * @see \eZ\Publish\API\Repository\UserService::createUserGroup() |
||
263 | * @expectedException \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException |
||
264 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUserGroup |
||
265 | */ |
||
266 | View Code Duplication | public function testCreateUserGroupThrowsInvalidArgumentException() |
|
292 | |||
293 | /** |
||
294 | * Test for the createUserGroup() method. |
||
295 | * |
||
296 | * @see \eZ\Publish\API\Repository\UserService::createUserGroup() |
||
297 | * @expectedException \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException |
||
298 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUserGroup |
||
299 | */ |
||
300 | public function testCreateUserGroupThrowsInvalidArgumentExceptionFieldTypeNotAccept() |
||
325 | |||
326 | /** |
||
327 | * Test for the createUserGroup() method. |
||
328 | * |
||
329 | * @see \eZ\Publish\API\Repository\UserService::createUserGroup() |
||
330 | * @expectedException \eZ\Publish\API\Repository\Exceptions\ContentFieldValidationException |
||
331 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUserGroup |
||
332 | */ |
||
333 | public function testCreateUserGroupWhenMissingField() |
||
334 | { |
||
335 | $repository = $this->getRepository(); |
||
336 | |||
337 | $mainGroupId = $this->generateId('group', 4); |
||
338 | /* BEGIN: Use Case */ |
||
339 | // $mainGroupId is the ID of the main "Users" group |
||
340 | |||
341 | $userService = $repository->getUserService(); |
||
342 | |||
343 | // Load main group |
||
344 | $parentUserGroup = $userService->loadUserGroup($mainGroupId); |
||
345 | |||
346 | // Instantiate a new create struct |
||
347 | $userGroupCreate = $userService->newUserGroupCreateStruct('eng-US'); |
||
348 | |||
349 | // This call will fail with a "ContentFieldValidationException", because the |
||
350 | // only mandatory field "name" is not set. |
||
351 | $userService->createUserGroup($userGroupCreate, $parentUserGroup); |
||
352 | /* END: Use Case */ |
||
353 | } |
||
354 | |||
355 | /** |
||
356 | * Test for the createUserGroup() method. |
||
357 | * |
||
358 | * @return \eZ\Publish\API\Repository\Values\User\UserGroup |
||
359 | * |
||
360 | * @see \eZ\Publish\API\Repository\UserService::createUserGroup() |
||
361 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testNewUserGroupCreateStruct |
||
362 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserGroup |
||
363 | * @depends eZ\Publish\API\Repository\Tests\ContentServiceTest::testCreateContent |
||
364 | */ |
||
365 | public function testCreateUserGroupInTransactionWithRollback() |
||
408 | |||
409 | /** |
||
410 | * Test for the deleteUserGroup() method. |
||
411 | * |
||
412 | * @see \eZ\Publish\API\Repository\UserService::deleteUserGroup() |
||
413 | * @expectedException \eZ\Publish\API\Repository\Exceptions\NotFoundException |
||
414 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUserGroup |
||
415 | */ |
||
416 | public function testDeleteUserGroup() |
||
431 | |||
432 | /** |
||
433 | * Test for the moveUserGroup() method. |
||
434 | * |
||
435 | * @see \eZ\Publish\API\Repository\UserService::moveUserGroup() |
||
436 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUserGroup |
||
437 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadSubUserGroups |
||
438 | */ |
||
439 | public function testMoveUserGroup() |
||
478 | |||
479 | /** |
||
480 | * Test for the moveUserGroup() method. |
||
481 | * |
||
482 | * @see \eZ\Publish\API\Repository\UserService::moveUserGroup() |
||
483 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testMoveUserGroup |
||
484 | */ |
||
485 | View Code Duplication | public function testMoveUserGroupIncrementsSubGroupCountOnNewParent() |
|
511 | |||
512 | /** |
||
513 | * Test for the moveUserGroup() method. |
||
514 | * |
||
515 | * @see \eZ\Publish\API\Repository\UserService::moveUserGroup() |
||
516 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testMoveUserGroup |
||
517 | */ |
||
518 | View Code Duplication | public function testMoveUserGroupDecrementsSubGroupCountOnOldParent() |
|
541 | |||
542 | /** |
||
543 | * Test for the newUserGroupUpdateStruct() method. |
||
544 | * |
||
545 | * @see \eZ\Publish\API\Repository\UserService::newUserGroupUpdateStruct() |
||
546 | */ |
||
547 | public function testNewUserGroupUpdateStruct() |
||
562 | |||
563 | /** |
||
564 | * Test for the updateUserGroup() method. |
||
565 | * |
||
566 | * @see \eZ\Publish\API\Repository\UserService::updateUserGroup() |
||
567 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUserGroup |
||
568 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testNewUserGroupUpdateStruct |
||
569 | */ |
||
570 | public function testUpdateUserGroup() |
||
595 | |||
596 | /** |
||
597 | * Test for the updateUserGroup() method. |
||
598 | * |
||
599 | * @see \eZ\Publish\API\Repository\UserService::updateUserGroup() |
||
600 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testUpdateUserGroup |
||
601 | */ |
||
602 | View Code Duplication | public function testUpdateUserGroupWithSubContentUpdateStruct() |
|
635 | |||
636 | /** |
||
637 | * Test for the updateUserGroup() method. |
||
638 | * |
||
639 | * @see \eZ\Publish\API\Repository\UserService::updateUserGroup() |
||
640 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testUpdateUserGroup |
||
641 | */ |
||
642 | public function testUpdateUserGroupWithSubContentMetadataUpdateStruct() |
||
678 | |||
679 | /** |
||
680 | * Test for the updateUserGroup() method. |
||
681 | * |
||
682 | * @see \eZ\Publish\API\Repository\UserService::updateUserGroup() |
||
683 | * @expectedException \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException |
||
684 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testUpdateUserGroup |
||
685 | */ |
||
686 | View Code Duplication | public function testUpdateUserGroupThrowsInvalidArgumentExceptionOnFieldTypeNotAccept() |
|
711 | |||
712 | /** |
||
713 | * Test for the newUserCreateStruct() method. |
||
714 | * |
||
715 | * @see \eZ\Publish\API\Repository\UserService::newUserCreateStruct() |
||
716 | */ |
||
717 | public function testNewUserCreateStruct() |
||
739 | |||
740 | /** |
||
741 | * Test for the newUserCreateStruct() method. |
||
742 | * |
||
743 | * @param \eZ\Publish\API\Repository\Values\User\UserCreateStruct $userCreate |
||
744 | * |
||
745 | * @see \eZ\Publish\API\Repository\UserService::newUserCreateStruct() |
||
746 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testNewUserCreateStruct |
||
747 | */ |
||
748 | View Code Duplication | public function testNewUserCreateStructSetsExpectedProperties($userCreate) |
|
765 | |||
766 | /** |
||
767 | * Test for the newUserCreateStruct() method. |
||
768 | * |
||
769 | * @see \eZ\Publish\API\Repository\UserService::newUserCreateStruct($login, $email, $password, $mainLanguageCode, $contentType) |
||
770 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testNewUserCreateStruct |
||
771 | * @depends eZ\Publish\API\Repository\Tests\ContentTypeServiceTest::testLoadContentTypeByIdentifier |
||
772 | */ |
||
773 | View Code Duplication | public function testNewUserCreateStructWithFifthParameter() |
|
798 | |||
799 | /** |
||
800 | * Test for the createUser() method. |
||
801 | * |
||
802 | * @return \eZ\Publish\API\Repository\Values\User\User |
||
803 | * |
||
804 | * @see \eZ\Publish\API\Repository\UserService::createUser() |
||
805 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserGroup |
||
806 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testNewUserCreateStruct |
||
807 | * @depends eZ\Publish\API\Repository\Tests\ContentServiceTest::testCreateContent |
||
808 | */ |
||
809 | public function testCreateUser() |
||
822 | |||
823 | /** |
||
824 | * Test for the createUser() method. |
||
825 | * |
||
826 | * @param \eZ\Publish\API\Repository\Values\User\User $user |
||
827 | * |
||
828 | * @see \eZ\Publish\API\Repository\UserService::createUser() |
||
829 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
||
830 | */ |
||
831 | View Code Duplication | public function testCreateUserSetsExpectedProperties(User $user) |
|
852 | |||
853 | /** |
||
854 | * Test for the createUser() method. |
||
855 | * |
||
856 | * @see \eZ\Publish\API\Repository\UserService::createUser() |
||
857 | * @expectedException \eZ\Publish\API\Repository\Exceptions\ContentFieldValidationException |
||
858 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
||
859 | */ |
||
860 | View Code Duplication | public function testCreateUserWhenMissingField() |
|
861 | { |
||
862 | $repository = $this->getRepository(); |
||
863 | |||
864 | $editorsGroupId = $this->generateId('group', 13); |
||
865 | /* BEGIN: Use Case */ |
||
866 | // $editorsGroupId is the ID of the "Editors" user group in an eZ |
||
867 | // Publish demo installation |
||
868 | |||
869 | $userService = $repository->getUserService(); |
||
870 | |||
871 | // Instantiate a create struct with mandatory properties |
||
872 | $userCreate = $userService->newUserCreateStruct( |
||
873 | 'user', |
||
874 | '[email protected]', |
||
875 | 'secret', |
||
876 | 'eng-US' |
||
877 | ); |
||
878 | |||
879 | // Do not set the mandatory fields "first_name" and "last_name" |
||
880 | //$userCreate->setField( 'first_name', 'Example' ); |
||
881 | //$userCreate->setField( 'last_name', 'User' ); |
||
882 | |||
883 | // Load parent group for the user |
||
884 | $group = $userService->loadUserGroup($editorsGroupId); |
||
885 | |||
886 | // This call will fail with a "ContentFieldValidationException", because the |
||
887 | // mandatory fields "first_name" and "last_name" are not set. |
||
888 | $userService->createUser($userCreate, array($group)); |
||
889 | /* END: Use Case */ |
||
890 | } |
||
891 | |||
892 | /** |
||
893 | * Test for the createUser() method. |
||
894 | * |
||
895 | * @see \eZ\Publish\API\Repository\UserService::createUser() |
||
896 | * @expectedException \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException |
||
897 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
||
898 | */ |
||
899 | View Code Duplication | public function testCreateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept() |
|
930 | |||
931 | /** |
||
932 | * Test for the createUser() method. |
||
933 | * |
||
934 | * @see \eZ\Publish\API\Repository\UserService::createUser() |
||
935 | * @expectedException \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException |
||
936 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
||
937 | */ |
||
938 | View Code Duplication | public function testCreateUserThrowsInvalidArgumentException() |
|
969 | |||
970 | /** |
||
971 | * Test for the createUser() method. |
||
972 | * |
||
973 | * @return \eZ\Publish\API\Repository\Values\User\User |
||
974 | * |
||
975 | * @see \eZ\Publish\API\Repository\UserService::createUser() |
||
976 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserGroup |
||
977 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testNewUserCreateStruct |
||
978 | * @depends eZ\Publish\API\Repository\Tests\ContentServiceTest::testCreateContent |
||
979 | */ |
||
980 | public function testCreateUserInTransactionWithRollback() |
||
1008 | |||
1009 | /** |
||
1010 | * Test for the loadUser() method. |
||
1011 | * |
||
1012 | * @see \eZ\Publish\API\Repository\UserService::loadUser() |
||
1013 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
||
1014 | */ |
||
1015 | public function testLoadUser() |
||
1030 | |||
1031 | /** |
||
1032 | * Test for the loadUser() method. |
||
1033 | * |
||
1034 | * @see \eZ\Publish\API\Repository\UserService::loadUser() |
||
1035 | * @expectedException \eZ\Publish\API\Repository\Exceptions\NotFoundException |
||
1036 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUser |
||
1037 | */ |
||
1038 | public function testLoadUserThrowsNotFoundException() |
||
1051 | |||
1052 | /** |
||
1053 | * Test for the loadAnonymousUser() method. |
||
1054 | * |
||
1055 | * @see \eZ\Publish\API\Repository\UserService::loadAnonymousUser() |
||
1056 | */ |
||
1057 | public function testLoadAnonymousUser() |
||
1078 | |||
1079 | /** |
||
1080 | * Test for the loadUserByCredentials() method. |
||
1081 | * |
||
1082 | * @see \eZ\Publish\API\Repository\UserService::loadUserByCredentials() |
||
1083 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
||
1084 | */ |
||
1085 | public function testLoadUserByCredentials() |
||
1100 | |||
1101 | /** |
||
1102 | * Test for the loadUserByCredentials() method. |
||
1103 | * |
||
1104 | * @see \eZ\Publish\API\Repository\UserService::loadUserByCredentials() |
||
1105 | * @expectedException \eZ\Publish\API\Repository\Exceptions\NotFoundException |
||
1106 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserByCredentials |
||
1107 | */ |
||
1108 | public function testLoadUserByCredentialsThrowsNotFoundExceptionForUnknownPassword() |
||
1122 | |||
1123 | /** |
||
1124 | * Test for the loadUserByCredentials() method. |
||
1125 | * |
||
1126 | * @see \eZ\Publish\API\Repository\UserService::loadUserByCredentials() |
||
1127 | * @expectedException \eZ\Publish\API\Repository\Exceptions\NotFoundException |
||
1128 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserByCredentials |
||
1129 | */ |
||
1130 | public function testLoadUserByCredentialsThrowsNotFoundExceptionForUnknownPasswordEmtpy() |
||
1144 | |||
1145 | /** |
||
1146 | * Test for the loadUserByCredentials() method. |
||
1147 | * |
||
1148 | * @see \eZ\Publish\API\Repository\UserService::loadUserByCredentials() |
||
1149 | * @expectedException \eZ\Publish\API\Repository\Exceptions\NotFoundException |
||
1150 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserByCredentials |
||
1151 | */ |
||
1152 | public function testLoadUserByCredentialsThrowsNotFoundExceptionForUnknownLogin() |
||
1166 | |||
1167 | /** |
||
1168 | * Test for the loadUserByCredentials() method. |
||
1169 | * |
||
1170 | * @see \eZ\Publish\API\Repository\UserService::loadUserByCredentials() |
||
1171 | * @expectedException \eZ\Publish\Core\Base\Exceptions\InvalidArgumentValue |
||
1172 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserByCredentials |
||
1173 | */ |
||
1174 | public function testLoadUserByCredentialsThrowsInvalidArgumentValueForEmptyLogin() |
||
1188 | |||
1189 | /** |
||
1190 | * Test for the loadUserByLogin() method. |
||
1191 | * |
||
1192 | * @see \eZ\Publish\API\Repository\UserService::loadUserByLogin() |
||
1193 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
||
1194 | */ |
||
1195 | View Code Duplication | public function testLoadUserByLogin() |
|
1196 | { |
||
1197 | $repository = $this->getRepository(); |
||
1198 | |||
1199 | $userService = $repository->getUserService(); |
||
1200 | |||
1201 | /* BEGIN: Use Case */ |
||
1202 | $user = $this->createUserVersion1(); |
||
1203 | |||
1204 | // Load the newly created user |
||
1205 | $userReloaded = $userService->loadUserByLogin('user'); |
||
1206 | /* END: Use Case */ |
||
1207 | |||
1208 | $this->assertPropertiesCorrect( |
||
1209 | array( |
||
1210 | 'login' => $user->login, |
||
1211 | 'email' => $user->email, |
||
1212 | 'passwordHash' => $user->passwordHash, |
||
1213 | 'hashAlgorithm' => $user->hashAlgorithm, |
||
1214 | 'enabled' => $user->enabled, |
||
1215 | 'maxLogin' => $user->maxLogin, |
||
1216 | 'id' => $user->id, |
||
1217 | 'contentInfo' => $user->contentInfo, |
||
1218 | 'versionInfo' => $user->versionInfo, |
||
1219 | 'fields' => $user->fields, |
||
1220 | ), |
||
1221 | $userReloaded |
||
1222 | ); |
||
1223 | } |
||
1224 | |||
1225 | /** |
||
1226 | * Test for the loadUserByLogin() method. |
||
1227 | * |
||
1228 | * @see \eZ\Publish\API\Repository\UserService::loadUserByLogin() |
||
1229 | * @expectedException \eZ\Publish\API\Repository\Exceptions\NotFoundException |
||
1230 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserByLogin |
||
1231 | */ |
||
1232 | public function testLoadUserByLoginThrowsNotFoundExceptionForUnknownLogin() |
||
1246 | |||
1247 | /** |
||
1248 | * Test for the loadUserByLogin() method. |
||
1249 | * |
||
1250 | * @see \eZ\Publish\API\Repository\UserService::loadUserByLogin() |
||
1251 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserByLogin |
||
1252 | */ |
||
1253 | View Code Duplication | public function testLoadUserByLoginWorksForLoginWithWrongCase() |
|
1254 | { |
||
1255 | $repository = $this->getRepository(); |
||
1256 | |||
1257 | $userService = $repository->getUserService(); |
||
1258 | |||
1259 | /* BEGIN: Use Case */ |
||
1260 | $user = $this->createUserVersion1(); |
||
1261 | |||
1262 | // Lookup by user login should ignore casing |
||
1263 | $userReloaded = $userService->loadUserByLogin('USER'); |
||
1264 | /* END: Use Case */ |
||
1265 | |||
1266 | $this->assertPropertiesCorrect( |
||
1267 | array( |
||
1268 | 'login' => $user->login, |
||
1269 | 'email' => $user->email, |
||
1270 | 'passwordHash' => $user->passwordHash, |
||
1271 | 'hashAlgorithm' => $user->hashAlgorithm, |
||
1272 | 'enabled' => $user->enabled, |
||
1273 | 'maxLogin' => $user->maxLogin, |
||
1274 | 'id' => $user->id, |
||
1275 | 'contentInfo' => $user->contentInfo, |
||
1276 | 'versionInfo' => $user->versionInfo, |
||
1277 | 'fields' => $user->fields, |
||
1278 | ), |
||
1279 | $userReloaded |
||
1280 | ); |
||
1281 | } |
||
1282 | |||
1283 | /** |
||
1284 | * Test for the loadUsersByEmail() method. |
||
1285 | * |
||
1286 | * @see \eZ\Publish\API\Repository\UserService::loadUsersByEmail() |
||
1287 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
||
1288 | */ |
||
1289 | View Code Duplication | public function testLoadUserByEmail() |
|
1304 | |||
1305 | /** |
||
1306 | * Test for the loadUsersByEmail() method. |
||
1307 | * |
||
1308 | * @see \eZ\Publish\API\Repository\UserService::loadUsersByEmail() |
||
1309 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserByEmail |
||
1310 | */ |
||
1311 | View Code Duplication | public function testLoadUserByEmailReturnsEmptyInUnknownEmail() |
|
1327 | |||
1328 | /** |
||
1329 | * Test for the deleteUser() method. |
||
1330 | * |
||
1331 | * @see \eZ\Publish\API\Repository\UserService::deleteUser() |
||
1332 | * @expectedException \eZ\Publish\API\Repository\Exceptions\NotFoundException |
||
1333 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
||
1334 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUser |
||
1335 | */ |
||
1336 | View Code Duplication | public function testDeleteUser() |
|
1352 | |||
1353 | /** |
||
1354 | * Test for the newUserUpdateStruct() method. |
||
1355 | * |
||
1356 | * @see \eZ\Publish\API\Repository\UserService::newUserUpdateStruct() |
||
1357 | */ |
||
1358 | public function testNewUserUpdateStruct() |
||
1374 | |||
1375 | /** |
||
1376 | * Test for the updateUser() method. |
||
1377 | * |
||
1378 | * @return \eZ\Publish\API\Repository\Values\User\User |
||
1379 | * |
||
1380 | * @see \eZ\Publish\API\Repository\UserService::updateUser() |
||
1381 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
||
1382 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testNewUserUpdateStruct |
||
1383 | * @depends eZ\Publish\API\Repository\Tests\ContentServiceTest::testUpdateContent |
||
1384 | * @depends eZ\Publish\API\Repository\Tests\ContentServiceTest::testUpdateContentMetadata |
||
1385 | */ |
||
1386 | public function testUpdateUser() |
||
1414 | |||
1415 | /** |
||
1416 | * Test for the updateUser() method. |
||
1417 | * |
||
1418 | * @param \eZ\Publish\API\Repository\Values\User\User $user |
||
1419 | * |
||
1420 | * @see \eZ\Publish\API\Repository\UserService::updateUser() |
||
1421 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testUpdateUser |
||
1422 | */ |
||
1423 | public function testUpdateUserUpdatesExpectedProperties(User $user) |
||
1446 | |||
1447 | /** |
||
1448 | * Test for the updateUser() method. |
||
1449 | * |
||
1450 | * @param \eZ\Publish\API\Repository\Values\User\User $user |
||
1451 | * |
||
1452 | * @see \eZ\Publish\API\Repository\UserService::updateUser() |
||
1453 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testUpdateUser |
||
1454 | */ |
||
1455 | public function testUpdateUserReturnsPublishedVersion($user) |
||
1462 | |||
1463 | /** |
||
1464 | * Test for the updateUser() method. |
||
1465 | * |
||
1466 | * @see \eZ\Publish\API\Repository\UserService::updateUser() |
||
1467 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testUpdateUser |
||
1468 | */ |
||
1469 | public function testUpdateUserWithContentMetadataUpdateStruct() |
||
1500 | |||
1501 | /** |
||
1502 | * Test for the updateUser() method. |
||
1503 | * |
||
1504 | * @see \eZ\Publish\API\Repository\UserService::updateUser() |
||
1505 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testUpdateUser |
||
1506 | */ |
||
1507 | public function testUpdateUserWithContentUpdateStruct() |
||
1542 | |||
1543 | /** |
||
1544 | * Test for the updateUser() method. |
||
1545 | * |
||
1546 | * @see \eZ\Publish\API\Repository\UserService::updateUser() |
||
1547 | * @expectedException \eZ\Publish\API\Repository\Exceptions\ContentFieldValidationException |
||
1548 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testUpdateUser |
||
1549 | */ |
||
1550 | View Code Duplication | public function testUpdateUserWhenMissingField() |
|
1551 | { |
||
1552 | $repository = $this->getRepository(); |
||
1553 | |||
1554 | $userService = $repository->getUserService(); |
||
1555 | |||
1556 | /* BEGIN: Use Case */ |
||
1557 | $user = $this->createUserVersion1(); |
||
1558 | |||
1559 | // Get the ContentService implementation |
||
1560 | $contentService = $repository->getContentService(); |
||
1561 | |||
1562 | // Create a content update struct and change the remote id. |
||
1563 | $contentUpdate = $contentService->newContentUpdateStruct(); |
||
1564 | $contentUpdate->setField('first_name', null, 'eng-US'); |
||
1565 | |||
1566 | // Create a new update struct instance |
||
1567 | $userUpdate = $userService->newUserUpdateStruct(); |
||
1568 | |||
1569 | // Set the content update struct. |
||
1570 | $userUpdate->contentUpdateStruct = $contentUpdate; |
||
1571 | |||
1572 | // This call will fail with a "ContentFieldValidationException" because the |
||
1573 | // mandatory field "first_name" is set to an empty value. |
||
1574 | $userService->updateUser($user, $userUpdate); |
||
1575 | |||
1576 | /* END: Use Case */ |
||
1577 | } |
||
1578 | |||
1579 | /** |
||
1580 | * Test for the updateUser() method. |
||
1581 | * |
||
1582 | * @see \eZ\Publish\API\Repository\UserService::updateUser() |
||
1583 | * @expectedException \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException |
||
1584 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testUpdateUser |
||
1585 | */ |
||
1586 | View Code Duplication | public function testUpdateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept() |
|
1614 | |||
1615 | /** |
||
1616 | * Test for the loadUserGroupsOfUser() method. |
||
1617 | * |
||
1618 | * @see \eZ\Publish\API\Repository\UserService::loadUserGroupsOfUser() |
||
1619 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
||
1620 | */ |
||
1621 | public function testLoadUserGroupsOfUser() |
||
1639 | |||
1640 | /** |
||
1641 | * Test for the loadUsersOfUserGroup() method. |
||
1642 | * |
||
1643 | * @see \eZ\Publish\API\Repository\UserService::loadUsersOfUserGroup() |
||
1644 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
||
1645 | */ |
||
1646 | public function testLoadUsersOfUserGroup() |
||
1666 | |||
1667 | /** |
||
1668 | * Test for the assignUserToUserGroup() method. |
||
1669 | * |
||
1670 | * @see \eZ\Publish\API\Repository\UserService::assignUserToUserGroup() |
||
1671 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserGroupsOfUser |
||
1672 | */ |
||
1673 | public function testAssignUserToUserGroup() |
||
1708 | |||
1709 | /** |
||
1710 | * Test for the assignUserToUserGroup() method. |
||
1711 | * |
||
1712 | * @see \eZ\Publish\API\Repository\UserService::assignUserToUserGroup() |
||
1713 | * @expectedException \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException |
||
1714 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testAssignUserToUserGroup |
||
1715 | */ |
||
1716 | View Code Duplication | public function testAssignUserToUserGroupThrowsInvalidArgumentException() |
|
1735 | |||
1736 | /** |
||
1737 | * Test for the unAssignUssrFromUserGroup() method. |
||
1738 | * |
||
1739 | * @see \eZ\Publish\API\Repository\UserService::unAssignUssrFromUserGroup() |
||
1740 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testLoadUserGroupsOfUser |
||
1741 | */ |
||
1742 | public function testUnAssignUserFromUserGroup() |
||
1777 | |||
1778 | /** |
||
1779 | * Test for the unAssignUserFromUserGroup() method. |
||
1780 | * |
||
1781 | * @see \eZ\Publish\API\Repository\UserService::unAssignUserFromUserGroup() |
||
1782 | * @expectedException \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException |
||
1783 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testUnAssignUserFromUserGroup |
||
1784 | */ |
||
1785 | public function testUnAssignUserFromUserGroupThrowsInvalidArgumentException() |
||
1804 | |||
1805 | /** |
||
1806 | * Test for the unAssignUserFromUserGroup() method. |
||
1807 | * |
||
1808 | * @see \eZ\Publish\API\Repository\UserService::unAssignUserFromUserGroup() |
||
1809 | * @expectedException \eZ\Publish\API\Repository\Exceptions\BadStateException |
||
1810 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testUnAssignUserFromUserGroup |
||
1811 | */ |
||
1812 | public function testUnAssignUserFromUserGroupThrowsBadStateArgumentException() |
||
1831 | |||
1832 | /** |
||
1833 | * Create a user group fixture in a variable named <b>$userGroup</b>,. |
||
1834 | * |
||
1835 | * @return \eZ\Publish\API\Repository\Values\User\UserGroup |
||
1836 | */ |
||
1837 | private function createUserGroupVersion1() |
||
1863 | |||
1864 | View Code Duplication | private function createHash($login, $password, $type) |
|
1884 | } |
||
1885 |
This property has been deprecated. The supplier of the class has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the property will be removed from the class and what other property to use instead.