summaryrefslogtreecommitdiff
path: root/vendor/phpunit/phpunit/src/Util/Xml/SchemaFinder.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/phpunit/phpunit/src/Util/Xml/SchemaFinder.php')
-rw-r--r--vendor/phpunit/phpunit/src/Util/Xml/SchemaFinder.php53
1 files changed, 53 insertions, 0 deletions
diff --git a/vendor/phpunit/phpunit/src/Util/Xml/SchemaFinder.php b/vendor/phpunit/phpunit/src/Util/Xml/SchemaFinder.php
new file mode 100644
index 000000000..1e7b73c59
--- /dev/null
+++ b/vendor/phpunit/phpunit/src/Util/Xml/SchemaFinder.php
@@ -0,0 +1,53 @@
+<?php declare(strict_types=1);
+/*
+ * This file is part of PHPUnit.
+ *
+ * (c) Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace PHPUnit\Util\Xml;
+
+use function defined;
+use function is_file;
+use function sprintf;
+use PHPUnit\Runner\Version;
+
+/**
+ * @internal This class is not covered by the backward compatibility promise for PHPUnit
+ */
+final class SchemaFinder
+{
+ /**
+ * @throws Exception
+ */
+ public function find(string $version): string
+ {
+ if ($version === Version::series()) {
+ $filename = $this->path() . 'phpunit.xsd';
+ } else {
+ $filename = $this->path() . 'schema/' . $version . '.xsd';
+ }
+
+ if (!is_file($filename)) {
+ throw new Exception(
+ sprintf(
+ 'Schema for PHPUnit %s is not available',
+ $version
+ )
+ );
+ }
+
+ return $filename;
+ }
+
+ private function path(): string
+ {
+ if (defined('__PHPUNIT_PHAR_ROOT__')) {
+ return __PHPUNIT_PHAR_ROOT__ . '/';
+ }
+
+ return __DIR__ . '/../../../';
+ }
+}