From 8e62c4c52c27f9432820915deeb699c3d1f58ce7 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Sat, 6 Oct 2018 14:15:54 +0200 Subject: Added new user models --- tests/Unit/Models/User/HasUserModelTest.php | 33 ++++++++ .../User/Stub/HasUserModelImplementation.php | 10 +++ tests/Unit/Models/User/UserTest.php | 98 ++++++++++++++++++++++ 3 files changed, 141 insertions(+) create mode 100644 tests/Unit/Models/User/HasUserModelTest.php create mode 100644 tests/Unit/Models/User/Stub/HasUserModelImplementation.php create mode 100644 tests/Unit/Models/User/UserTest.php (limited to 'tests') diff --git a/tests/Unit/Models/User/HasUserModelTest.php b/tests/Unit/Models/User/HasUserModelTest.php new file mode 100644 index 00000000..07f3d726 --- /dev/null +++ b/tests/Unit/Models/User/HasUserModelTest.php @@ -0,0 +1,33 @@ +assertInstanceOf(BelongsTo::class, $model->user()); + } + + /** + * Prepare test + */ + protected function setUp() + { + $this->initDatabase(); + } +} diff --git a/tests/Unit/Models/User/Stub/HasUserModelImplementation.php b/tests/Unit/Models/User/Stub/HasUserModelImplementation.php new file mode 100644 index 00000000..0456eb6a --- /dev/null +++ b/tests/Unit/Models/User/Stub/HasUserModelImplementation.php @@ -0,0 +1,10 @@ + 'lorem', + 'password' => '', + 'email' => 'foo@bar.batz', + 'api_key' => '', + ]; + + /** + * @return array + */ + public function hasOneRelationsProvider() + { + return [ + [ + Contact::class, + 'contact', + [ + 'dect' => '1234', + 'email' => 'foo@bar.batz', + 'mobile' => '1234/12341234', + ] + ], + [ + PersonalData::class, + 'personalData', + [ + 'first_name' => 'Foo' + ] + ], + [ + Settings::class, + 'settings', + [ + 'language' => 'de_DE', + 'theme' => 4, + ] + ], + [ + State::class, + 'state', + [ + 'force_active' => true, + ] + ], + ]; + } + + /** + * @covers \Engelsystem\Models\User\User::contact + * @covers \Engelsystem\Models\User\User::personalData + * @covers \Engelsystem\Models\User\User::settings + * @covers \Engelsystem\Models\User\User::state + * + * @dataProvider hasOneRelationsProvider + * + * @param string $class + * @param string $name + * @param array $data + */ + public function testHasOneRelations($class, $name, $data) + { + $user = new User($this->data); + $user->save(); + + /** @var HasUserModel $contact */ + $contact = new $class($data); + $contact->user() + ->associate($user) + ->save(); + + $this->assertArraySubset($data, (array)$user->{$name}->attributesToArray()); + } + + /** + * Prepare test + */ + protected function setUp() + { + $this->initDatabase(); + } +} -- cgit v1.2.3-54-g00ecf