compare: preserve ordered conflict fixtures
This commit is contained in:
@@ -335,7 +335,27 @@ function comparisonApplyTurnFixtureSetup(mixed $setup): void
|
||||
'trade' => 'trade',
|
||||
'officerSet' => 'officer_set',
|
||||
]);
|
||||
if (array_key_exists('conflict', $row)) {
|
||||
if (array_key_exists('conflictEntries', $row)) {
|
||||
if (!is_array($row['conflictEntries'])) {
|
||||
throw new \InvalidArgumentException('setup.cities.conflictEntries must be an array');
|
||||
}
|
||||
$orderedConflict = [];
|
||||
foreach ($row['conflictEntries'] as $entry) {
|
||||
if (
|
||||
!is_array($entry)
|
||||
|| count($entry) !== 2
|
||||
|| !is_int($entry[0] ?? null)
|
||||
|| $entry[0] < 1
|
||||
|| !is_numeric($entry[1] ?? null)
|
||||
) {
|
||||
throw new \InvalidArgumentException(
|
||||
'setup.cities.conflictEntries requires [positive nation id, numeric value] pairs'
|
||||
);
|
||||
}
|
||||
$orderedConflict[$entry[0]] = $entry[1];
|
||||
}
|
||||
$patch['conflict'] = Json::encode($orderedConflict);
|
||||
} elseif (array_key_exists('conflict', $row)) {
|
||||
if (!is_array($row['conflict'])) {
|
||||
throw new \InvalidArgumentException('setup.cities.conflict must be an object');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user