summaryrefslogtreecommitdiffstatshomepage
path: root/tests/phpunit/includes/phpunit7/testcase.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/phpunit/includes/phpunit7/testcase.php')
-rw-r--r--tests/phpunit/includes/phpunit7/testcase.php60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/phpunit/includes/phpunit7/testcase.php b/tests/phpunit/includes/phpunit7/testcase.php
index 9a8ddc12de..948f5799de 100644
--- a/tests/phpunit/includes/phpunit7/testcase.php
+++ b/tests/phpunit/includes/phpunit7/testcase.php
@@ -37,4 +37,64 @@ class WP_UnitTestCase extends WP_UnitTestCase_Base {
static::assertThat( $actual, $constraint, $message );
}
+
+ /**
+ * Returns a mock object for the specified abstract class with all abstract
+ * methods of the class mocked. Concrete methods to mock can be specified with
+ * the last parameter.
+ *
+ * This method replaces the native PHPUnit method to avoid parse errors
+ * due to `match` being a reserved keyword in PHP 8.
+ *
+ * To run on PHP 8, the tests using this method require PHPUnit 9.3 or later.
+ *
+ * When the test suite is updated for compatibility with PHPUnit 9.x,
+ * this override can be removed.
+ *
+ * @since 5.6.0
+ *
+ * @param string $original_class_name
+ * @param string $mock_class_name
+ * @param bool $call_original_constructor
+ * @param bool $call_original_clone
+ * @param bool $call_autoload
+ * @param array $mocked_methods
+ * @param bool $clone_arguments
+ *
+ * @throws \ReflectionException
+ * @throws RuntimeException
+ * @throws Exception
+ *
+ * @return MockObject
+ */
+ public function getMockForAbstractClass( $original_class_name, array $arguments = array(), $mock_class_name = '', $call_original_constructor = true, $call_original_clone = true, $call_autoload = true, $mocked_methods = array(), $clone_arguments = false ): PHPUnit\Framework\MockObject\MockObject {
+ if ( PHP_VERSION_ID >= 80000 && version_compare( tests_get_phpunit_version(), '9.3', '<' ) ) {
+ $this->markTestSkipped( 'To run on PHP 8, this test requires PHPUnit 9.3 or later.' );
+ }
+
+ return parent::getMockForAbstractClass( $original_class_name, $arguments, $mock_class_name, $call_original_constructor, $call_original_clone, $call_autoload, $mocked_methods, $clone_arguments );
+ }
+
+ /**
+ * Returns a builder object to create mock objects using a fluent interface.
+ *
+ * This method replaces the native PHPUnit method to avoid parse errors
+ * due to `match` being a reserved keyword in PHP 8.
+ *
+ * To run on PHP 8, the tests using this method require PHPUnit 9.3 or later.
+ *
+ * When the test suite is updated for compatibility with PHPUnit 9.x,
+ * this override can be removed.
+ *
+ * @since 5.6.0
+ *
+ * @param string|string[] $class_name
+ */
+ public function getMockBuilder( $class_name ): PHPUnit\Framework\MockObject\MockBuilder {
+ if ( PHP_VERSION_ID >= 80000 && version_compare( tests_get_phpunit_version(), '9.3', '<' ) ) {
+ $this->markTestSkipped( 'To run on PHP 8, this test requires PHPUnit 9.3 or later.' );
+ }
+
+ return parent::getMockBuilder( $class_name );
+ }
}