From 2e0feff80fc5b22c33cd6bea54d353c09b5b44ca Mon Sep 17 00:00:00 2001
From: phenaproxima <phenaproxima@205645.no-reply.drupal.org>
Date: Wed, 13 Oct 2021 17:32:16 +0000
Subject: [PATCH] Issue #3243348 by phenaproxima: Improve the kernel tests

---
 .../Kernel/AutomaticUpdatesKernelTestBase.php |  32 ++++-
 .../ComposerExecutableValidatorTest.php       |  23 +---
 .../CoreComposerValidatorTest.php             |  13 +-
 .../DiskSpaceValidatorTest.php                | 127 ++++++++----------
 .../PendingUpdatesValidatorTest.php           |  53 +-------
 .../ReadinessValidationManagerTest.php        |  43 ------
 tests/src/Kernel/UpdateRecommenderTest.php    |  11 --
 tests/src/Kernel/UpdaterTest.php              |   3 -
 tests/src/Traits/ValidationTestTrait.php      |  36 +++++
 9 files changed, 133 insertions(+), 208 deletions(-)

diff --git a/tests/src/Kernel/AutomaticUpdatesKernelTestBase.php b/tests/src/Kernel/AutomaticUpdatesKernelTestBase.php
index 76af4f0966..cfebd7bcd1 100644
--- a/tests/src/Kernel/AutomaticUpdatesKernelTestBase.php
+++ b/tests/src/Kernel/AutomaticUpdatesKernelTestBase.php
@@ -4,6 +4,7 @@ namespace Drupal\Tests\automatic_updates\Kernel;
 
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\KernelTests\KernelTestBase;
+use Drupal\Tests\automatic_updates\Traits\ValidationTestTrait;
 use GuzzleHttp\Client;
 use GuzzleHttp\Handler\MockHandler;
 use GuzzleHttp\HandlerStack;
