(REF) APIv4 ConformanceTest - Split apart into per-entity sub-tests
authorTim Otten <totten@civicrm.org>
Wed, 15 Jul 2020 05:41:16 +0000 (22:41 -0700)
committerTim Otten <totten@civicrm.org>
Wed, 15 Jul 2020 06:14:27 +0000 (23:14 -0700)
commit8868b7fc1f10df1a1c7bfaaff7e72b43c10e78d2
tree0ecbfb6175994f63618289da3ae9351ff3d94913
parentd5afc596be8208e230a42c46cb9909676fabc263
(REF) APIv4 ConformanceTest - Split apart into per-entity sub-tests

Overview
--------

This updates a unit-test to make the output easier to understand.

We need more output because the test sporadically fails, and we don't know why.

Before
------

There is a function `testConformance()` which internally
loops through a list of entities.

Whenever the test fails, it aborts testing and reports one failure (for all
entities) without indicating the specific entity which failed.

After
-----

There is a test function `testConformance($entity)` which uses
a data provider.

Whenever the test fails, it will be logged with the entity name.
Testing can resume for additional entities.

Technical Details
-----------------

There are a couple technical distinctions between this revision, the
previous revision, and the comparable APIv3 test:

1. Each test-case returned by the '@dataProvider' has a symbolic name.
   These are easier to skim than numeric names.

2. The list of entities is *not* based on runtime services,
   because that constrains how PHPUnit and Civi lifecycles interact.
   It uses a heuristic/low-tech listing (`getEntitiesLotech()`).
   In the rare case where the low-tech list is wrong, it will complain
   and ask for maintenance.
tests/phpunit/api/v4/Entity/ConformanceTest.php