Beispiel #1
0
 /**
  * Get the schema manager.
  *
  * @return \CiviTesterBuilder
  *
  * @code
  * CiviTester::builder()->apply();
  * CiviTester::builder()->sqlFile('ex.sql')->apply();
  * @endCode
  */
 public static function builder()
 {
     if (!isset(self::$singletons['builder'])) {
         $civiRoot = dirname(dirname(dirname(dirname(__FILE__))));
         self::$singletons['builder'] = new CiviTesterBuilder('CiviTesterSchema');
         self::$singletons['builder']->callback(function ($ctx) {
             $dbName = CiviTester::dsn('database');
             echo "Installing {$dbName} schema\n";
             CiviTester::schema()->dropAll();
         }, 'msg-drop')->sqlFile($civiRoot . "/sql/civicrm.mysql")->callback(function ($ctx) {
             CiviTester::data()->populate();
         }, 'populate');
     }
     return self::$singletons['builder'];
 }
 /**
  * @param bool $perClass
  * @param null $object
  * @return bool
  *   TRUE if the populate logic runs; FALSE if it is skipped
  */
 protected static function _populateDB($perClass = FALSE, &$object = NULL)
 {
     if (CIVICRM_UF !== 'UnitTests') {
         throw new \RuntimeException("_populateDB requires CIVICRM_UF=UnitTests");
     }
     if ($perClass || $object == NULL) {
         $dbreset = TRUE;
     } else {
         $dbreset = $object->requireDBReset();
     }
     if (self::$populateOnce || !$dbreset) {
         return FALSE;
     }
     self::$populateOnce = NULL;
     CiviTester::data()->populate();
     return TRUE;
 }