freenetis-github/tests/application/helpers/dateTest.php @ 6e7f71f2
18ac9009 | Ondřej Fibich | <?php
|
|
/*
|
|||
* This file is part of open source system FreenetIS
|
|||
* and it is release under GPLv3 licence.
|
|||
*
|
|||
* More info about licence can be found:
|
|||
* http://www.gnu.org/licenses/gpl-3.0.html
|
|||
*
|
|||
* More info about project can be found:
|
|||
* http://www.freenetis.org/
|
|||
*/
|
|||
/**
|
|||
* Integration test class for date helper (integration because it uses Settings).
|
|||
*
|
|||
* @author Ondřej Fibich <fibich@freenetis.org>
|
|||
* @since 1.2
|
|||
*/
|
|||
class dateTest extends AbstractItCase
|
|||
{
|
|||
cd149dd5 | Ondřej Fibich | /**
|
|
* @covers date::create
|
|||
*/
|
|||
public function test_create()
|
|||
{
|
|||
$this->assertEquals('2017-01-01', date::create(1, 1, 2017));
|
|||
$this->assertEquals('2017-12-01', date::create(1, 12, 2017));
|
|||
$this->assertEquals('2017-01-31', date::create(31, 1, 2017));
|
|||
}
|
|||
/**
|
|||
* @covers date::days_of_month
|
|||
*/
|
|||
public function test_days_of_month()
|
|||
{
|
|||
$this->assertEquals(31, date::days_of_month(1, 2017));
|
|||
$this->assertEquals(28, date::days_of_month(2, 2014));
|
|||
$this->assertEquals(28, date::days_of_month(2, 2015));
|
|||
$this->assertEquals(29, date::days_of_month(2, 2016));
|
|||
$this->assertEquals(28, date::days_of_month(2, 2017));
|
|||
$this->assertEquals(31, date::days_of_month(3, 2017));
|
|||
$this->assertEquals(30, date::days_of_month(4, 2017));
|
|||
$this->assertEquals(31, date::days_of_month(5, 2017));
|
|||
$this->assertEquals(30, date::days_of_month(6, 2017));
|
|||
$this->assertEquals(31, date::days_of_month(7, 2017));
|
|||
$this->assertEquals(31, date::days_of_month(8, 2017));
|
|||
$this->assertEquals(30, date::days_of_month(9, 2017));
|
|||
$this->assertEquals(31, date::days_of_month(10, 2017));
|
|||
$this->assertEquals(30, date::days_of_month(11, 2017));
|
|||
$this->assertEquals(31, date::days_of_month(12, 2017));
|
|||
}
|
|||
18ac9009 | Ondřej Fibich | ||
/**
|
|||
* @covers date::get_next_deduct_date_to
|
|||
* @dataProvider provider_arithmetic
|
|||
*/
|
|||
public function test_get_next_deduct_date_to($deductDay, $dateStr, $exp)
|
|||
{
|
|||
static $prevDd = null;
|
|||
if ($prevDd !== $deductDay)
|
|||
{
|
|||
Settings::set('deduct_day', $deductDay);
|
|||
$prevDd = $deductDay;
|
|||
}
|
|||
$this->assertEquals($exp, date::get_next_deduct_date_to($dateStr));
|
|||
}
|
|||
/**
|
|||
* Provider for test_get_next_deduct_date_to.
|
|||
*
|
|||
* @return array
|
|||
*/
|
|||
public function provider_arithmetic()
|
|||
{
|
|||
// deduct day, input date, expected output
|
|||
return array
|
|||
(
|
|||
array(1, '2015-01-01', '2015-02-01'),
|
|||
array(1, '2015-01-15', '2015-02-01'),
|
|||
array(1, '2015-01-28', '2015-02-01'),
|
|||
array(1, '2015-01-29', '2015-02-01'),
|
|||
array(1, '2015-01-30', '2015-02-01'),
|
|||
array(1, '2015-01-31', '2015-02-01'),
|
|||
array(1, '2015-05-31', '2015-06-01'),
|
|||
array(15, '2015-01-01', '2015-02-15'),
|
|||
array(15, '2015-01-15', '2015-02-15'),
|
|||
array(15, '2015-01-28', '2015-02-15'),
|
|||
array(15, '2015-01-29', '2015-02-15'),
|
|||
array(15, '2015-01-30', '2015-02-15'),
|
|||
array(15, '2015-01-31', '2015-02-15'),
|
|||
array(15, '2015-05-31', '2015-06-15'),
|
|||
array(31, '2015-01-01', '2015-02-28'),
|
|||
array(31, '2015-01-15', '2015-02-28'),
|
|||
array(31, '2015-01-28', '2015-02-28'),
|
|||
array(31, '2015-01-29', '2015-02-28'),
|
|||
array(31, '2015-01-30', '2015-02-28'),
|
|||
array(31, '2015-01-31', '2015-02-28'),
|
|||
array(31, '2015-05-31', '2015-06-30'),
|
|||
array(31, '2015-06-30', '2015-07-31'),
|
|||
array(31, '2015-07-31', '2015-08-31'),
|
|||
);
|
|||
}
|
|||
}
|