Files
kimai2/tests/Model/Statistic/MonthTest.php
2019-06-13 18:38:49 +02:00

68 lines
1.7 KiB
PHP

<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Tests\Model\Statistic;
use App\Model\Statistic\Month;
use Exception;
use InvalidArgumentException;
use PHPUnit\Framework\TestCase;
/**
* @covers \App\Model\Statistic\Month
*/
class MonthTest extends TestCase
{
public function testDefaultValues()
{
$sut = new Month('01');
$this->assertEquals('01', $sut->getMonth());
$this->assertEquals(0, $sut->getTotalDuration());
$this->assertEquals(0, $sut->getTotalRate());
}
public function testAllowedMonths()
{
for ($i = 1; $i < 10; $i++) {
new Month('0' . $i);
}
for ($i = 10; $i < 13; $i++) {
new Month((string) $i);
}
$this->assertTrue(true);
}
public function testInvalidMonths()
{
foreach (['00', '13', '99', '0.9'] as $month) {
$ex = null;
try {
new Month($month);
} catch (Exception $e) {
$ex = $e;
}
$this->assertInstanceOf(InvalidArgumentException::class, $ex);
$this->assertEquals(
'Invalid month given. Expected 1-12, received "' . ((int) $month) . '".',
$ex->getMessage()
);
}
}
public function testSetter()
{
$sut = new Month('01');
$sut->setTotalDuration(999.27);
$sut->setTotalRate(0.123456789);
$this->assertEquals(999, $sut->getTotalDuration());
$this->assertEquals(0.123456789, $sut->getTotalRate());
}
}