TestCase.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /*
  3. * This file is part of PHP CS Fixer.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. * Dariusz Rumiński <dariusz.ruminski@gmail.com>
  7. *
  8. * This source file is subject to the MIT license that is bundled
  9. * with this source code in the file LICENSE.
  10. */
  11. namespace PhpCsFixer\Tests;
  12. use LegacyPHPUnit\TestCase as BaseTestCase;
  13. use PHPUnitGoodPractices\Polyfill\PolyfillTrait;
  14. use PHPUnitGoodPractices\Traits\ExpectationViaCodeOverAnnotationTrait;
  15. use PHPUnitGoodPractices\Traits\ExpectOverSetExceptionTrait;
  16. use PHPUnitGoodPractices\Traits\IdentityOverEqualityTrait;
  17. use PHPUnitGoodPractices\Traits\ProphecyOverMockObjectTrait;
  18. use PHPUnitGoodPractices\Traits\ProphesizeOnlyInterfaceTrait;
  19. use Prophecy\PhpUnit\ProphecyTrait;
  20. // we check single, example DEV dependency - if it's there, we have the dev dependencies, if not, we are using PHP-CS-Fixer as library and trying to use internal TestCase...
  21. if (trait_exists(ProphesizeOnlyInterfaceTrait::class)) {
  22. if (trait_exists(ProphecyTrait::class)) {
  23. /**
  24. * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
  25. *
  26. * @internal
  27. */
  28. abstract class InterimTestCase extends BaseTestCase
  29. {
  30. use ProphecyTrait;
  31. }
  32. } else {
  33. /**
  34. * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
  35. *
  36. * @internal
  37. */
  38. abstract class InterimTestCase extends BaseTestCase
  39. {
  40. }
  41. }
  42. /**
  43. * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
  44. *
  45. * @internal
  46. */
  47. abstract class TestCase extends InterimTestCase
  48. {
  49. use ExpectationViaCodeOverAnnotationTrait;
  50. use ExpectOverSetExceptionTrait;
  51. use IdentityOverEqualityTrait;
  52. use PolyfillTrait;
  53. use ProphecyOverMockObjectTrait;
  54. use ProphesizeOnlyInterfaceTrait;
  55. }
  56. } else {
  57. /**
  58. * Version without traits for cases when this class is used as a lib.
  59. *
  60. * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
  61. *
  62. * @internal
  63. *
  64. * @todo 3.0 To be removed when we clean up composer prod-autoloader from dev-packages.
  65. */
  66. abstract class TestCase extends BaseTestCase
  67. {
  68. }
  69. }