* 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; use Composer\Package\LinkConstraint\VersionConstraint; class VersionConstraintTest extends \PHPUnit_Framework_TestCase { static public 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'), ); } /** * @dataProvider successfulVersionMatches */ public function testVersionMatchSucceeds($requireOperator, $requireVersion, $provideOperator, $provideVersion) { $versionRequire = new VersionConstraint($requireOperator, $requireVersion); $versionProvide = new VersionConstraint($provideOperator, $provideVersion); $this->assertTrue($versionRequire->matches($versionProvide)); } static public 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'), ); } /** * @dataProvider failingVersionMatches */ public function testVersionMatchFails($requireOperator, $requireVersion, $provideOperator, $provideVersion) { $versionRequire = new VersionConstraint($requireOperator, $requireVersion); $versionProvide = new VersionConstraint($provideOperator, $provideVersion); $this->assertFalse($versionRequire->matches($versionProvide)); } }