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:
1 | <?php |
||
18 | class TestCase extends BaseTestCase |
||
19 | { |
||
20 | const X_HTTP_METHOD_OVERRIDE_MAP = [ |
||
21 | 'PUBLISH' => 'POST', |
||
22 | 'MOVE' => 'POST', |
||
23 | 'PATCH' => 'PATCH', |
||
24 | 'COPY' => 'POST', |
||
25 | ]; |
||
26 | |||
27 | /** |
||
28 | * @var \Buzz\Client\BuzzClientInterface |
||
29 | */ |
||
30 | private $httpClient; |
||
31 | |||
32 | /** |
||
33 | * @var string |
||
34 | */ |
||
35 | private $httpHost; |
||
36 | |||
37 | /** |
||
38 | * @var string |
||
39 | * Basic auth login:password |
||
40 | */ |
||
41 | private $httpAuth; |
||
42 | |||
43 | protected static $testSuffix; |
||
44 | |||
45 | /** |
||
46 | * @var array |
||
47 | */ |
||
48 | private $headers = []; |
||
49 | |||
50 | /** |
||
51 | * The username to use for login. |
||
52 | * @var string |
||
53 | */ |
||
54 | private $loginUsername; |
||
55 | |||
56 | /** |
||
57 | * The password to use for login. |
||
58 | * @var string |
||
59 | */ |
||
60 | private $loginPassword; |
||
61 | |||
62 | /** |
||
63 | * If true, a login request is automatically done during setUp(). |
||
64 | * @var bool |
||
65 | */ |
||
66 | protected $autoLogin = true; |
||
67 | |||
68 | /** |
||
69 | * List of REST contentId (/content/objects/12345) created by tests. |
||
70 | * |
||
71 | * @var array |
||
72 | */ |
||
73 | private static $createdContent = array(); |
||
74 | |||
75 | protected function setUp() |
||
95 | |||
96 | /** |
||
97 | * @param \Psr\Http\Message\RequestInterface $request |
||
98 | * |
||
99 | * @return \Psr\Http\Message\ResponseInterface |
||
100 | * |
||
101 | * @throws \Psr\Http\Client\ClientException |
||
102 | */ |
||
103 | public function sendHttpRequest(RequestInterface $request): ResponseInterface |
||
107 | |||
108 | protected function getHttpHost() |
||
112 | |||
113 | protected function getLoginUsername() |
||
117 | |||
118 | protected function getLoginPassword() |
||
122 | |||
123 | /** |
||
124 | * Get base URI for \Buzz\Browser based requests. |
||
125 | * |
||
126 | * @return string |
||
127 | */ |
||
128 | protected function getBaseURI() |
||
132 | |||
133 | /** |
||
134 | * @param string $method |
||
135 | * @param string $uri |
||
136 | * @param string $contentType |
||
137 | * @param string $acceptType |
||
138 | * @param string $body |
||
139 | * |
||
140 | * @param array $extraHeaders [key => value] array of extra headers |
||
141 | * |
||
142 | * @return \Psr\Http\Message\RequestInterface |
||
143 | */ |
||
144 | public function createHttpRequest( |
||
172 | |||
173 | protected function assertHttpResponseCodeEquals(ResponseInterface $response, $expected) |
||
194 | |||
195 | private function getHttpResponseCodeErrorMessage($errorMessage) |
||
213 | |||
214 | protected function assertHttpResponseHasHeader(ResponseInterface $response, $header, $expectedValue = null) |
||
222 | |||
223 | protected function generateMediaTypeString($typeString) |
||
227 | |||
228 | protected function getMediaFromTypeString($typeString) |
||
239 | |||
240 | protected function addCreatedElement($href) |
||
249 | |||
250 | public static function tearDownAfterClass() |
||
254 | |||
255 | private static function clearCreatedElement(array $contentArray) |
||
261 | |||
262 | /** |
||
263 | * @param string $parentLocationId The REST id of the parent location |
||
264 | * |
||
265 | * @return array created Content, as an array |
||
266 | */ |
||
267 | protected function createFolder($string, $parentLocationId) |
||
300 | |||
301 | /** |
||
302 | * @param $xml |
||
303 | * |
||
304 | * @return array Content key of the Content struct array |
||
305 | */ |
||
306 | protected function createContent($xml) |
||
335 | |||
336 | /** |
||
337 | * @param string $contentHref |
||
338 | * |
||
339 | * @return array |
||
340 | */ |
||
341 | View Code Duplication | protected function getContentLocations($contentHref) |
|
351 | |||
352 | protected function addTestSuffix($string) |
||
360 | |||
361 | /** |
||
362 | * Sends a login request to the REST server. |
||
363 | * |
||
364 | * @return \stdClass an object with the name, identifier, csrftoken properties. |
||
365 | */ |
||
366 | protected function login() |
||
374 | |||
375 | /** |
||
376 | * @param string $login |
||
377 | * @param string $password |
||
378 | * @param array $extraHeaders extra [key => value] headers to be passed with the authentication request. |
||
379 | * |
||
380 | * @return \Psr\Http\Message\RequestInterface |
||
381 | */ |
||
382 | protected function createAuthenticationHttpRequest(string $login, string $password, array $extraHeaders = []) |
||
393 | } |
||
394 |
Scrutinizer analyzes your
composer.json
/composer.lock
file if available to determine the classes, and functions that are defined by your dependencies.It seems like the listed class was neither found in your dependencies, nor was it found in the analyzed files in your repository. If you are using some other form of dependency management, you might want to disable this analysis.