4 * Test class for RangeChronologicalPagerTest logic.
8 * @author Geoffrey Mon <geofbot@gmail.com>
10 class RangeChronologicalPagerTest extends MediaWikiLangTestCase {
13 * @covers RangeChronologicalPager::getDateCond
14 * @dataProvider getDateCondProvider
16 public function testGetDateCond( $inputYear, $inputMonth, $inputDay, $expected ) {
17 $pager = $this->getMockForAbstractClass( 'RangeChronologicalPager' );
20 wfTimestamp( TS_MW, $pager->getDateCond( $inputYear, $inputMonth, $inputDay ) )
25 * Data provider in [ input year, input month, input day, expected timestamp output ] format
27 public function getDateCondProvider() {
29 [ 2016, 12, 5, '20161205235959' ],
30 [ 2016, 12, 31, '20161231235959' ],
31 [ 2016, 12, 1337, '20161231235959' ],
32 [ 2016, 1337, 1337, '20161231235959' ],
33 [ 2016, 1337, -1, '20161231235959' ],
34 [ 2016, 12, 32, '20161231235959' ],
35 [ 2016, 12, -1, '20161231235959' ],
36 [ 2016, -1, -1, '20161231235959' ],
41 * @covers RangeChronologicalPager::getDateRangeCond
42 * @dataProvider getDateRangeCondProvider
44 public function testGetDateRangeCond( $start, $end, $expected ) {
45 $pager = $this->getMockForAbstractClass( 'RangeChronologicalPager' );
46 $this->assertArrayEquals( $expected, $pager->getDateRangeCond( $start, $end ) );
50 * Data provider in [ start, end, [ expected output has start condition, has end cond ] ] format
52 public function getDateRangeCondProvider() {
53 $db = wfGetDB( DB_MASTER );
60 '>=' . $db->addQuotes( $db->timestamp( '20161201000000' ) ),
61 '<=' . $db->addQuotes( $db->timestamp( '20161203000000' ) ),
68 '<=' . $db->addQuotes( $db->timestamp( '20161203000000' ) ),
75 '>=' . $db->addQuotes( $db->timestamp( '20161201000000' ) ),
83 * @covers RangeChronologicalPager::getDateRangeCond
84 * @dataProvider getDateRangeCondInvalidProvider
86 public function testGetDateRangeCondInvalid( $start, $end ) {
87 $pager = $this->getMockForAbstractClass( 'RangeChronologicalPager' );
88 $this->assertEquals( null, $pager->getDateRangeCond( $start, $end ) );
91 public function getDateRangeCondInvalidProvider() {
93 [ '-2016-12-01', '2017-12-01', ],
94 [ '2016-12-01', '-2017-12-01', ],
95 [ 'abcdefghij', 'klmnopqrstu', ],