diff --git a/classes/Time.php b/classes/Time.php index 8c549af..ebc8174 100644 --- a/classes/Time.php +++ b/classes/Time.php @@ -116,7 +116,9 @@ class Time * @static * @param string $date birth / inception date * @return integer $age number of years old - * @todo Wondering if this really should live in the Date class since it's a Date function. Could flip the aliasing to preserve any older code. + * @todo Wondering if this really should live in the Date class since + * it's a Date function. Could flip the aliasing to preserve any + * older code. */ public static function age($date) { diff --git a/tests/TODO b/tests/TODO index b006755..bd04d1c 100644 --- a/tests/TODO +++ b/tests/TODO @@ -13,8 +13,6 @@ Object Profiler Security Session -Sort -Time Validate Stuff in API directory diff --git a/tests/classes/SortTest.php b/tests/classes/SortTest.php new file mode 100644 index 0000000..56d786a --- /dev/null +++ b/tests/classes/SortTest.php @@ -0,0 +1,62 @@ + 'epsilon'], + ['name' => 'gamma'], + ['name' => 'alpha'], + ['name' => 'delta'], + ['name' => 'beta'], + ]; + + $sorted = [ + ['name' => 'alpha'], + ['name' => 'beta'], + ['name' => 'delta'], + ['name' => 'epsilon'], + ['name' => 'gamma'], + ]; + + Sort::by('name', $shuffled); + + $this->assertEquals($sorted, $shuffled); + } + + public function testByNameDESC() + { + $shuffled = [ + ['name' => 'epsilon'], + ['name' => 'gamma'], + ['name' => 'alpha'], + ['name' => 'delta'], + ['name' => 'beta'], + ]; + + $sorted = [ + ['name' => 'gamma'], + ['name' => 'epsilon'], + ['name' => 'delta'], + ['name' => 'beta'], + ['name' => 'alpha'], + ]; + + Sort::by('name', $shuffled, Sort::DESC); + + $this->assertEquals($sorted, $shuffled); + } + + public function testMissingField() + { + $shuffled = [['foo' => 'bar', 'bar' => 'foo']]; + $sorted = [['foo' => 'bar', 'bar' => 'foo']]; + + Sort::by('name', $shuffled); + + $this->assertEquals($sorted, $shuffled); + } +} + +?> diff --git a/tests/classes/TimeTest.php b/tests/classes/TimeTest.php new file mode 100644 index 0000000..1760a51 --- /dev/null +++ b/tests/classes/TimeTest.php @@ -0,0 +1,96 @@ +assertEquals(18, Time::age(date('Y-m-d', strtotime('-18 years')))); + } + + public function testAgeFutureTime() + { + $this->assertEquals(-18, Time::age(date('Y-m-d', strtotime('18 years')))); + } + + public function testAgoPastTimeSeconds() + { + $this->assertEquals('seconds ago', Time::ago(strtotime('-30 seconds'))); + } + + public function testAgoPastTimeMinutes() + { + $this->assertEquals('5 minutes ago', Time::ago(strtotime('-5 minutes'))); + } + + public function testAgoPastTimeHours() + { + $this->assertEquals('1 hour ago', Time::ago(strtotime('-1 hour'))); + } + + public function testAgoPastTimeDays() + { + $this->assertEquals('1 day ago', Time::ago(strtotime('-1 day'))); + } + + public function testAgoPastTimeWeeks() + { + $this->assertEquals('1 week ago', Time::ago(strtotime('-1 week'))); + } + + public function testAgoPastTimeMonths() + { + $this->assertEquals('1 month ago', Time::ago(strtotime('-1 month'))); + } + + public function testAgoPastTimeYears() + { + $this->assertEquals('1 year ago', Time::ago(strtotime('-1 year'))); + } + + public function testAgoFutureTimeSeconds() + { + $this->assertEquals('seconds from now', Time::ago(strtotime('+30 seconds'))); + } + + public function testAgoFutureTimeMinutes() + { + $this->assertEquals('5 minutes from now', Time::ago(strtotime('+5 minutes'))); + } + + public function testAgoFutureTimeHours() + { + $this->assertEquals('1 hour from now', Time::ago(strtotime('+1 hour'))); + } + + public function testAgoFutureTimeDays() + { + $this->assertEquals('1 day from now', Time::ago(strtotime('+1 day'))); + } + + public function testAgoFutureTimeWeeks() + { + $this->assertEquals('1 week from now', Time::ago(strtotime('+1 week'))); + } + + public function testAgoFutureTimeMonths() + { + $this->assertEquals('1 month from now', Time::ago(strtotime('+1 month'))); + } + + public function testAgoFutureTimeYears() + { + $this->assertEquals('1 year from now', Time::ago(strtotime('+1 year'))); + } + + public function testTimestamp() + { + $this->assertEquals(gmdate('Y-m-d H:i:s'), Time::timestamp()); + } +} + +?>