Mercurial > hg > isophonics-drupal-site
diff vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php Mon Apr 23 09:46:53 2018 +0100 @@ -0,0 +1,125 @@ +<?php +/* + * This file is part of PharIo\Version. + * + * (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Version\VersionConstraintParser + */ +class VersionConstraintParserTest extends TestCase { + /** + * @dataProvider versionStringProvider + * + * @param string $versionString + * @param VersionConstraint $expectedConstraint + */ + public function testReturnsExpectedConstraint($versionString, VersionConstraint $expectedConstraint) { + $parser = new VersionConstraintParser; + + $this->assertEquals($expectedConstraint, $parser->parse($versionString)); + } + + /** + * @dataProvider unsupportedVersionStringProvider + * + * @param string $versionString + */ + public function testThrowsExceptionIfVersionStringIsNotSupported($versionString) { + $parser = new VersionConstraintParser; + + $this->expectException(UnsupportedVersionConstraintException::class); + + $parser->parse($versionString); + } + + /** + * @return array + */ + public function versionStringProvider() { + return [ + ['1.0.2', new ExactVersionConstraint('1.0.2')], + [ + '~4.6', + new AndVersionConstraintGroup( + '~4.6', + [ + new GreaterThanOrEqualToVersionConstraint('~4.6', new Version('4.6')), + new SpecificMajorVersionConstraint('~4.6', 4) + ] + ) + ], + [ + '~4.6.2', + new AndVersionConstraintGroup( + '~4.6.2', + [ + new GreaterThanOrEqualToVersionConstraint('~4.6.2', new Version('4.6.2')), + new SpecificMajorAndMinorVersionConstraint('~4.6.2', 4, 6) + ] + ) + ], + [ + '^2.6.1', + new AndVersionConstraintGroup( + '^2.6.1', + [ + new GreaterThanOrEqualToVersionConstraint('^2.6.1', new Version('2.6.1')), + new SpecificMajorVersionConstraint('^2.6.1', 2) + ] + ) + ], + ['5.1.*', new SpecificMajorAndMinorVersionConstraint('5.1.*', 5, 1)], + ['5.*', new SpecificMajorVersionConstraint('5.*', 5)], + ['*', new AnyVersionConstraint()], + [ + '1.0.2 || 1.0.5', + new OrVersionConstraintGroup( + '1.0.2 || 1.0.5', + [ + new ExactVersionConstraint('1.0.2'), + new ExactVersionConstraint('1.0.5') + ] + ) + ], + [ + '^5.6 || ^7.0', + new OrVersionConstraintGroup( + '^5.6 || ^7.0', + [ + new AndVersionConstraintGroup( + '^5.6', [ + new GreaterThanOrEqualToVersionConstraint('^5.6', new Version('5.6')), + new SpecificMajorVersionConstraint('^5.6', 5) + ] + ), + new AndVersionConstraintGroup( + '^7.0', [ + new GreaterThanOrEqualToVersionConstraint('^7.0', new Version('7.0')), + new SpecificMajorVersionConstraint('^7.0', 7) + ] + ) + ] + ) + ] + ]; + } + + public function unsupportedVersionStringProvider() { + return [ + ['foo'], + ['+1.0.2'], + ['>=2.0'], + ['^5.6 || >= 7.0'], + ['2.0 || foo'] + ]; + } +}