diff options
-rw-r--r-- | src/Models/User/HasUserModel.php | 18 | ||||
-rw-r--r-- | src/Models/User/UsesUserModel.php | 25 | ||||
-rw-r--r-- | tests/Unit/Models/User/Stub/HasUserModelImplementation.php | 9 | ||||
-rw-r--r-- | tests/Unit/Models/User/UsesUserModelTest.php (renamed from tests/Unit/Models/User/HasUserModelTest.php) | 15 |
4 files changed, 36 insertions, 31 deletions
diff --git a/src/Models/User/HasUserModel.php b/src/Models/User/HasUserModel.php index 6d1323de..2b7fdda9 100644 --- a/src/Models/User/HasUserModel.php +++ b/src/Models/User/HasUserModel.php @@ -3,17 +3,11 @@ namespace Engelsystem\Models\User; use Engelsystem\Models\BaseModel; -use Illuminate\Database\Eloquent\Relations\BelongsTo; -/** - * @property integer $user_id - * - * @property-read \Illuminate\Database\Query\Builder|\Engelsystem\Models\User\User $user - * - * @method static \Illuminate\Database\Query\Builder|static whereUserId($value) - */ abstract class HasUserModel extends BaseModel { + use UsesUserModel; + /** @var string The primary key for the model */ protected $primaryKey = 'user_id'; @@ -24,12 +18,4 @@ abstract class HasUserModel extends BaseModel /** The relationships that should be touched on save */ protected $touches = ['user']; - - /** - * @return BelongsTo - */ - public function user() - { - return $this->belongsTo(User::class); - } } diff --git a/src/Models/User/UsesUserModel.php b/src/Models/User/UsesUserModel.php new file mode 100644 index 00000000..84795480 --- /dev/null +++ b/src/Models/User/UsesUserModel.php @@ -0,0 +1,25 @@ +<?php + +namespace Engelsystem\Models\User; + +use Illuminate\Database\Eloquent\Relations\BelongsTo; + +/** + * @property integer $user_id + * + * @property-read \Illuminate\Database\Query\Builder|\Engelsystem\Models\User\User $user + * + * @method static \Illuminate\Database\Query\Builder|static whereUserId($value) + */ +trait UsesUserModel +{ + // protected $fillable = ['user_id']; + + /** + * @return BelongsTo + */ + public function user() + { + return $this->belongsTo(User::class); + } +} diff --git a/tests/Unit/Models/User/Stub/HasUserModelImplementation.php b/tests/Unit/Models/User/Stub/HasUserModelImplementation.php deleted file mode 100644 index 6d442bdd..00000000 --- a/tests/Unit/Models/User/Stub/HasUserModelImplementation.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php - -namespace Engelsystem\Test\Unit\Models\User\Stub; - -use Engelsystem\Models\User\HasUserModel; - -class HasUserModelImplementation extends HasUserModel -{ -} diff --git a/tests/Unit/Models/User/HasUserModelTest.php b/tests/Unit/Models/User/UsesUserModelTest.php index 4f6da9ad..0842d221 100644 --- a/tests/Unit/Models/User/HasUserModelTest.php +++ b/tests/Unit/Models/User/UsesUserModelTest.php @@ -2,23 +2,26 @@ namespace Engelsystem\Test\Unit\Models; -use Engelsystem\Models\User\HasUserModel; +use Engelsystem\Models\BaseModel; +use Engelsystem\Models\User\UsesUserModel; use Engelsystem\Test\Unit\HasDatabase; -use Engelsystem\Test\Unit\Models\User\Stub\HasUserModelImplementation; use Engelsystem\Test\Unit\TestCase; use Illuminate\Database\Eloquent\Relations\BelongsTo; -class HasUserModelTest extends TestCase +class UsesUserModelTest extends TestCase { use HasDatabase; /** - * @covers \Engelsystem\Models\User\HasUserModel::user + * @covers \Engelsystem\Models\User\UsesUserModel::user */ public function testHasOneRelations() { - /** @var HasUserModel $contact */ - $model = new HasUserModelImplementation(); + /** @var UsesUserModel $contact */ + $model = new class extends BaseModel + { + use UsesUserModel; + }; $this->assertInstanceOf(BelongsTo::class, $model->user()); } |