68 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| declare(strict_types=1);
 | |
| 
 | |
| namespace Engelsystem\Test\Unit\Helpers;
 | |
| 
 | |
| use Engelsystem\Helpers\Carbon;
 | |
| use PHPUnit\Framework\TestCase;
 | |
| use Traversable;
 | |
| 
 | |
| class CarbonTest extends TestCase
 | |
| {
 | |
|     public function validDates(): Traversable
 | |
|     {
 | |
|         $format = '!Y-m-d H:i';
 | |
|         yield '2022-04-16T10:44' => ['2022-04-16T10:44', Carbon::createFromFormat($format, '2022-04-16 10:44')];
 | |
|         yield '2022-04-16 10:44' => ['2022-04-16T10:44', Carbon::createFromFormat($format, '2022-04-16 10:44')];
 | |
|         yield '2020-12-24T13:37' => ['2020-12-24T13:37', Carbon::createFromFormat($format, '2020-12-24 13:37')];
 | |
|         yield '2020-12-24 13:37' => ['2020-12-24T13:37', Carbon::createFromFormat($format, '2020-12-24 13:37')];
 | |
|     }
 | |
| 
 | |
|     public function invalidDates(): Traversable
 | |
|     {
 | |
|         yield '202-12-12 11:11' => ['202-12-12T11:11'];
 | |
|         yield '2022-23-24' => ['2022-23-24'];
 | |
|         yield '16.04.2022 11:24' => ['16.04.2022 11:24'];
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @covers \Engelsystem\Helpers\Carbon::createFromDatetime
 | |
|      * @dataProvider validDates
 | |
|      */
 | |
|     public function testCreateFromValidDatetime(string $value, Carbon $expected): void
 | |
|     {
 | |
|         $date = Carbon::createFromDatetime($value);
 | |
|         self::assertSame($expected->timestamp, $date->timestamp);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @covers \Engelsystem\Helpers\Carbon::createFromDatetime
 | |
|      * @dataProvider invalidDates
 | |
|      */
 | |
|     public function testCreateFromInvalidDatetime(string $value): void
 | |
|     {
 | |
|         $date = Carbon::createFromDatetime($value);
 | |
|         self::assertNull($date);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @covers \Engelsystem\Helpers\Carbon::createTimestampFromDatetime
 | |
|      * @dataProvider validDates
 | |
|      */
 | |
|     public function testCreateTimestampFromValidDatetime(string $value, Carbon $expected): void
 | |
|     {
 | |
|         $timestamp = Carbon::createTimestampFromDatetime($value);
 | |
|         self::assertSame($expected->timestamp, $timestamp);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @covers \Engelsystem\Helpers\Carbon::createTimestampFromDatetime
 | |
|      * @dataProvider invalidDates
 | |
|      */
 | |
|     public function testCreateTimestampFromInvalidDatetime(string $value): void
 | |
|     {
 | |
|         $timestamp = Carbon::createTimestampFromDatetime($value);
 | |
|         self::assertNull($timestamp);
 | |
|     }
 | |
| }
 | 
