aboutsummaryrefslogtreecommitdiffstats
path: root/tests/phpunit/unit/includes/composer/PhpUnitSplitter/PhpUnitXmlTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/phpunit/unit/includes/composer/PhpUnitSplitter/PhpUnitXmlTest.php')
-rw-r--r--tests/phpunit/unit/includes/composer/PhpUnitSplitter/PhpUnitXmlTest.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/phpunit/unit/includes/composer/PhpUnitSplitter/PhpUnitXmlTest.php b/tests/phpunit/unit/includes/composer/PhpUnitSplitter/PhpUnitXmlTest.php
new file mode 100644
index 000000000000..6b30596e90bf
--- /dev/null
+++ b/tests/phpunit/unit/includes/composer/PhpUnitSplitter/PhpUnitXmlTest.php
@@ -0,0 +1,52 @@
+<?php
+
+declare( strict_types = 1 );
+
+namespace MediaWiki\Tests\Unit\composer\PhpUnitSplitter;
+
+use MediaWiki\Composer\PhpUnitSplitter\PhpUnitXml;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @license GPL-2.0-or-later
+ * @covers \MediaWiki\Composer\PhpUnitSplitter\PhpUnitXml
+ */
+class PhpUnitXmlTest extends TestCase {
+
+ private const BASIC_XML = '<?xml version="1.0" encoding="UTF-8"?>
+<phpunit bootstrap="tests/phpunit/bootstrap.php">
+<testsuites>
+ <testsuite name="core:unit">
+ <directory>tests/phpunit/unit</directory>
+ </testsuite>
+</testsuites>
+</phpunit>';
+
+ public function createFixtureFile( string $data ): string {
+ $filename = tempnam( sys_get_temp_dir(), "phpunit-test" );
+ file_put_contents( $filename, $data );
+ return $filename;
+ }
+
+ public function testFixtureContainsNoSplitGroups() {
+ $phpUnitXmlFile = $this->createFixtureFile( self::BASIC_XML );
+ $phpUnitXml = new PhpUnitXml( $phpUnitXmlFile );
+ $this->assertFalse( $phpUnitXml->containsSplitGroups(), "No split groups expected in fixture" );
+ unlink( $phpUnitXmlFile );
+ }
+
+ public function testAddSplitGroups() {
+ $phpUnitXmlFile = $this->createFixtureFile( self::BASIC_XML );
+ $phpUnitXml = new PhpUnitXml( $phpUnitXmlFile );
+ $phpUnitXml->addSplitGroups( [
+ [ "file1.php", "file2.php" ],
+ [ "file3.php", "file4.php" ],
+ [ "file7.php", "file6.php" ],
+ [ "file9.php", "file8.php" ],
+ [ "file11.php", "file10.php" ],
+ [ "file13.php", "file12.php" ],
+ ] );
+ $this->assertTrue( $phpUnitXml->containsSplitGroups(), "Expected groups to be added" );
+ unlink( $phpUnitXmlFile );
+ }
+}