Skip to content

Commit fcd7dc7

Browse files
committed
add: text case added for ConvertTime classs
1 parent 2a1a280 commit fcd7dc7

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

tests/Conversions/ConversionsTest.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
require_once __DIR__ . '/../../Conversions/HexadecimalToDecimal.php';
1111
require_once __DIR__ . '/../../Conversions/SpeedConversion.php';
1212
require_once __DIR__ . '/../../Conversions/TemperatureConversions.php';
13+
require_once __DIR__ . '/../../Conversions/ConvertTime.php';
1314

1415
class ConversionsTest extends TestCase
1516
{
@@ -142,4 +143,41 @@ public function testFahrenheitToKelvin()
142143
$this->expectExceptionMessage('Temperature (Fahrenheit) must be a number');
143144
FahrenheitToKelvin("non-numeric");
144145
}
146+
147+
public function testConvertTime()
148+
{
149+
// Test basic conversions
150+
$this->assertEquals(2.0, convertTime(120, 'seconds', 'minutes'), "Failed converting 120 seconds to minutes");
151+
$this->assertEquals(2.0, convertTime(120, 'minutes', 'hours'), "Failed converting 120 minutes to hours");
152+
$this->assertEquals(2.0, convertTime(48, 'hours', 'days'), "Failed converting 48 hours to days");
153+
$this->assertEquals(2.0, convertTime(14, 'days', 'weeks'), "Failed converting 14 days to weeks");
154+
155+
// Test with different units and values
156+
$this->assertEqualsWithDelta(2.0, convertTime(8.6, 'weeks', 'months'), 0.01, "Failed converting 8.6 weeks to months");
157+
$this->assertEquals(2.0, convertTime(24, 'months', 'years'), "Failed converting 24 months to years");
158+
159+
// Test edge cases
160+
$this->assertEquals(0.0, convertTime(0, 'seconds', 'hours'), "Failed converting 0 seconds to hours");
161+
162+
// Test invalid 'from' and 'to' units
163+
try {
164+
convertTime(120, 'invalidUnit', 'minutes');
165+
} catch (InvalidArgumentException $e) {
166+
$this->assertEquals("Invalid time unit(s) specified: invalidUnit to minutes", $e->getMessage());
167+
}
168+
169+
try {
170+
convertTime(120, 'seconds', 'invalidUnit');
171+
} catch (InvalidArgumentException $e) {
172+
$this->assertEquals("Invalid time unit(s) specified: seconds to invalidUnit", $e->getMessage());
173+
}
174+
175+
try {
176+
convertTime(120, 'invalidFrom', 'invalidTo');
177+
} catch (InvalidArgumentException $e) {
178+
$this->assertEquals("Invalid time unit(s) specified: invalidFrom to invalidTo", $e->getMessage());
179+
}
180+
}
181+
182+
145183
}

0 commit comments

Comments
 (0)