From aae16e35f371d6219857c4a56e3b3c527f96035b Mon Sep 17 00:00:00 2001 From: Dimitri BOUTEILLE Date: Sat, 28 Sep 2024 22:52:25 +0200 Subject: [PATCH] https://github.com/dimitriBouteille/wp-orm/issues/72 WIP HasMetasTest --- tests/WordPress/Concerns/HasMetasTest.php | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/WordPress/Concerns/HasMetasTest.php b/tests/WordPress/Concerns/HasMetasTest.php index d42324b7..44bd3168 100644 --- a/tests/WordPress/Concerns/HasMetasTest.php +++ b/tests/WordPress/Concerns/HasMetasTest.php @@ -8,6 +8,7 @@ namespace Dbout\WpOrm\Tests\WordPress\Concerns; +use Carbon\Carbon; use Dbout\WpOrm\Concerns\HasMetas; use Dbout\WpOrm\Enums\YesNo; use Dbout\WpOrm\Models\Meta\AbstractMeta; @@ -143,6 +144,36 @@ public function testGetMetaValueWithEnumCasts(): void $this->assertEquals('yes', $value->value); } + /** + * @return void + * @covers HasMetas::getMetaValue + */ + public function testGetMetaValueWithDatetimeCasts(): void + { + $object = new class () extends Post { + protected array $metaCasts = [ + 'created_at' => 'datetime', + 'uploaded_at' => 'date', + ]; + }; + + $model = new $object(); + $model->setPostTitle('Hello world'); + $model->save(); + $model->setMeta('created_at', '2022-09-08 07:30:05'); + $model->setMeta('uploaded_at', '2024-10-08 10:25:35'); + + /** @var Carbon|null $date */ + $date = $model->getMetaValue('created_at'); + $this->assertInstanceOf(Carbon::class, $date); + $this->assertEquals('2022-09-08 07:30:05', $date->format('Y-m-d H:i:s')); + + /** @var Carbon|null $date */ + $date = $model->getMetaValue('uploaded_at'); + $this->assertInstanceOf(Carbon::class, $date); + $this->assertEquals('2022-09-08 00:00:00', $date->format('Y-m-d H:i:s')); + } + /** * @return void * @covers HasMetas::deleteMeta