diff vendor/phar-io/version/tests/Unit/VersionTest.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/Unit/VersionTest.php	Mon Apr 23 09:46:53 2018 +0100
@@ -0,0 +1,104 @@
+<?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],
+        ];
+    }
+
+    /**
+     * @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']
+        ];
+    }
+
+}