Changeset View
Changeset View
Standalone View
Standalone View
src/applications/harbormaster/constants/HarbormasterUnitStatus.php
Show All 21 Lines | final class HarbormasterUnitStatus | ||||
} | } | ||||
public static function getUnitStatusSort($status) { | public static function getUnitStatusSort($status) { | ||||
$map = self::getUnitStatusDictionary($status); | $map = self::getUnitStatusDictionary($status); | ||||
$default = 'N'; | $default = 'N'; | ||||
return idx($map, 'sort', $default); | return idx($map, 'sort', $default); | ||||
} | } | ||||
public static function summarizeStatuses(array $statuses) { | |||||
if (!$statuses) { | |||||
return null; | |||||
} | |||||
$map = self::getUnitStatusMap(); | |||||
$map = ipull($map, 'sort'); | |||||
$default = 'Z'; | |||||
$summary = head($statuses); | |||||
$w_index = idx($map, $summary, $default); | |||||
foreach ($statuses as $status) { | |||||
$r = idx($map, $status, $default); | |||||
if ($r < $w_index) { | |||||
$summary = $status; | |||||
$w_index = $r; | |||||
} | |||||
} | |||||
return $summary; | |||||
} | |||||
public static function getDifferentialUnitStatus($status) { | |||||
$map = self::getUnitStatusDictionary($status); | |||||
return idx($map, 'differantial_result', $status); | |||||
} | |||||
private static function getUnitStatusDictionary($status) { | private static function getUnitStatusDictionary($status) { | ||||
$map = self::getUnitStatusMap(); | $map = self::getUnitStatusMap(); | ||||
$default = array(); | $default = array(); | ||||
return idx($map, $status, $default); | return idx($map, $status, $default); | ||||
} | } | ||||
public static function getUnitStatusCountLabel($status, $count) { | public static function getUnitStatusCountLabel($status, $count) { | ||||
$count = new PhutilNumber($count); | $count = new PhutilNumber($count); | ||||
Show All 12 Lines | public static function getUnitStatusCountLabel($status, $count) { | ||||
} | } | ||||
return pht('%s Other Test(s)', $count); | return pht('%s Other Test(s)', $count); | ||||
} | } | ||||
private static function getUnitStatusMap() { | private static function getUnitStatusMap() { | ||||
return array( | return array( | ||||
ArcanistUnitTestResult::RESULT_FAIL => array( | ArcanistUnitTestResult::RESULT_FAIL => array( | ||||
'differantial_result' => DifferentialUnitStatus::UNIT_FAIL, | |||||
'label' => pht('Failed'), | 'label' => pht('Failed'), | ||||
'icon' => 'fa-times', | 'icon' => 'fa-times', | ||||
'color' => 'red', | 'color' => 'red', | ||||
'sort' => 'A', | 'sort' => 'A', | ||||
), | ), | ||||
ArcanistUnitTestResult::RESULT_BROKEN => array( | ArcanistUnitTestResult::RESULT_BROKEN => array( | ||||
'differantial_result' => DifferentialUnitStatus::UNIT_WARN, | |||||
'label' => pht('Broken'), | 'label' => pht('Broken'), | ||||
'icon' => 'fa-bomb', | 'icon' => 'fa-bomb', | ||||
'color' => 'indigo', | 'color' => 'indigo', | ||||
'sort' => 'B', | 'sort' => 'B', | ||||
), | ), | ||||
ArcanistUnitTestResult::RESULT_UNSOUND => array( | ArcanistUnitTestResult::RESULT_UNSOUND => array( | ||||
'differantial_result' => DifferentialUnitStatus::UNIT_WARN, | |||||
'label' => pht('Unsound'), | 'label' => pht('Unsound'), | ||||
'icon' => 'fa-exclamation-triangle', | 'icon' => 'fa-exclamation-triangle', | ||||
'color' => 'yellow', | 'color' => 'yellow', | ||||
'sort' => 'C', | 'sort' => 'C', | ||||
), | ), | ||||
ArcanistUnitTestResult::RESULT_PASS => array( | ArcanistUnitTestResult::RESULT_PASS => array( | ||||
'differantial_result' => DifferentialUnitStatus::UNIT_OKAY, | |||||
'label' => pht('Passed'), | 'label' => pht('Passed'), | ||||
'icon' => 'fa-check', | 'icon' => 'fa-check', | ||||
'color' => 'green', | 'color' => 'green', | ||||
'sort' => 'D', | 'sort' => 'D', | ||||
), | ), | ||||
ArcanistUnitTestResult::RESULT_SKIP => array( | ArcanistUnitTestResult::RESULT_SKIP => array( | ||||
'differantial_result' => DifferentialUnitStatus::UNIT_SKIP, | |||||
'label' => pht('Skipped'), | 'label' => pht('Skipped'), | ||||
'icon' => 'fa-fast-forward', | 'icon' => 'fa-fast-forward', | ||||
'color' => 'blue', | 'color' => 'blue', | ||||
'sort' => 'E', | 'sort' => 'E', | ||||
), | ), | ||||
); | ); | ||||
} | } | ||||
} | } |