Civi\Test::example() - Make it a bit easier for the typical case
authorTim Otten <totten@civicrm.org>
Wed, 15 Sep 2021 09:02:05 +0000 (02:02 -0700)
committerTim Otten <totten@civicrm.org>
Wed, 15 Sep 2021 23:15:14 +0000 (16:15 -0700)
This changes the signature on a new helper method. This method is not widely used, and each reference is updated here.

Before: `Civi\Test::example($name)` returns the *metadata* for the example.

After: `Civi\Test::example($name)` returns the *data* for the example.

Comment: It's more convenient to stitch together examples from the data.  Of
course, metadata may also be useful -- it's still available through
`Civi\Test::examples()->getFoo(...)` (with a few different `getFoo()`
methods).

Civi/Test.php
tests/phpunit/CRM/Case/WorkflowMessage/CaseActivity/CaseAdhocExample.ex.php
tests/phpunit/CRM/Case/WorkflowMessage/CaseActivity/CaseModelExample.ex.php

index ff498544235d06c4927f9d381fb5d8934bc64717..1509481623588f1cbcccae85aee8e32f7f6313d9 100644 (file)
@@ -193,16 +193,23 @@ class Test {
   }
 
   /**
+   * Lookup the content of an example data-set.
+   *
+   * This helper is for the common case of looking up the data for a specific example.
+   * If you need more detailed information (eg the list of examples or other metadata),
+   * then use `\Civi\Test::examples(): ExampleDataLoader`. It  provides more methods.
+   *
    * @param string $name
    *   Symbolic name of the data-set.
    * @return array
+   *   The example data.
    */
   public static function example(string $name): array {
     $result = static::examples()->getFull($name);
-    if ($result === NULL) {
+    if (!isset($result['data'])) {
       throw new \CRM_Core_Exception("Failed to load example data-set: $name");
     }
-    return $result;
+    return $result['data'];
   }
 
   /**
index cfee7653c804b342261ccc546938972c789a43d7..fefd6868a91af05ac7c18bccec210d0679dacc07 100644 (file)
@@ -21,7 +21,7 @@ class CRM_Case_WorkflowMessage_CaseActivity_CaseAdhocExample extends \Civi\Workf
    */
   public function build(array &$example): void {
     $alex = \Civi\Test::example('workflow/generic/Alex');
-    $contact = $this->extend($alex['data']['modelProps']['contact'], [
+    $contact = $this->extend($alex['modelProps']['contact'], [
       'role' => 'myrole',
     ]);
     $example['data'] = [
index d716e63982f6db2dc14b4148a6abef04c23ebb57..a7a9919cc9d073f5118aea338a19df059c10f313 100644 (file)
@@ -20,7 +20,7 @@ class CRM_Case_WorkflowMessage_CaseActivity_CaseModelExample extends \Civi\Workf
    */
   public function build(array &$example): void {
     $alex = \Civi\Test::example('workflow/generic/Alex');
-    $example['data'] = $this->extend($alex['data'], [
+    $example['data'] = $this->extend($alex, [
       'workflow' => $this->wfName,
       'modelProps' => [
         'contact' => [