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/Models/EventConfigTest.php | 128 ++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 tests/Unit/Models/EventConfigTest.php (limited to 'tests/Unit/Models') 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-54-g00ecf