From 7b7f8d205dbba9daf326e207b873978a9575f780 Mon Sep 17 00:00:00 2001 From: Greg Sarjeant <1686767+gsarjeant@users.noreply.github.com> Date: Mon, 7 Jul 2025 08:48:29 -0400 Subject: [PATCH] Convert test to use DataProvider. Add cleanup TODO to relativeTime --- src/Framework/Util/Util.php | 2 ++ tests/Framework/Util/UtilTest.php | 42 +++++++++++++++---------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/Framework/Util/Util.php b/src/Framework/Util/Util.php index b8f23f7..63c0ef1 100644 --- a/src/Framework/Util/Util.php +++ b/src/Framework/Util/Util.php @@ -30,6 +30,8 @@ class Util { // For relative time display, compare the stored time to the current time // and display it as "X seconds/minutes/hours/days etc." ago + // + // TODO: Convert to either accepting a DateTime or use DateTime->fromFormat() public static function relative_time(string $tickTime): string { $datetime = new DateTime($tickTime); $now = new DateTime('now', $datetime->getTimezone()); diff --git a/tests/Framework/Util/UtilTest.php b/tests/Framework/Util/UtilTest.php index cb4bb77..0b1e3b7 100644 --- a/tests/Framework/Util/UtilTest.php +++ b/tests/Framework/Util/UtilTest.php @@ -1,31 +1,29 @@ modify('-1 minute')->format('c'); - $relativeTime = Util::relative_time($oneMinuteAgo); - $this->assertSame($relativeTime, "1 minute ago"); - - $twoHoursAgo = $datetime->modify('-2 hours')->format('c'); - $relativeTime = Util::relative_time($twoHoursAgo); - $this->assertSame($relativeTime, "2 hours ago"); - - $threeDaysAgo = $datetime->modify('-3 days')->format('c'); - $relativeTime = Util::relative_time($threeDaysAgo); - $this->assertSame($relativeTime, "3 days ago"); - - $fourMonthsAgo = $datetime->modify('-4 months')->format('c'); - $relativeTime = Util::relative_time($fourMonthsAgo); - $this->assertSame($relativeTime, "4 months ago"); - - $fiveYearsAgo = $datetime->modify('-5 years')->format('c'); - $relativeTime = Util::relative_time($fiveYearsAgo); - $this->assertSame($relativeTime, "5 years ago"); - + return [ + '1 minute ago' => [$datetime->modify('-1 minute')->format('c'), '1 minute ago'], + '2 hours ago' => [$datetime->modify('-2 hours')->format('c'), '2 hours ago'], + '3 days ago' => [$datetime->modify('-3 days')->format('c'), '3 days ago'], + '4 months ago' => [$datetime->modify('-4 months')->format('c'), '4 months ago'], + '5 years ago' => [$datetime->modify('-5 years')->format('c'), '5 years ago'] + ]; } + + // Validate that the datetime strings provided by dateProvider + // yield the expected display strings + #[DataProvider('dateProvider')] + public function testCanDisplayRelativeTime(string $datetimeString, string $display): void { + $relativeTime = Util::relative_time($datetimeString); + $this->assertSame($relativeTime, $display); + } + } \ No newline at end of file