 1ac0f42a58
			
		
	
	1ac0f42a58
	
	
	
		
			
			Travis config update Removed HHVM script as Laravel no longer support HHVM after releasing 5.3
		
			
				
	
	
		
			114 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?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\Version
 | |
|  */
 | |
| class VersionTest extends TestCase {
 | |
|     /**
 | |
|      * @dataProvider versionProvider
 | |
|      *
 | |
|      * @param string $versionString
 | |
|      * @param string $expectedMajor
 | |
|      * @param string $expectedMinor
 | |
|      * @param string $expectedPatch
 | |
|      * @param string $expectedPreReleaseValue
 | |
|      * @param int $expectedReleaseCount
 | |
|      */
 | |
|     public function testParsesVersionNumbers(
 | |
|         $versionString,
 | |
|         $expectedMajor,
 | |
|         $expectedMinor,
 | |
|         $expectedPatch,
 | |
|         $expectedPreReleaseValue = '',
 | |
|         $expectedReleaseCount = 0
 | |
|     ) {
 | |
|         $version = new Version($versionString);
 | |
| 
 | |
|         $this->assertSame($expectedMajor, $version->getMajor()->getValue());
 | |
|         $this->assertSame($expectedMinor, $version->getMinor()->getValue());
 | |
|         $this->assertSame($expectedPatch, $version->getPatch()->getValue());
 | |
|         if ($expectedPreReleaseValue !== '') {
 | |
|             $this->assertSame($expectedPreReleaseValue, $version->getPreReleaseSuffix()->getValue());
 | |
|         }
 | |
|         if ($expectedReleaseCount !== 0) {
 | |
|             $this->assertSame($expectedReleaseCount, $version->getPreReleaseSuffix()->getNumber());
 | |
|         }
 | |
| 
 | |
|         $this->assertSame($versionString, $version->getVersionString());
 | |
|     }
 | |
| 
 | |
|     public function versionProvider() {
 | |
|         return [
 | |
|             ['0.0.1', '0', '0', '1'],
 | |
|             ['0.1.2', '0', '1', '2'],
 | |
|             ['1.0.0-alpha', '1', '0', '0', 'alpha'],
 | |
|             ['3.4.12-dev3', '3', '4', '12', 'dev', 3],
 | |
|         ];
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @dataProvider versionGreaterThanProvider
 | |
|      *
 | |
|      * @param Version $versionA
 | |
|      * @param Version $versionB
 | |
|      * @param bool $expectedResult
 | |
|      */
 | |
|     public function testIsGreaterThan(Version $versionA, Version $versionB, $expectedResult) {
 | |
|         $this->assertSame($expectedResult, $versionA->isGreaterThan($versionB));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return array
 | |
|      */
 | |
|     public function versionGreaterThanProvider() {
 | |
|         return [
 | |
|             [new Version('1.0.0'), new Version('1.0.1'), false],
 | |
|             [new Version('1.0.1'), new Version('1.0.0'), true],
 | |
|             [new Version('1.1.0'), new Version('1.0.1'), true],
 | |
|             [new Version('1.1.0'), new Version('2.0.1'), false],
 | |
|             [new Version('1.1.0'), new Version('1.1.0'), false],
 | |
|             [new Version('2.5.8'), new Version('1.6.8'), true],
 | |
|             [new Version('2.5.8'), new Version('2.6.8'), false],
 | |
|             [new Version('2.5.8'), new Version('3.1.2'), false],
 | |
|             [new Version('3.0.0-alpha1'), new Version('3.0.0-alpha2'), false],
 | |
|             [new Version('3.0.0-alpha2'), new Version('3.0.0-alpha1'), true],
 | |
|             [new Version('3.0.0-alpha.1'), new Version('3.0.0'), false],
 | |
|             [new Version('3.0.0'), new Version('3.0.0-alpha.1'), true],
 | |
|         ];
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @dataProvider invalidVersionStringProvider
 | |
|      *
 | |
|      * @param string $versionString
 | |
|      */
 | |
|     public function testThrowsExceptionIfVersionStringDoesNotFollowSemVer($versionString) {
 | |
|         $this->expectException(InvalidVersionException::class);
 | |
|         new Version($versionString);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return array
 | |
|      */
 | |
|     public function invalidVersionStringProvider() {
 | |
|         return [
 | |
|             ['foo'],
 | |
|             ['0.0.1-dev+ABC', '0', '0', '1', 'dev', 'ABC'],
 | |
|             ['1.0.0-x.7.z.92', '1', '0', '0', 'x.7.z.92']
 | |
|         ];
 | |
|     }
 | |
| 
 | |
| }
 |