['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); } }