From cdc7f743d583ee811037c5770c1c0f450861c297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= Date: Tue, 17 Mar 2015 13:08:27 +0100 Subject: [PATCH] Remove staticExpects to work with PHPUnit ~4.5 --- .travis.yml | 1 - .../Border/Checker/CheckerInterface.php | 2 +- .../Phrasea/Border/Checker/Colorspace.php | 2 +- .../Phrasea/Border/Checker/Dimension.php | 2 +- .../Phrasea/Border/Checker/Extension.php | 2 +- .../Phrasea/Border/Checker/Filename.php | 2 +- .../Phrasea/Border/Checker/MediaType.php | 2 +- lib/Alchemy/Phrasea/Border/Checker/Sha256.php | 2 +- lib/Alchemy/Phrasea/Border/Checker/UUID.php | 2 +- .../SearchEngine/SearchEngineInterface.php | 3 +- .../Border/Checker/AbstractCheckerTest.php | 18 ++----- .../Phrasea/Border/Checker/DimensionTest.php | 3 +- .../Phrasea/Border/Checker/ResponseTest.php | 7 ++- .../Configuration/ConfigurationTestCase.php | 24 +++++----- .../Core/Configuration/YamlCountingParse.php | 47 +++++++++++++++++++ tests/classes/PhraseanetSeTestSubscriber.php | 19 ++++++++ tests/classes/PhraseanetTestCase.php | 26 ++++------ 17 files changed, 107 insertions(+), 57 deletions(-) create mode 100644 tests/Alchemy/Tests/Phrasea/Core/Configuration/YamlCountingParse.php create mode 100644 tests/classes/PhraseanetSeTestSubscriber.php diff --git a/.travis.yml b/.travis.yml index a5a32f8ecb..c5ffb7bae5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,6 @@ before_script: - mysql -e 'SET @@global.wait_timeout= 999999;' php: - - 5.4 - 5.5 - 5.6 diff --git a/lib/Alchemy/Phrasea/Border/Checker/CheckerInterface.php b/lib/Alchemy/Phrasea/Border/Checker/CheckerInterface.php index 014298557e..98f2103f44 100644 --- a/lib/Alchemy/Phrasea/Border/Checker/CheckerInterface.php +++ b/lib/Alchemy/Phrasea/Border/Checker/CheckerInterface.php @@ -45,5 +45,5 @@ interface CheckerInterface * * @return string */ - public static function getMessage(TranslatorInterface $translator); + public function getMessage(TranslatorInterface $translator); } diff --git a/lib/Alchemy/Phrasea/Border/Checker/Colorspace.php b/lib/Alchemy/Phrasea/Border/Checker/Colorspace.php index 4562c6056f..2fe0e3fcd5 100644 --- a/lib/Alchemy/Phrasea/Border/Checker/Colorspace.php +++ b/lib/Alchemy/Phrasea/Border/Checker/Colorspace.php @@ -61,7 +61,7 @@ class Colorspace extends AbstractChecker return new Response($boolean, $this); } - public static function getMessage(TranslatorInterface $translator) + public function getMessage(TranslatorInterface $translator) { return $translator->trans('The file does not match available color'); } diff --git a/lib/Alchemy/Phrasea/Border/Checker/Dimension.php b/lib/Alchemy/Phrasea/Border/Checker/Dimension.php index a3e7ff480d..10564f5326 100644 --- a/lib/Alchemy/Phrasea/Border/Checker/Dimension.php +++ b/lib/Alchemy/Phrasea/Border/Checker/Dimension.php @@ -53,7 +53,7 @@ class Dimension extends AbstractChecker return new Response($boolean, $this); } - public static function getMessage(TranslatorInterface $translator) + public function getMessage(TranslatorInterface $translator) { return $translator->trans('The file does not match required dimension'); } diff --git a/lib/Alchemy/Phrasea/Border/Checker/Extension.php b/lib/Alchemy/Phrasea/Border/Checker/Extension.php index 0e45c0e56a..cf965aad55 100644 --- a/lib/Alchemy/Phrasea/Border/Checker/Extension.php +++ b/lib/Alchemy/Phrasea/Border/Checker/Extension.php @@ -41,7 +41,7 @@ class Extension extends AbstractChecker return new Response($boolean, $this); } - public static function getMessage(TranslatorInterface $translator) + public function getMessage(TranslatorInterface $translator) { return $translator->trans('The file does not match available extensions'); } diff --git a/lib/Alchemy/Phrasea/Border/Checker/Filename.php b/lib/Alchemy/Phrasea/Border/Checker/Filename.php index 04032deeee..afbf1ecbd9 100644 --- a/lib/Alchemy/Phrasea/Border/Checker/Filename.php +++ b/lib/Alchemy/Phrasea/Border/Checker/Filename.php @@ -54,7 +54,7 @@ class Filename extends AbstractChecker /** * {@inheritdoc} */ - public static function getMessage(TranslatorInterface $translator) + public function getMessage(TranslatorInterface $translator) { return $translator->trans('A file with the same filename already exists in database'); } diff --git a/lib/Alchemy/Phrasea/Border/Checker/MediaType.php b/lib/Alchemy/Phrasea/Border/Checker/MediaType.php index 2d154de227..035fea36e9 100644 --- a/lib/Alchemy/Phrasea/Border/Checker/MediaType.php +++ b/lib/Alchemy/Phrasea/Border/Checker/MediaType.php @@ -49,7 +49,7 @@ class MediaType extends AbstractChecker return new Response($boolean, $this); } - public static function getMessage(TranslatorInterface $translator) + public function getMessage(TranslatorInterface $translator) { return $translator->trans('The file does not match required media type'); } diff --git a/lib/Alchemy/Phrasea/Border/Checker/Sha256.php b/lib/Alchemy/Phrasea/Border/Checker/Sha256.php index 1f66475929..acd0110433 100644 --- a/lib/Alchemy/Phrasea/Border/Checker/Sha256.php +++ b/lib/Alchemy/Phrasea/Border/Checker/Sha256.php @@ -43,7 +43,7 @@ class Sha256 extends AbstractChecker /** * {@inheritdoc} */ - public static function getMessage(TranslatorInterface $translator) + public function getMessage(TranslatorInterface $translator) { return $translator->trans('A file with the same checksum already exists in database'); } diff --git a/lib/Alchemy/Phrasea/Border/Checker/UUID.php b/lib/Alchemy/Phrasea/Border/Checker/UUID.php index 6c195bf38b..11ab8552cf 100644 --- a/lib/Alchemy/Phrasea/Border/Checker/UUID.php +++ b/lib/Alchemy/Phrasea/Border/Checker/UUID.php @@ -42,7 +42,7 @@ class UUID extends AbstractChecker /** * {@inheritdoc} */ - public static function getMessage(TranslatorInterface $translator) + public function getMessage(TranslatorInterface $translator) { return $translator->trans('A file with the same UUID already exists in database'); } diff --git a/lib/Alchemy/Phrasea/SearchEngine/SearchEngineInterface.php b/lib/Alchemy/Phrasea/SearchEngine/SearchEngineInterface.php index 3d64995ed4..faf2596cb8 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/SearchEngineInterface.php +++ b/lib/Alchemy/Phrasea/SearchEngine/SearchEngineInterface.php @@ -13,9 +13,8 @@ namespace Alchemy\Phrasea\SearchEngine; use Alchemy\Phrasea\Application; use Alchemy\Phrasea\Exception\RuntimeException; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Doctrine\Common\Collections\ArrayCollection; use Alchemy\Phrasea\Model\Entities\FeedEntry; +use Doctrine\Common\Collections\ArrayCollection; interface SearchEngineInterface { diff --git a/tests/Alchemy/Tests/Phrasea/Border/Checker/AbstractCheckerTest.php b/tests/Alchemy/Tests/Phrasea/Border/Checker/AbstractCheckerTest.php index 5df32a2651..7e250431c5 100644 --- a/tests/Alchemy/Tests/Phrasea/Border/Checker/AbstractCheckerTest.php +++ b/tests/Alchemy/Tests/Phrasea/Border/Checker/AbstractCheckerTest.php @@ -18,7 +18,9 @@ class AbstractCheckerTest extends \PhraseanetTestCase { parent::setUp(); - $this->object = new AbstractCheckerTester(self::$DI['app']); + $this->object = $this->getMockBuilder(AbstractChecker::class) + ->setConstructorArgs([self::$DI['app']]) + ->getMockForAbstractClass(); $this->file = $this->getMock('\\Alchemy\\Phrasea\\Border\\File', ['getCollection'], [], 'CheckerTesterMock' . mt_rand(), false); } @@ -199,17 +201,3 @@ class AbstractCheckerTest extends \PhraseanetTestCase ]; } } - -class AbstractCheckerTester extends AbstractChecker -{ - - public static function getMessage(TranslatorInterface $translator) - { - - } - - public function check(EntityManager $em, File $file) - { - - } -} diff --git a/tests/Alchemy/Tests/Phrasea/Border/Checker/DimensionTest.php b/tests/Alchemy/Tests/Phrasea/Border/Checker/DimensionTest.php index 465dc2c83d..9c2b64f30a 100644 --- a/tests/Alchemy/Tests/Phrasea/Border/Checker/DimensionTest.php +++ b/tests/Alchemy/Tests/Phrasea/Border/Checker/DimensionTest.php @@ -111,7 +111,8 @@ class DimensionTest extends \PhraseanetTestCase */ public function testGetMessage() { - $this->assertInternalType('string', Dimension::getMessage($this->createTranslatorMock())); + $checker = new Dimension(self::$DI['app'], ['width' => 800]); + $this->assertInternalType('string', $checker->getMessage($this->createTranslatorMock())); } /** diff --git a/tests/Alchemy/Tests/Phrasea/Border/Checker/ResponseTest.php b/tests/Alchemy/Tests/Phrasea/Border/Checker/ResponseTest.php index bc8cce2373..393bc4541e 100644 --- a/tests/Alchemy/Tests/Phrasea/Border/Checker/ResponseTest.php +++ b/tests/Alchemy/Tests/Phrasea/Border/Checker/ResponseTest.php @@ -2,6 +2,7 @@ namespace Alchemy\Tests\Phrasea\Border\Checker; +use Alchemy\Phrasea\Border\Checker\CheckerInterface; use Alchemy\Phrasea\Border\Checker\Response; use Alchemy\Tests\Tools\TranslatorMockTrait; @@ -9,7 +10,9 @@ class ResponseTest extends \PhraseanetTestCase { use TranslatorMockTrait; + /** @var \PHPUnit_Framework_MockObject_MockObject */ protected $mock; + /** @var Response */ protected $object; /** @@ -18,7 +21,7 @@ class ResponseTest extends \PhraseanetTestCase public function setUp() { parent::setUp(); - $this->mock = $this->getMock('\\Alchemy\\Phrasea\\Border\\Checker\\CheckerInterface', ['getMessage', 'check', 'isApplicable']); + $this->mock = $this->getMock(CheckerInterface::class); $this->object = new Response(true, $this->mock); } @@ -58,7 +61,7 @@ class ResponseTest extends \PhraseanetTestCase public function testGetMessage() { $this->mock - ->staticExpects($this->any()) + ->expects($this->any()) ->method('getMessage') ->will($this->returnValue('Hello World')); diff --git a/tests/Alchemy/Tests/Phrasea/Core/Configuration/ConfigurationTestCase.php b/tests/Alchemy/Tests/Phrasea/Core/Configuration/ConfigurationTestCase.php index df0f67efca..d3125f74ac 100644 --- a/tests/Alchemy/Tests/Phrasea/Core/Configuration/ConfigurationTestCase.php +++ b/tests/Alchemy/Tests/Phrasea/Core/Configuration/ConfigurationTestCase.php @@ -211,11 +211,12 @@ abstract class ConfigurationTestCase extends \PhraseanetTestCase $compiler->expects($this->never()) ->method('compile'); - $yaml = $this->getMockBuilder('Symfony\Component\Yaml\Yaml') - ->disableOriginalConstructor() - ->getMock(); - $yaml::staticExpects($this->never()) - ->method('parse'); + // This Yaml Parser throws exception when trying to parse. + $yaml = new YamlCountingParse(); + $yaml::reset(); + $yaml::setParseBehavior(function () { + throw new \RuntimeException('Should not be called'); + }); $conf = $this->provideConfiguration($configFile, null, $compiler, $yaml); $conf->getConfig(); @@ -247,13 +248,11 @@ abstract class ConfigurationTestCase extends \PhraseanetTestCase ->with(['main' => 'tiptop']) ->will($this->returnValue(' "tiptop"];')); - $yaml = $this->getMockBuilder('Symfony\Component\Yaml\Yaml') - ->disableOriginalConstructor() - ->getMock(); - $yaml::staticExpects($this->once()) - ->method('parse') - ->will($this->returnValue(['main' => 'tiptop'])); - + $yaml = new YamlCountingParse(); + $yaml::reset(); + $yaml::setParseBehavior(function () { + return ['main' => 'tiptop']; + }); $conf = $this->provideConfiguration($configFile, null, $compiler, $yaml, true); $this->assertSame(['main' => 'tiptop'], $conf->getConfig()); $this->assertSame(['main' => 'tiptop'], $conf->getConfig()); @@ -261,6 +260,7 @@ abstract class ConfigurationTestCase extends \PhraseanetTestCase $this->assertSame('tiptop', $conf['main']); $this->assertSame('tiptop', $conf['main']); $this->assertSame('tiptop', $conf['main']); + $this->assertEquals(1, $yaml::getParseCount()); } public function testCompileAndWrite() diff --git a/tests/Alchemy/Tests/Phrasea/Core/Configuration/YamlCountingParse.php b/tests/Alchemy/Tests/Phrasea/Core/Configuration/YamlCountingParse.php new file mode 100644 index 0000000000..ca784cb41d --- /dev/null +++ b/tests/Alchemy/Tests/Phrasea/Core/Configuration/YamlCountingParse.php @@ -0,0 +1,47 @@ +createTranslatorMock(); - $app['phraseanet.SE.subscriber'] = $this->getMock('Symfony\Component\EventDispatcher\EventSubscriberInterface'); - $app['phraseanet.SE.subscriber']::staticExpects($this->any()) - ->method('getSubscribedEvents') - ->will($this->returnValue([])); + $app['phraseanet.SE.subscriber'] = new PhraseanetSeTestSubscriber(); $app['orm.em'] = $app->extend('orm.em', function($em, $app) { @@ -710,7 +707,7 @@ abstract class PhraseanetTestCase extends WebTestCase protected function createSearchEngineMock() { - $mock = $this->getMock('Alchemy\Phrasea\SearchEngine\SearchEngineInterface'); + $mock = $this->getMock(SearchEngineInterface::class); $mock->expects($this->any()) ->method('createSubscriber') ->will($this->returnValue($this->getMock('Symfony\Component\EventDispatcher\EventSubscriberInterface'))); @@ -720,9 +717,6 @@ abstract class PhraseanetTestCase extends WebTestCase $mock->expects($this->any()) ->method('getStatus') ->will($this->returnValue([])); - $mock->staticExpects($this->any()) - ->method('createSubscriber') - ->will($this->returnValue($this->getMock('Symfony\Component\EventDispatcher\EventSubscriberInterface'))); return $mock; }