Skip to content
Snippets Groups Projects
Commit e1a0bf4e authored by Travis Carden's avatar Travis Carden Committed by Ted Bowman
Browse files

Issue #3320815 by TravisCarden: Make validation result comparison test messages more helpful

parent 18d1ca72
No related branches found
No related tags found
No related merge requests found
......@@ -12,18 +12,50 @@ trait ValidationTestTrait {
/**
* Asserts two validation result sets are equal.
*
* This assertion is sensitive to the order of results. For example,
* ['a', 'b'] is not equal to ['b', 'a'].
*
* @param \Drupal\package_manager\ValidationResult[] $expected_results
* The expected validation results.
* @param \Drupal\package_manager\ValidationResult[] $actual_results
* The actual validation results.
*/
protected function assertValidationResultsEqual(array $expected_results, array $actual_results): void {
$this->assertCount(count($expected_results), $actual_results);
$expected_results = $this->getValidationResultsAsArray($expected_results);
$actual_results = $this->getValidationResultsAsArray($actual_results);
self::assertSame($expected_results, $actual_results);
}
/**
* Gets an array representation of validation results for easy comparison.
*
* @param \Drupal\package_manager\ValidationResult[] $results
* An array of validation results.
*
* @return array
* An array of validation results details:
* - severity: (int) The severity code.
* - messages: (array) An array of strings.
* - summary: (string|null) A summary string if there is one or NULL if not.
*/
protected function getValidationResultsAsArray(array $results): array {
return array_values(array_map(static function (ValidationResult $result) {
$messages = array_map(static function ($message): string {
return (string) $message;
}, $result->getMessages());
$summary = $result->getSummary();
if ($summary !== NULL) {
$summary = (string) $result->getSummary();
}
foreach ($expected_results as $expected_result) {
$actual_result = array_shift($actual_results);
$this->assertTrue(ValidationResult::isEqual($expected_result, $actual_result));
}
return [
'severity' => $result->getSeverity(),
'messages' => $messages,
'summary' => $summary,
];
}, $results));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment