Complex classes like RootTest 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 RootTest, and based on these observations, apply Extract Interface, too.
1 | <?php |
||
14 | class RootTest extends RESTFunctionalTestCase |
||
15 | { |
||
16 | use AssertXmlTagTrait; |
||
17 | |||
18 | /** |
||
19 | * Covers GET /. |
||
20 | */ |
||
21 | public function testLoadRootResource() |
||
30 | |||
31 | /** |
||
32 | * @dataProvider getRandomUriSet |
||
33 | * Covers GET /<wrongUri> |
||
34 | */ |
||
35 | public function testCatchAll($uri) |
||
46 | |||
47 | /** |
||
48 | * @depends testLoadRootResource |
||
49 | */ |
||
50 | public function testResultContainsRootElement($result) |
||
59 | |||
60 | /** |
||
61 | * Test if result contains Role element attributes. |
||
62 | * |
||
63 | * @param string $result |
||
64 | * |
||
65 | * @depends testLoadRootResource |
||
66 | */ |
||
67 | public function testResultContainsRootAttributes($result) |
||
81 | |||
82 | /** |
||
83 | * @depends testLoadRootResource |
||
84 | */ |
||
85 | public function testResultContainsContentTag($result) |
||
96 | |||
97 | /** |
||
98 | * @depends testLoadRootResource |
||
99 | */ |
||
100 | public function testResultContainsContentTagAttributes($result) |
||
115 | |||
116 | /** |
||
117 | * @depends testLoadRootResource |
||
118 | */ |
||
119 | public function testResultContainsContentByRemoteIdTag($result) |
||
130 | |||
131 | /** |
||
132 | * @depends testLoadRootResource |
||
133 | */ |
||
134 | public function testResultContainsContentByRemoteIdTagAttributes($result) |
||
149 | |||
150 | /** |
||
151 | * @depends testLoadRootResource |
||
152 | */ |
||
153 | public function testResultContainsContentTypesTag($result) |
||
164 | |||
165 | /** |
||
166 | * @depends testLoadRootResource |
||
167 | */ |
||
168 | public function testResultContainsContentTypesTagAttributes($result) |
||
183 | |||
184 | /** |
||
185 | * @depends testLoadRootResource |
||
186 | */ |
||
187 | public function testResultContainsContentTypeByIdentifierTag($result) |
||
198 | |||
199 | /** |
||
200 | * @depends testLoadRootResource |
||
201 | */ |
||
202 | public function testResultContainsContentTypeByIdentifierTagAttributes($result) |
||
217 | |||
218 | /** |
||
219 | * @depends testLoadRootResource |
||
220 | */ |
||
221 | public function testResultContainsContentTypeGroupsTag($result) |
||
232 | |||
233 | /** |
||
234 | * @depends testLoadRootResource |
||
235 | */ |
||
236 | public function testResultContainsContentTypeGroupsTagAttributes($result) |
||
251 | |||
252 | /** |
||
253 | * @depends testLoadRootResource |
||
254 | */ |
||
255 | public function testResultContainsContentTypeGroupByIdentifierTag($result) |
||
266 | |||
267 | /** |
||
268 | * @depends testLoadRootResource |
||
269 | */ |
||
270 | public function testResultContainsContentTypeGroupByIdentifierTagAttributes($result) |
||
285 | |||
286 | /** |
||
287 | * @depends testLoadRootResource |
||
288 | */ |
||
289 | public function testResultContainsUsersTag($result) |
||
300 | |||
301 | /** |
||
302 | * @depends testLoadRootResource |
||
303 | */ |
||
304 | public function testResultContainsUsersTagAttributes($result) |
||
319 | |||
320 | /** |
||
321 | * @depends testLoadRootResource |
||
322 | */ |
||
323 | public function testResultContainsUsersByRoleIdentifierTag($result) |
||
334 | |||
335 | /** |
||
336 | * @depends testLoadRootResource |
||
337 | */ |
||
338 | public function testResultContainsUsersByRoleIdentifierTagAttributes($result) |
||
353 | |||
354 | /** |
||
355 | * @depends testLoadRootResource |
||
356 | */ |
||
357 | public function testResultContainsUsersByRemoteIdentifierTag($result) |
||
368 | |||
369 | /** |
||
370 | * @depends testLoadRootResource |
||
371 | */ |
||
372 | public function testResultContainsUsersByRemoteIdentifierTagAttributes($result) |
||
387 | |||
388 | /** |
||
389 | * @depends testLoadRootResource |
||
390 | */ |
||
391 | public function testResultContainsUsersByEmailTag($result) |
||
402 | |||
403 | /** |
||
404 | * @depends testLoadRootResource |
||
405 | */ |
||
406 | public function testResultContainsUsersByEmailTagAttributes($result) |
||
421 | |||
422 | /** |
||
423 | * @depends testLoadRootResource |
||
424 | */ |
||
425 | public function testResultContainsUsersByLoginTag($result) |
||
436 | |||
437 | /** |
||
438 | * @depends testLoadRootResource |
||
439 | */ |
||
440 | public function testResultContainsUsersByLoginTagAttributes($result) |
||
455 | |||
456 | /** |
||
457 | * @depends testLoadRootResource |
||
458 | */ |
||
459 | public function testResultContainsRolesTag($result) |
||
470 | |||
471 | /** |
||
472 | * @depends testLoadRootResource |
||
473 | */ |
||
474 | public function testResultContainsRolesTagAttributes($result) |
||
489 | |||
490 | /** |
||
491 | * @depends testLoadRootResource |
||
492 | */ |
||
493 | public function testResultContainsRootLocationTag($result) |
||
504 | |||
505 | /** |
||
506 | * @depends testLoadRootResource |
||
507 | */ |
||
508 | public function testResultContainsRootLocationTagAttributes($result) |
||
523 | |||
524 | /** |
||
525 | * @depends testLoadRootResource |
||
526 | */ |
||
527 | public function testResultContainsRootUserGroupTag($result) |
||
538 | |||
539 | /** |
||
540 | * @depends testLoadRootResource |
||
541 | */ |
||
542 | public function testResultContainsRootUserGroupTagAttributes($result) |
||
557 | |||
558 | /** |
||
559 | * @depends testLoadRootResource |
||
560 | */ |
||
561 | public function testResultContainsRootMediaFolderTag($result) |
||
572 | |||
573 | /** |
||
574 | * @depends testLoadRootResource |
||
575 | */ |
||
576 | public function testResultContainsRootMediaFolderTagAttributes($result) |
||
591 | |||
592 | /** |
||
593 | * @depends testLoadRootResource |
||
594 | */ |
||
595 | public function testResultContainsLocationByRemoteIdTag($result) |
||
606 | |||
607 | /** |
||
608 | * @depends testLoadRootResource |
||
609 | */ |
||
610 | public function testResultContainsLocationByRemoteIdTagAttributes($result) |
||
625 | |||
626 | /** |
||
627 | * @depends testLoadRootResource |
||
628 | */ |
||
629 | public function testResultContainsLocationByPathTag($result) |
||
640 | |||
641 | /** |
||
642 | * @depends testLoadRootResource |
||
643 | */ |
||
644 | public function testResultContainsLocationByPathTagAttributes($result) |
||
659 | |||
660 | /** |
||
661 | * @depends testLoadRootResource |
||
662 | */ |
||
663 | public function testResultContainsTrashTag($result) |
||
674 | |||
675 | /** |
||
676 | * @depends testLoadRootResource |
||
677 | */ |
||
678 | public function testResultContainsTrashTagAttributes($result) |
||
693 | |||
694 | /** |
||
695 | * @depends testLoadRootResource |
||
696 | */ |
||
697 | public function testResultContainsSectionsTag($result) |
||
708 | |||
709 | /** |
||
710 | * @depends testLoadRootResource |
||
711 | */ |
||
712 | public function testResultContainsSectionTagAttributes($result) |
||
727 | |||
728 | /** |
||
729 | * @depends testLoadRootResource |
||
730 | */ |
||
731 | public function testResultContainsViewsTag($result) |
||
742 | |||
743 | /** |
||
744 | * @depends testLoadRootResource |
||
745 | */ |
||
746 | public function testResultContainsViewsTagAttributes($result) |
||
761 | |||
762 | /** |
||
763 | * @depends testLoadRootResource |
||
764 | */ |
||
765 | public function testResultContainsObjectStateGroupsTag($result) |
||
776 | |||
777 | /** |
||
778 | * @depends testLoadRootResource |
||
779 | */ |
||
780 | public function testResultContainsObjectStateGroupsTagAttributes($result) |
||
795 | |||
796 | /** |
||
797 | * @depends testLoadRootResource |
||
798 | */ |
||
799 | public function testResultContainsObjectStatesTag($result) |
||
810 | |||
811 | /** |
||
812 | * @depends testLoadRootResource |
||
813 | */ |
||
814 | public function testResultContainsObjectStatesTagAttributes($result) |
||
829 | |||
830 | /** |
||
831 | * @depends testLoadRootResource |
||
832 | */ |
||
833 | public function testResultContainsGlobalUrlAliasesTag($result) |
||
844 | |||
845 | /** |
||
846 | * @depends testLoadRootResource |
||
847 | */ |
||
848 | public function testResultContainsGlobalUrlAliasesTagAttributes($result) |
||
863 | |||
864 | /** |
||
865 | * @depends testLoadRootResource |
||
866 | */ |
||
867 | public function testResultContainsUrlWildcardsTag($result) |
||
878 | |||
879 | /** |
||
880 | * @depends testLoadRootResource |
||
881 | */ |
||
882 | public function testResultContainsUrlWildcardsTagAttributes($result) |
||
897 | |||
898 | /** |
||
899 | * @depends testLoadRootResource |
||
900 | */ |
||
901 | public function testResultContainsCreateSessionTag($result) |
||
912 | |||
913 | /** |
||
914 | * @depends testLoadRootResource |
||
915 | */ |
||
916 | public function testResultContainsCreateSessionTagAttributes($result) |
||
931 | |||
932 | /** |
||
933 | * @depends testLoadRootResource |
||
934 | */ |
||
935 | public function testResultContainsRefreshSessionTag($result) |
||
946 | |||
947 | /** |
||
948 | * @depends testLoadRootResource |
||
949 | */ |
||
950 | public function testResultContainsRefreshSessionTagAttributes($result) |
||
965 | |||
966 | public function getRandomUriSet() |
||
974 | } |
||
975 |
This check looks from parameters that have been defined for a function or method, but which are not used in the method body.