225 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			225 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| 
 | |
| /*
 | |
|  * This file is part of the Carbon package.
 | |
|  *
 | |
|  * (c) Brian Nesbitt <brian@nesbot.com>
 | |
|  *
 | |
|  * For the full copyright and license information, please view the LICENSE
 | |
|  * file that was distributed with this source code.
 | |
|  */
 | |
| 
 | |
| use Carbon\CarbonInterval;
 | |
| use Carbon\Carbon;
 | |
| 
 | |
| class CarbonIntervalConstructTest extends TestFixture
 | |
| {
 | |
|     public function testDefaults()
 | |
|     {
 | |
|         $ci = new CarbonInterval();
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 1, 0, 0, 0, 0, 0);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @expectedException Exception
 | |
|      */
 | |
|     public function testNulls()
 | |
|     {
 | |
|         $ci = new CarbonInterval(null, null, null, null, null, null);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @expectedException Exception
 | |
|      */
 | |
|     public function testZeroes()
 | |
|     {
 | |
|         $ci = new CarbonInterval(0, 0, 0, 0, 0, 0);
 | |
|     }
 | |
| 
 | |
|     public function testYears()
 | |
|     {
 | |
|         $ci = new CarbonInterval(1);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 1, 0, 0, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::years(2);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 2, 0, 0, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::year();
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 1, 0, 0, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::year(3);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 3, 0, 0, 0, 0, 0);
 | |
|     }
 | |
| 
 | |
|     public function testMonths()
 | |
|     {
 | |
|         $ci = new CarbonInterval(0, 1);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 1, 0, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::months(2);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 2, 0, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::month();
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 1, 0, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::month(3);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 3, 0, 0, 0, 0);
 | |
|     }
 | |
| 
 | |
|     public function testWeeks()
 | |
|     {
 | |
|         $ci = new CarbonInterval(0, 0, 1);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 7, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::weeks(2);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 14, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::week();
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 7, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::week(3);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 21, 0, 0, 0);
 | |
|     }
 | |
| 
 | |
|     public function testDays()
 | |
|     {
 | |
|         $ci = new CarbonInterval(0, 0, 0, 1);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 1, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::days(2);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 2, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::dayz(2);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 2, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::day();
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 1, 0, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::day(3);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 3, 0, 0, 0);
 | |
|     }
 | |
| 
 | |
|     public function testHours()
 | |
|     {
 | |
|         $ci = new CarbonInterval(0, 0, 0, 0, 1);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 0, 1, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::hours(2);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 0, 2, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::hour();
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 0, 1, 0, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::hour(3);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 0, 3, 0, 0);
 | |
|     }
 | |
| 
 | |
|     public function testMinutes()
 | |
|     {
 | |
|         $ci = new CarbonInterval(0, 0, 0, 0, 0, 1);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 0, 0, 1, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::minutes(2);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 0, 0, 2, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::minute();
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 0, 0, 1, 0);
 | |
| 
 | |
|         $ci = CarbonInterval::minute(3);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 0, 0, 3, 0);
 | |
|     }
 | |
| 
 | |
|     public function testSeconds()
 | |
|     {
 | |
|         $ci = new CarbonInterval(0, 0, 0, 0, 0, 0, 1);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 0, 0, 0, 1);
 | |
| 
 | |
|         $ci = CarbonInterval::seconds(2);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 0, 0, 0, 2);
 | |
| 
 | |
|         $ci = CarbonInterval::second();
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 0, 0, 0, 1);
 | |
| 
 | |
|         $ci = CarbonInterval::second(3);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 0, 0, 0, 0, 0, 3);
 | |
|     }
 | |
| 
 | |
|     public function testYearsAndHours()
 | |
|     {
 | |
|         $ci = new CarbonInterval(5, 0, 0, 0, 3, 0, 0);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 5, 0, 0, 3, 0, 0);
 | |
|     }
 | |
| 
 | |
|     public function testAll()
 | |
|     {
 | |
|         $ci = new CarbonInterval(5, 6, 2, 5, 9, 10, 11);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 5, 6, 19, 9, 10, 11);
 | |
|     }
 | |
| 
 | |
|     public function testAllWithCreate()
 | |
|     {
 | |
|         $ci = CarbonInterval::create(5, 6, 2, 5, 9, 10, 11);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 5, 6, 19, 9, 10, 11);
 | |
|     }
 | |
| 
 | |
|     public function testInstance()
 | |
|     {
 | |
|         $ci = CarbonInterval::instance(new DateInterval('P2Y1M5DT22H33M44S'));
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 2, 1, 5, 22, 33, 44);
 | |
|         $this->assertTrue($ci->days === false || $ci->days === CarbonInterval::PHP_DAYS_FALSE);
 | |
|     }
 | |
| 
 | |
|     public function testInstanceWithNegativeDateInterval()
 | |
|     {
 | |
|         $di = new DateInterval('P2Y1M5DT22H33M44S');
 | |
|         $di->invert = 1;
 | |
|         $ci = CarbonInterval::instance($di);
 | |
|         $this->assertInstanceOfCarbonInterval($ci);
 | |
|         $this->assertCarbonInterval($ci, 2, 1, 5, 22, 33, 44);
 | |
|         $this->assertTrue($ci->days === false || $ci->days === CarbonInterval::PHP_DAYS_FALSE);
 | |
|         $this->assertSame(1, $ci->invert);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @expectedException InvalidArgumentException
 | |
|      */
 | |
|     public function testInstanceWithDaysThrowsException()
 | |
|     {
 | |
|         $ci = CarbonInterval::instance(Carbon::now()->diff(Carbon::now()->addWeeks(3)));
 | |
|     }
 | |
| }
 |