CiviTest - Define `CRM_Fake_DAO_*` classes
authorTim Otten <totten@civicrm.org>
Tue, 19 Oct 2021 02:06:43 +0000 (19:06 -0700)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Sat, 23 Oct 2021 00:13:15 +0000 (13:13 +1300)
The tests are being a being a brittle because someone wants to load these non-existent classes:

* CRM_Fake_DAO_FakeFile
* CRM_Fake_DAO_Widget
* CRM_Fake_DAO_Forbidden
* CRM_Fake_DAO_Sprocket

tests/phpunit/CiviTest/bootstrap.php

index 4c458f17bb4a7d38ed41245429eb2d163e53e6c1..c6b8e3ddc18f3dbe0a3edbcc6d1397994fbc8437 100644 (file)
@@ -26,6 +26,11 @@ if (CIVICRM_UF === 'UnitTests') {
 spl_autoload_register(function($class) {
   _phpunit_mockoloader('api\\v4\\', "tests/phpunit/api/v4/", $class);
   _phpunit_mockoloader('Civi\\Api4\\', "tests/phpunit/api/v4/Mock/Api4/", $class);
+  if (substr($class, 0, 13) === 'CRM_Fake_DAO_') {
+    // phpcs:disable
+    eval('namespace { class ' . $class . ' extends \CRM_Core_DAO { public static function &fields() { $r = []; return $r; }}}');
+    // phpcs:enable
+  }
 });
 
 // ------------------------------------------------------------------------------