* Jordi Boggiano * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Composer\Test\Package\LinkConstraint; use Composer\Package\LinkConstraint\VersionConstraint; class VersionConstraintTest extends \PHPUnit_Framework_TestCase { public static function successfulVersionMatches() { return array( // require provide array('==', '1', '==', '1'), array('>=', '1', '>=', '2'), array('>=', '2', '>=', '1'), array('>=', '2', '>', '1'), array('<=', '2', '>=', '1'), array('>=', '1', '<=', '2'), array('==', '2', '>=', '2'), array('!=', '1', '!=', '1'), array('!=', '1', '==', '2'), array('!=', '1', '<', '1'), array('!=', '1', '<=', '1'), array('!=', '1', '>', '1'), array('!=', '1', '>=', '1'), array('==', 'dev-foo-bar', '==', 'dev-foo-bar'), ); } /** * @dataProvider successfulVersionMatches */ public function testVersionMatchSucceeds($requireOperator, $requireVersion, $provideOperator, $provideVersion) { $versionRequire = new VersionConstraint($requireOperator, $requireVersion); $versionProvide = new VersionConstraint($provideOperator, $provideVersion); $this->assertTrue($versionRequire->matches($versionProvide)); } public static function failingVersionMatches() { return array( // require provide array('==', '1', '==', '2'), array('>=', '2', '<=', '1'), array('>=', '2', '<', '2'), array('<=', '2', '>', '2'), array('>', '2', '<=', '2'), array('<=', '1', '>=', '2'), array('>=', '2', '<=', '1'), array('==', '2', '<', '2'), array('!=', '1', '==', '1'), array('==', '1', '!=', '1'), array('==', 'dev-foo-dist', '==', 'dev-foo-zist'), ); } /** * @dataProvider failingVersionMatches */ public function testVersionMatchFails($requireOperator, $requireVersion, $provideOperator, $provideVersion) { $versionRequire = new VersionConstraint($requireOperator, $requireVersion); $versionProvide = new VersionConstraint($provideOperator, $provideVersion); $this->assertFalse($versionRequire->matches($versionProvide)); } }