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 |
||
| 21 | class XMLWorkflowFactoryTest extends TestCase |
||
| 22 | { |
||
| 23 | use HttpMockTrait, DirUtilTrait; |
||
| 24 | |||
| 25 | /** |
||
| 26 | * @var XmlWorkflowFactory |
||
| 27 | */ |
||
| 28 | private $xmlWorkflowFactory; |
||
| 29 | |||
| 30 | /** |
||
| 31 | * @var mixed |
||
| 32 | */ |
||
| 33 | private $originalDefaultPathsToWorkflows; |
||
| 34 | |||
| 35 | /** |
||
| 36 | * |
||
| 37 | */ |
||
| 38 | public static function setUpBeforeClass() |
||
| 42 | |||
| 43 | /** |
||
| 44 | * |
||
| 45 | */ |
||
| 46 | public static function tearDownAfterClass() |
||
| 50 | |||
| 51 | /** |
||
| 52 | * |
||
| 53 | */ |
||
| 54 | public function setUp() |
||
| 60 | |||
| 61 | /** |
||
| 62 | * |
||
| 63 | */ |
||
| 64 | public function tearDown() |
||
| 69 | |||
| 70 | |||
| 71 | |||
| 72 | /** |
||
| 73 | * Проверка работы с layout |
||
| 74 | * |
||
| 75 | * @return void |
||
| 76 | */ |
||
| 77 | public function testSetterGetterLayout() |
||
| 83 | |||
| 84 | |||
| 85 | /** |
||
| 86 | * Проверка работы с isModifiable |
||
| 87 | * |
||
| 88 | * @return void |
||
| 89 | */ |
||
| 90 | public function testIsModifiable() |
||
| 94 | |||
| 95 | |||
| 96 | /** |
||
| 97 | * Проверка работы с getName |
||
| 98 | * |
||
| 99 | * @return void |
||
| 100 | */ |
||
| 101 | public function testGetName() |
||
| 107 | |||
| 108 | |||
| 109 | /** |
||
| 110 | * Проверка работы с serialize |
||
| 111 | * |
||
| 112 | * @return void |
||
| 113 | */ |
||
| 114 | public function testSerialize() |
||
| 118 | |||
| 119 | |||
| 120 | /** |
||
| 121 | * Проверка работы с Unserialize |
||
| 122 | * |
||
| 123 | * @return void |
||
| 124 | */ |
||
| 125 | public function testUnserialize() |
||
| 133 | |||
| 134 | |||
| 135 | /** |
||
| 136 | * Получение имен workflow |
||
| 137 | * |
||
| 138 | * @return void |
||
| 139 | */ |
||
| 140 | public function testGetWorkflowNames() |
||
| 144 | |||
| 145 | |||
| 146 | /** |
||
| 147 | * Удаление workflow |
||
| 148 | * |
||
| 149 | * @expectedException \OldTown\Workflow\Exception\FactoryException |
||
| 150 | * @expectedExceptionMessage Удаление workflow не поддерживается |
||
| 151 | * |
||
| 152 | * @return void |
||
| 153 | */ |
||
| 154 | public function testRemoveWorkflow() |
||
| 158 | |||
| 159 | |||
| 160 | /** |
||
| 161 | * Переименовывание workflow |
||
| 162 | * |
||
| 163 | * @return void |
||
| 164 | */ |
||
| 165 | public function testRenameWorkflow() |
||
| 172 | |||
| 173 | |||
| 174 | /** |
||
| 175 | * Сохранение |
||
| 176 | * |
||
| 177 | * |
||
| 178 | * @return void |
||
| 179 | */ |
||
| 180 | public function testSave() |
||
| 187 | |||
| 188 | |||
| 189 | |||
| 190 | /** |
||
| 191 | * Проверка создания Workflow |
||
| 192 | * |
||
| 193 | * @return void |
||
| 194 | */ |
||
| 195 | public function testCreateWorkflow() |
||
| 203 | |||
| 204 | /** |
||
| 205 | * |
||
| 206 | * |
||
| 207 | */ |
||
| 208 | View Code Duplication | public function testInitDone() |
|
| 221 | |||
| 222 | /** |
||
| 223 | * @expectedException \OldTown\Workflow\Exception\InvalidParsingWorkflowException |
||
| 224 | * |
||
| 225 | */ |
||
| 226 | public function testInvalidConfig() |
||
| 250 | |||
| 251 | |||
| 252 | /** |
||
| 253 | * @expectedException \OldTown\Workflow\Exception\FactoryException |
||
| 254 | * @expectedExceptionMessage Нет workflow с именем invalid-name |
||
| 255 | * |
||
| 256 | */ |
||
| 257 | public function testGetWorkflowInvalidName() |
||
| 261 | |||
| 262 | |||
| 263 | |||
| 264 | /** |
||
| 265 | * Тестирование кеша при получение дескриптора workflow |
||
| 266 | * |
||
| 267 | * |
||
| 268 | */ |
||
| 269 | public function testGetWorkflowReload() |
||
| 305 | |||
| 306 | /** |
||
| 307 | * Попытка загрузить некорректный workflow файл |
||
| 308 | * |
||
| 309 | * @expectedException \OldTown\Workflow\Exception\FactoryException |
||
| 310 | * @expectedExceptionMessageRegExp /Некорректный дескрипторв workflow:.*+/ |
||
| 311 | */ |
||
| 312 | View Code Duplication | public function testLoadInvalidWorkflow() |
|
| 325 | |||
| 326 | |||
| 327 | /** |
||
| 328 | * Проверка ситуации когда в конфиге workflow не задана атрибут baseDir |
||
| 329 | * |
||
| 330 | */ |
||
| 331 | public function testNoBaseDir() |
||
| 353 | |||
| 354 | |||
| 355 | /** |
||
| 356 | * Проверка ситуации когда отсутствует файл с описанием используемых workflow |
||
| 357 | * |
||
| 358 | * @expectedException \OldTown\Workflow\Exception\FactoryException |
||
| 359 | * @expectedExceptionMessage Не удалось найти файл workflow |
||
| 360 | */ |
||
| 361 | public function testNotFoundWorkflowsFile() |
||
| 367 | |||
| 368 | |||
| 369 | /** |
||
| 370 | * Проверка ситуации когда в конфиге workflow задана некорректынй атрибут baseDir |
||
| 371 | * |
||
| 372 | * @expectedException \OldTown\Workflow\Exception\RuntimeException |
||
| 373 | * @expectedExceptionMessage Отсутствует ресурс ./invalid-base-dir |
||
| 374 | */ |
||
| 375 | public function testInvalidBaseDir() |
||
| 382 | |||
| 383 | |||
| 384 | /** |
||
| 385 | * Сохранение workflow |
||
| 386 | * |
||
| 387 | * |
||
| 388 | * @return void |
||
| 389 | */ |
||
| 390 | public function testSaveWorkflow() |
||
| 413 | |||
| 414 | /** |
||
| 415 | * Сохранение workflow |
||
| 416 | * |
||
| 417 | * @expectedException \OldTown\Workflow\Exception\InvalidWriteWorkflowException |
||
| 418 | * @expectedExceptionMessageRegExp /Ошибка при архивирование оригинального файла workflow .*+/ |
||
| 419 | * |
||
| 420 | * @return void |
||
| 421 | */ |
||
| 422 | View Code Duplication | public function testSaveWorkflowInvalidBackup() |
|
| 446 | |||
| 447 | |||
| 448 | /** |
||
| 449 | * Сохранение workflow |
||
| 450 | * |
||
| 451 | * @expectedException \OldTown\Workflow\Exception\InvalidWriteWorkflowException |
||
| 452 | * @expectedExceptionMessageRegExp /Ошибка при переименовывание нового файла workflow .*+/ |
||
| 453 | * |
||
| 454 | * @return void |
||
| 455 | */ |
||
| 456 | View Code Duplication | public function testSaveWorkflowInvalidCreateNewFile() |
|
| 480 | |||
| 481 | |||
| 482 | |||
| 483 | /** |
||
| 484 | * Сохранение workflow. Указано незарегестрированное имя workflow |
||
| 485 | * |
||
| 486 | * @expectedException \OldTown\Workflow\Exception\UnsupportedOperationException |
||
| 487 | * @expectedExceptionMessage Сохранение workflow не поддерживается |
||
| 488 | * |
||
| 489 | * @return void |
||
| 490 | */ |
||
| 491 | public function testSaveWorkflowIncorrectName() |
||
| 497 | |||
| 498 | |||
| 499 | /** |
||
| 500 | * Сохранение workflow. Проверка варианта когда указан флаг, не позволяющий перезаписывать существующее workflow |
||
| 501 | * |
||
| 502 | * |
||
| 503 | * @return void |
||
| 504 | */ |
||
| 505 | public function testSaveWorkflowReplace() |
||
| 527 | } |
||
| 528 |
This check looks for function or method calls that always return null and whose return value is assigned to a variable.
The method
getObject()can return nothing but null, so it makes no sense to assign that value to a variable.The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.