@@ -15,10 +16,12 @@ use GuzzleHttp\Psr7\Utils;
  */
 abstract class AutomaticUpdatesKernelTestBase extends KernelTestBase {
 
+  use ValidationTestTrait;
+
   /**
    * {@inheritdoc}
    */
-  protected static $modules = ['update', 'update_test'];
+  protected static $modules = ['system', 'update', 'update_test'];
 
   /**
    * The mocked HTTP client that returns metadata about available updates.
@@ -32,6 +35,33 @@ abstract class AutomaticUpdatesKernelTestBase extends KernelTestBase {
    */
   private $client;
 
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp(): void {
+    parent::setUp();
+
+    // The Update module's default configuration must be installed for our
+    // fake release metadata to be fetched.
+    $this->installConfig('update');
+
+    // Make the update system think that all of System's post-update functions
+    // have run. Since kernel tests don't normally install modules and register
+    // their updates, we need to do this so that all validators are tested from
+    // a clean, fully up-to-date state.
+    $updates = $this->container->get('update.post_update_registry')
+      ->getPendingUpdateFunctions();
+
+    $this->container->get('keyvalue')
+      ->get('post_update')
+      ->set('existing_updates', $updates);
+
+    // By default, pretend we're running Drupal core 9.8.0 and a non-security
+    // update to 9.8.1 is available.
+    $this->setCoreVersion('9.8.0');
+    $this->setReleaseMetadata(__DIR__ . '/../../fixtures/release-history/drupal.9.8.1.xml');
+  }
+
   /**
    * Sets the current (running) version of core, as known to the Update module.
    *
diff --git a/tests/src/Kernel/ReadinessValidation/ComposerExecutableValidatorTest.php b/tests/src/Kernel/ReadinessValidation/ComposerExecutableValidatorTest.php
index 278f80adbf..61bef3ff12 100644
--- a/tests/src/Kernel/ReadinessValidation/ComposerExecutableValidatorTest.php
+++ b/tests/src/Kernel/ReadinessValidation/ComposerExecutableValidatorTest.php
@@ -5,7 +5,6 @@ namespace Drupal\Tests\automatic_updates\Kernel\ReadinessValidation;
 use Drupal\automatic_updates\Validation\ValidationResult;
 use Drupal\automatic_updates\Validator\ComposerExecutableValidator;
 use Drupal\Tests\automatic_updates\Kernel\AutomaticUpdatesKernelTestBase;
-use Drupal\Tests\automatic_updates\Traits\ValidationTestTrait;
 use PhpTuf\ComposerStager\Exception\IOException;
 use PhpTuf\ComposerStager\Infrastructure\Process\ExecutableFinderInterface;
 use Prophecy\Argument;
@@ -17,8 +16,6 @@ use Prophecy\Argument;
  */
 class ComposerExecutableValidatorTest extends AutomaticUpdatesKernelTestBase {
 
-  use ValidationTestTrait;
-
   /**
    * {@inheritdoc}
    */
@@ -27,16 +24,6 @@ class ComposerExecutableValidatorTest extends AutomaticUpdatesKernelTestBase {
     'package_manager',
   ];
 
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-    $this->installConfig('update');
-    $this->setCoreVersion('9.8.0');
-    $this->setReleaseMetadata(__DIR__ . '/../../../fixtures/release-history/drupal.9.8.1.xml');
-  }
-
   /**
    * Tests that an error is raised if the Composer executable isn't found.
    */
@@ -55,10 +42,7 @@ class ComposerExecutableValidatorTest extends AutomaticUpdatesKernelTestBase {
     $error = ValidationResult::createError([
       $exception->getMessage(),
     ]);
-    $results = $this->container->get('automatic_updates.readiness_validation_manager')
-      ->run()
-      ->getResults();
-    $this->assertValidationResultsEqual([$error], $results);
+    $this->assertCheckerResultsFromManager([$error], TRUE);
   }
 
   /**
@@ -155,10 +139,7 @@ class ComposerExecutableValidatorTest extends AutomaticUpdatesKernelTestBase {
 
     // If the validator can't find a recognized, supported version of Composer,
     // it should produce errors.
-    $actual_results = $this->container->get('automatic_updates.readiness_validation_manager')
-      ->run()
-      ->getResults();
-    $this->assertValidationResultsEqual($expected_results, $actual_results);
+    $this->assertCheckerResultsFromManager($expected_results, TRUE);
   }
 
 }
diff --git a/tests/src/Kernel/ReadinessValidation/CoreComposerValidatorTest.php b/tests/src/Kernel/ReadinessValidation/CoreComposerValidatorTest.php
index bb1ad91372..b2eb7d8166 100644
--- a/tests/src/Kernel/ReadinessValidation/CoreComposerValidatorTest.php
+++ b/tests/src/Kernel/ReadinessValidation/CoreComposerValidatorTest.php
@@ -6,7 +6,6 @@ use Drupal\automatic_updates\PathLocator;
 use Drupal\automatic_updates\Validation\ValidationResult;
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Tests\automatic_updates\Kernel\AutomaticUpdatesKernelTestBase;
-use Drupal\Tests\automatic_updates\Traits\ValidationTestTrait;
 
 /**
  * @covers \Drupal\automatic_updates\Validator\CoreComposerValidator
@@ -15,8 +14,6 @@ use Drupal\Tests\automatic_updates\Traits\ValidationTestTrait;
  */
 class CoreComposerValidatorTest extends AutomaticUpdatesKernelTestBase {
 
-  use ValidationTestTrait;
-
   /**
    * {@inheritdoc}
    */
@@ -38,23 +35,15 @@ class CoreComposerValidatorTest extends AutomaticUpdatesKernelTestBase {
    * Tests that an error is raised if core is not required in composer.json.
    */
   public function testCoreNotRequired(): void {
-    $this->installConfig('update');
-    $this->setCoreVersion('9.8.0');
-    $this->setReleaseMetadata(__DIR__ . '/../../../fixtures/release-history/drupal.9.8.1.xml');
-
     // Point to a valid composer.json with no requirements.
     $locator = $this->prophesize(PathLocator::class);
     $locator->getActiveDirectory()->willReturn(__DIR__ . '/../../../fixtures/project_staged_validation/no_core_requirements');
     $this->container->set('automatic_updates.path_locator', $locator->reveal());
 
-    $results = $this->container->get('automatic_updates.readiness_validation_manager')
-      ->run()
-      ->getResults();
-
     $error = ValidationResult::createError([
       'Drupal core does not appear to be required in the project-level composer.json.',
     ]);
-    $this->assertValidationResultsEqual([$error], $results);
+    $this->assertCheckerResultsFromManager([$error], TRUE);
   }
 
 }
diff --git a/tests/src/Kernel/ReadinessValidation/DiskSpaceValidatorTest.php b/tests/src/Kernel/ReadinessValidation/DiskSpaceValidatorTest.php
index 75d5ecee34..e821121ac7 100644
--- a/tests/src/Kernel/ReadinessValidation/DiskSpaceValidatorTest.php
+++ b/tests/src/Kernel/ReadinessValidation/DiskSpaceValidatorTest.php
@@ -2,85 +2,28 @@
 
 namespace Drupal\Tests\automatic_updates\Kernel\ReadinessValidation;
 
-use Drupal\automatic_updates\Event\UpdateEvent;
 use Drupal\automatic_updates\Validation\ValidationResult;
 use Drupal\automatic_updates\Validator\DiskSpaceValidator;
 use Drupal\Component\Utility\Bytes;
+use Drupal\Tests\automatic_updates\Kernel\AutomaticUpdatesKernelTestBase;
 use Drupal\Core\StringTranslation\PluralTranslatableMarkup;
 use Drupal\Core\StringTranslation\TranslatableMarkup;
 use Drupal\Core\StringTranslation\TranslationInterface;
-use Drupal\KernelTests\KernelTestBase;
-use Drupal\Tests\automatic_updates\Traits\ValidationTestTrait;
 
 /**
  * @covers \Drupal\automatic_updates\Validator\DiskSpaceValidator
  *
  * @group automatic_updates
  */
-class DiskSpaceValidatorTest extends KernelTestBase {
-
-  use ValidationTestTrait;
-
-  /**
-   * The validator under test.
-   *
-   * @var \Drupal\automatic_updates\Validator\DiskSpaceValidator
-   */
-  private $validator;
+class DiskSpaceValidatorTest extends AutomaticUpdatesKernelTestBase {
 
   /**
    * {@inheritdoc}
    */
-  protected function setUp(): void {
-    parent::setUp();
-
-    $path_locator = $this->prophesize('\Drupal\automatic_updates\PathLocator');
-    $path_locator->getProjectRoot()->willReturn('root');
-    $path_locator->getVendorDirectory()->willReturn('vendor');
-
-    // Create a mocked version of the validator which can be rigged up to return
-    // specific values for various filesystem checks.
-    $this->validator = new class ($path_locator->reveal(), new TestTranslationManager()) extends DiskSpaceValidator {
-
-      /**
-       * Whether the root and vendor directories are on the same logical disk.
-       *
-       * @var bool
-       */
-      public $sharedDisk;
-
-      /**
-       * The amount of free space, keyed by location.
-       *
-       * @var float[]
-       */
-      public $freeSpace = [];
-
-      /**
-       * {@inheritdoc}
-       */
-      protected function stat(string $path): array {
-        return [
-          'dev' => $this->sharedDisk ? 'disk' : uniqid(),
-        ];
-      }
-
-      /**
-       * {@inheritdoc}
-       */
-      protected function freeSpace(string $path): float {
-        return $this->freeSpace[$path];
-      }
-
-      /**
-       * {@inheritdoc}
-       */
-      protected function temporaryDirectory(): string {
-        return 'temp';
-      }
-
-    };
-  }
+  protected static $modules = [
+    'automatic_updates',
+    'package_manager',
+  ];
 
   /**
    * Data provider for ::testDiskSpaceValidation().
@@ -208,13 +151,59 @@ class DiskSpaceValidatorTest extends KernelTestBase {
    * @dataProvider providerDiskSpaceValidation
    */
   public function testDiskSpaceValidation(bool $shared_disk, array $free_space, array $expected_results): void {
-    $this->validator->sharedDisk = $shared_disk;
-    $this->validator->freeSpace = array_map([Bytes::class, 'toNumber'], $free_space);
+    $path_locator = $this->prophesize('\Drupal\automatic_updates\PathLocator');
+    $path_locator->getProjectRoot()->willReturn('root');
+    $path_locator->getVendorDirectory()->willReturn('vendor');
+
+    // Create a mocked version of the validator which can be rigged up to return
+    // specific values for various filesystem checks.
+    $validator = new class (
+      $path_locator->reveal(),
+      $this->container->get('string_translation')
+    ) extends DiskSpaceValidator {
+
+      /**
+       * Whether the root and vendor directories are on the same logical disk.
+       *
+       * @var bool
+       */
+      public $sharedDisk;
+
+      /**
+       * The amount of free space, keyed by location.
+       *
+       * @var float[]
+       */
+      public $freeSpace = [];
 
-    $composer = $this->createMock('\Drupal\package_manager\ComposerUtility');
-    $event = new UpdateEvent($composer);
-    $this->validator->checkDiskSpace($event);
-    $this->assertValidationResultsEqual($expected_results, $event->getResults());
+      /**
+       * {@inheritdoc}
+       */
+      protected function stat(string $path): array {
+        return [
+          'dev' => $this->sharedDisk ? 'disk' : uniqid(),
+        ];
+      }
+
+      /**
+       * {@inheritdoc}
+       */
+      protected function freeSpace(string $path): float {
+        return $this->freeSpace[$path];
+      }
+
+      /**
+       * {@inheritdoc}
+       */
+      protected function temporaryDirectory(): string {
+        return 'temp';
+      }
+
+    };
+    $validator->sharedDisk = $shared_disk;
+    $validator->freeSpace = array_map([Bytes::class, 'toNumber'], $free_space);
+    $this->container->set('automatic_updates.disk_space_validator', $validator);
+    $this->assertCheckerResultsFromManager($expected_results, TRUE);
   }
 
 }
diff --git a/tests/src/Kernel/ReadinessValidation/PendingUpdatesValidatorTest.php b/tests/src/Kernel/ReadinessValidation/PendingUpdatesValidatorTest.php
index 7254942eee..09deb352c6 100644
--- a/tests/src/Kernel/ReadinessValidation/PendingUpdatesValidatorTest.php
+++ b/tests/src/Kernel/ReadinessValidation/PendingUpdatesValidatorTest.php
@@ -2,19 +2,15 @@
 
 namespace Drupal\Tests\automatic_updates\Kernel\ReadinessValidation;
 
-use Drupal\automatic_updates\Event\UpdateEvent;
 use Drupal\automatic_updates\Validation\ValidationResult;
-use Drupal\KernelTests\KernelTestBase;
-use Drupal\Tests\automatic_updates\Traits\ValidationTestTrait;
+use Drupal\Tests\automatic_updates\Kernel\AutomaticUpdatesKernelTestBase;
 
 /**
  * @covers \Drupal\automatic_updates\Validator\PendingUpdatesValidator
  *
  * @group automatic_updates
  */
-class PendingUpdatesValidatorTest extends KernelTestBase {
-
-  use ValidationTestTrait;
+class PendingUpdatesValidatorTest extends AutomaticUpdatesKernelTestBase {
 
   /**
    * {@inheritdoc}
@@ -22,45 +18,13 @@ class PendingUpdatesValidatorTest extends KernelTestBase {
   protected static $modules = [
     'automatic_updates',
     'package_manager',
-    'system',
-    'update',
   ];
 
-  /**
-   * The update event object that will be dispatched.
-   *
-   * @var \Drupal\automatic_updates\Event\UpdateEvent
-   */
-  private $event;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-
-    // Make the update system think that all of System's post-update functions
-    // have run. Since kernel tests don't normally install modules and register
-    // their updates, we need to do this so that the validator is being tested
-    // from a clean, fully up-to-date state.
-    $updates = $this->container->get('update.post_update_registry')
-      ->getPendingUpdateFunctions();
-
-    $this->container->get('keyvalue')
-      ->get('post_update')
-      ->set('existing_updates', $updates);
-
-    $composer = $this->createMock('\Drupal\package_manager\ComposerUtility');
-    $this->event = new UpdateEvent($composer);
-  }
-
   /**
    * Tests that no error is raised if there are no pending updates.
    */
   public function testNoPendingUpdates(): void {
-    $this->container->get('automatic_updates.pending_updates_validator')
-      ->checkPendingUpdates($this->event);
-    $this->assertEmpty($this->event->getResults());
+    $this->assertCheckerResultsFromManager([], TRUE);
   }
 
   /**
@@ -74,10 +38,7 @@ class PendingUpdatesValidatorTest extends KernelTestBase {
       ->set('automatic_updates', \Drupal::CORE_MINIMUM_SCHEMA_VERSION);
 
     $result = ValidationResult::createError(['Some modules have database schema updates to install. You should run the <a href="/update.php">database update script</a> immediately.']);
-
-    $this->container->get('automatic_updates.pending_updates_validator')
-      ->checkPendingUpdates($this->event);
-    $this->assertValidationResultsEqual([$result], $this->event->getResults());
+    $this->assertCheckerResultsFromManager([$result], TRUE);
   }
 
   /**
@@ -85,12 +46,8 @@ class PendingUpdatesValidatorTest extends KernelTestBase {
    */
   public function testPendingPostUpdate(): void {
     require __DIR__ . '/../../../fixtures/post_update.php';
-
     $result = ValidationResult::createError(['Some modules have database schema updates to install. You should run the <a href="/update.php">database update script</a> immediately.']);
-
-    $this->container->get('automatic_updates.pending_updates_validator')
-      ->checkPendingUpdates($this->event);
-    $this->assertValidationResultsEqual([$result], $this->event->getResults());
+    $this->assertCheckerResultsFromManager([$result], TRUE);
   }
 
 }
diff --git a/tests/src/Kernel/ReadinessValidation/ReadinessValidationManagerTest.php b/tests/src/Kernel/ReadinessValidation/ReadinessValidationManagerTest.php
index f1a32b0c6d..cda7c9a149 100644
--- a/tests/src/Kernel/ReadinessValidation/ReadinessValidationManagerTest.php
+++ b/tests/src/Kernel/ReadinessValidation/ReadinessValidationManagerTest.php
@@ -6,7 +6,6 @@ use Drupal\automatic_updates_test\ReadinessChecker\TestChecker1;
 use Drupal\automatic_updates_test2\ReadinessChecker\TestChecker2;
 use Drupal\system\SystemManager;
 use Drupal\Tests\automatic_updates\Kernel\AutomaticUpdatesKernelTestBase;
-use Drupal\Tests\automatic_updates\Traits\ValidationTestTrait;
 
 /**
  * @coversDefaultClass \Drupal\automatic_updates\Validation\ReadinessValidationManager
@@ -15,8 +14,6 @@ use Drupal\Tests\automatic_updates\Traits\ValidationTestTrait;
  */
 class ReadinessValidationManagerTest extends AutomaticUpdatesKernelTestBase {
 
-  use ValidationTestTrait;
-
   /**
    * {@inheritdoc}
    */
@@ -34,10 +31,6 @@ class ReadinessValidationManagerTest extends AutomaticUpdatesKernelTestBase {
     $this->installEntitySchema('user');
     $this->installSchema('user', ['users_data']);
     $this->createTestValidationResults();
-
-    $this->installConfig('update');
-    $this->setCoreVersion('9.8.0');
-    $this->setReleaseMetadata(__DIR__ . '/../../../fixtures/release-history/drupal.9.8.1.xml');
   }
 
   /**
@@ -218,40 +211,4 @@ class ReadinessValidationManagerTest extends AutomaticUpdatesKernelTestBase {
     $this->assertCheckerResultsFromManager($expected_results);
   }
 
-  /**
-   * Asserts expected validation results from the manager.
-   *
-   * @param \Drupal\automatic_updates\Validation\ValidationResult[] $expected_results
-   *   The expected results.
-   * @param bool $call_run
-   *   (Optional) Whether to call ::run() on the manager. Defaults to FALSE.
-   * @param int|null $severity
-   *   (optional) The severity for the results to return. Should be one of the
-   *   SystemManager::REQUIREMENT_* constants.
-   */
-  private function assertCheckerResultsFromManager(array $expected_results, bool $call_run = FALSE, ?int $severity = NULL): void {
-    $actual_results = $this->getResultsFromManager($call_run, $severity);
-    $this->assertValidationResultsEqual($expected_results, $actual_results);
-  }
-
-  /**
-   * Gets the messages of a particular type from the manager.
-   *
-   * @param bool $call_run
-   *   Whether to run the checkers.
-   * @param int|null $severity
-   *   (optional) The severity for the results to return. Should be one of the
-   *   SystemManager::REQUIREMENT_* constants.
-   *
-   * @return \Drupal\automatic_updates\Validation\ValidationResult[]|null
-   *   The messages of the type.
-   */
-  protected function getResultsFromManager(bool $call_run = FALSE, ?int $severity = NULL): ?array {
-    $manager = $this->container->get('automatic_updates.readiness_validation_manager');
-    if ($call_run) {
-      $manager->run();
-    }
-    return $manager->getResults($severity);
-  }
-
 }
diff --git a/tests/src/Kernel/UpdateRecommenderTest.php b/tests/src/Kernel/UpdateRecommenderTest.php
index 6be23292f4..33a82448d9 100644
--- a/tests/src/Kernel/UpdateRecommenderTest.php
+++ b/tests/src/Kernel/UpdateRecommenderTest.php
@@ -19,21 +19,10 @@ class UpdateRecommenderTest extends AutomaticUpdatesKernelTestBase {
     'package_manager',
   ];
 
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-    $this->installConfig('update');
-    $this->setReleaseMetadata(__DIR__ . '/../../fixtures/release-history/drupal.9.8.1.xml');
-  }
-
   /**
    * Tests fetching the recommended release when an update is available.
    */
   public function testUpdateAvailable(): void {
-    $this->setCoreVersion('9.8.0');
-
     $recommender = new UpdateRecommender();
     $recommended_release = $recommender->getRecommendedRelease(TRUE);
     $this->assertNotEmpty($recommended_release);
diff --git a/tests/src/Kernel/UpdaterTest.php b/tests/src/Kernel/UpdaterTest.php
index 4ee12180b1..602ea49baf 100644
--- a/tests/src/Kernel/UpdaterTest.php
+++ b/tests/src/Kernel/UpdaterTest.php
@@ -27,9 +27,6 @@ class UpdaterTest extends AutomaticUpdatesKernelTestBase {
   public function testCorrectVersionsStaged() {
     $this->setReleaseMetadata(__DIR__ . '/../../fixtures/release-history/drupal.9.8.1-security.xml');
 
-    // Set the running core version to 9.8.0.
-    $this->setCoreVersion('9.8.0');
-
     $this->container->get('automatic_updates.updater')->begin([
       'drupal' => '9.8.1',
     ]);
diff --git a/tests/src/Traits/ValidationTestTrait.php b/tests/src/Traits/ValidationTestTrait.php
index 70e97bc594..224b7c1e6b 100644
--- a/tests/src/Traits/ValidationTestTrait.php
+++ b/tests/src/Traits/ValidationTestTrait.php
@@ -110,4 +110,40 @@ trait ValidationTestTrait {
     }
   }
 
+  /**
+   * Gets the messages of a particular type from the manager.
+   *
+   * @param bool $call_run
+   *   Whether to run the checkers.
+   * @param int|null $severity
+   *   (optional) The severity for the results to return. Should be one of the
+   *   SystemManager::REQUIREMENT_* constants.
+   *
+   * @return \Drupal\automatic_updates\Validation\ValidationResult[]|null
+   *   The messages of the type.
+   */
+  protected function getResultsFromManager(bool $call_run = FALSE, ?int $severity = NULL): ?array {
+    $manager = $this->container->get('automatic_updates.readiness_validation_manager');
+    if ($call_run) {
+      $manager->run();
+    }
+    return $manager->getResults($severity);
+  }
+
+  /**
+   * Asserts expected validation results from the manager.
+   *
+   * @param \Drupal\automatic_updates\Validation\ValidationResult[] $expected_results
+   *   The expected results.
+   * @param bool $call_run
+   *   (Optional) Whether to call ::run() on the manager. Defaults to FALSE.
+   * @param int|null $severity
+   *   (optional) The severity for the results to return. Should be one of the
+   *   SystemManager::REQUIREMENT_* constants.
+   */
+  protected function assertCheckerResultsFromManager(array $expected_results, bool $call_run = FALSE, ?int $severity = NULL): void {
+    $actual_results = $this->getResultsFromManager($call_run, $severity);
+    $this->assertValidationResultsEqual($expected_results, $actual_results);
+  }
+
 }
-- 
GitLab