From 63d1292bf80d88be40eec7695c1a59f29e6609c5 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Mon, 24 Sep 2018 14:19:13 +0200 Subject: Added EventConfig model --- tests/Unit/HasDatabase.php | 1 + tests/Unit/Models/EventConfigTest.php | 128 ++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 tests/Unit/Models/EventConfigTest.php (limited to 'tests/Unit') diff --git a/tests/Unit/HasDatabase.php b/tests/Unit/HasDatabase.php index 467f95fc..264d0a9c 100644 --- a/tests/Unit/HasDatabase.php +++ b/tests/Unit/HasDatabase.php @@ -21,6 +21,7 @@ trait HasDatabase { $dbManager = new CapsuleManager(); $dbManager->addConnection(['driver' => 'sqlite', 'database' => ':memory:']); + $dbManager->bootEloquent(); $connection = $dbManager->getConnection(); $connection->getPdo()->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); diff --git a/tests/Unit/Models/EventConfigTest.php b/tests/Unit/Models/EventConfigTest.php new file mode 100644 index 00000000..f08e8801 --- /dev/null +++ b/tests/Unit/Models/EventConfigTest.php @@ -0,0 +1,128 @@ +setAttribute('name', 'foo') + ->setAttribute('value', 'bar') + ->save(); + $this->assertEquals( + '"bar"', + $this->database + ->selectOne("SELECT `value` FROM event_config WHERE name='foo'") + ->value + ); + + (new EventConfig()) + ->setAttribute('name', 'buildup_start') + ->setAttribute('value', new Carbon('2000-01-01 10:20')) + ->save(); + $this->assertEquals( + '"2000-01-01"', + $this->database + ->selectOne("SELECT `value` FROM event_config WHERE name='buildup_start'") + ->value + ); + + ($this->getEventConfig()) + ->setAttribute('name', 'event_start') + ->setValueCast('event_start', 'datetime') + ->setAttribute('value', new Carbon('2010-11-11 20:22')) + ->save(); + $this->assertEquals( + '"' . (new Carbon('2010-11-11 20:22'))->format(Carbon::ATOM) . '"', + $this->database + ->selectOne("SELECT `value` FROM event_config WHERE name='event_start'") + ->value + ); + } + + /** + * @covers \Engelsystem\Models\EventConfig::getValueAttribute + */ + public function testGetValueAttribute() + { + $model = new EventConfig(['name', 'buildup_start', 'value' => '']); + $this->assertEquals('', $model->value); + + (new EventConfig()) + ->setAttribute('name', 'buildup_start') + ->setAttribute('value', new Carbon('2001-02-03 11:12')) + ->save(); + $this->assertEquals( + '2001-02-03 00:00', + EventConfig::find('buildup_start') + ->value + ->format('Y-m-d H:i') + ); + + ($this->getEventConfig()) + ->setAttribute('name', 'event_start') + ->setValueCast('event_start', 'datetime') + ->setAttribute('value', new Carbon('2010-11-11 20:22')) + ->save(); + $this->assertEquals( + '2010-11-11 20:22', + ($this->getEventConfig())->find('event_start') + ->setValueCast('event_start', 'datetime') + ->value + ->format('Y-m-d H:i') + ); + } + + /** + * @covers \Engelsystem\Models\EventConfig::getValueCast + */ + public function testGetValueCast() + { + $model = new EventConfig(['value' => 'bar']); + $this->assertEquals('bar', $model->value); + + return; + } + + /** + * Init a new EventConfig class + * + * @return EventConfig + */ + protected function getEventConfig() + { + return new class extends EventConfig + { + /** + * @param string $value + * @param string $type + * @return EventConfig + */ + public function setValueCast($value, $type) + { + $this->valueCasts[$value] = $type; + + return $this; + } + }; + } + + /** + * Prepare test + */ + protected function setUp() + { + $this->initDatabase(); + } +} -- cgit v1.2.3-70-g09d2