Skip to content

Commit c8d6c42

Browse files
committed
Use the trait for every test model
1 parent 855ff8e commit c8d6c42

27 files changed

+203
-105
lines changed

src/Eloquent/DocumentModel.php

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,10 @@ trait DocumentModel
5353
use HybridRelations;
5454
use EmbedsRelations;
5555

56-
/**
57-
* The collection associated with the model.
58-
*
59-
* @var string
60-
*/
61-
protected $collection;
62-
6356
/**
6457
* The parent relation instance.
65-
*
66-
* @var Relation
6758
*/
68-
protected $parentRelation;
59+
private Relation $parentRelation;
6960

7061
/**
7162
* List of field names to unset from the document on save.
@@ -150,7 +141,7 @@ public function freshTimestamp()
150141
/** @inheritdoc */
151142
public function getTable()
152143
{
153-
return $this->collection ?: parent::getTable();
144+
return $this->collection ?? parent::getTable();
154145
}
155146

156147
/** @inheritdoc */
@@ -552,12 +543,10 @@ public function setParentRelation(Relation $relation)
552543

553544
/**
554545
* Get the parent relation.
555-
*
556-
* @return Relation
557546
*/
558-
public function getParentRelation()
547+
public function getParentRelation(): ?Relation
559548
{
560-
return $this->parentRelation;
549+
return $this->parentRelation ?? null;
561550
}
562551

563552
/** @inheritdoc */

src/Eloquent/Model.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,13 @@ abstract class Model extends BaseModel
2828
*/
2929
protected $keyType = 'string';
3030

31-
/** @param class-string|object $related */
31+
/**
32+
* Indicates if the given model class is a MongoDB document model.
33+
* It must be a subclass of {@see BaseModel} and use the
34+
* {@see DocumentModel} trait.
35+
*
36+
* @param class-string|object $related
37+
*/
3238
public static function isDocumentModel(string|object $related): bool
3339
{
3440
return is_subclass_of($related, BaseModel::class)

tests/Models/Address.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,17 @@
44

55
namespace MongoDB\Laravel\Tests\Models;
66

7-
use MongoDB\Laravel\Eloquent\Model as Eloquent;
7+
use Illuminate\Database\Eloquent\Model;
8+
use MongoDB\Laravel\Eloquent\DocumentModel;
89
use MongoDB\Laravel\Relations\EmbedsMany;
910

10-
class Address extends Eloquent
11+
class Address extends Model
1112
{
12-
protected $connection = 'mongodb';
13+
use DocumentModel;
14+
15+
protected $primaryKey = '_id';
16+
protected $keyType = 'string';
17+
protected $connection = 'mongodb';
1318
protected static $unguarded = true;
1419

1520
public function addresses(): EmbedsMany

tests/Models/Birthday.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,22 @@
44

55
namespace MongoDB\Laravel\Tests\Models;
66

7-
use MongoDB\Laravel\Eloquent\Model as Eloquent;
7+
use Illuminate\Database\Eloquent\Model;
8+
use MongoDB\Laravel\Eloquent\DocumentModel;
89

910
/**
1011
* @property string $name
1112
* @property string $birthday
1213
* @property string $time
1314
*/
14-
class Birthday extends Eloquent
15+
class Birthday extends Model
1516
{
17+
use DocumentModel;
18+
19+
protected $primaryKey = '_id';
20+
protected $keyType = 'string';
1621
protected $connection = 'mongodb';
17-
protected $collection = 'birthday';
22+
protected string $collection = 'birthday';
1823
protected $fillable = ['name', 'birthday'];
1924

2025
protected $casts = ['birthday' => 'datetime'];

tests/Models/Book.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,24 @@
44

55
namespace MongoDB\Laravel\Tests\Models;
66

7+
use Illuminate\Database\Eloquent\Model;
78
use Illuminate\Database\Eloquent\Relations\BelongsTo;
8-
use MongoDB\Laravel\Eloquent\Model as Eloquent;
9+
use MongoDB\Laravel\Eloquent\DocumentModel;
910

1011
/**
1112
* @property string $title
1213
* @property string $author
1314
* @property array $chapters
1415
*/
15-
class Book extends Eloquent
16+
class Book extends Model
1617
{
17-
protected $connection = 'mongodb';
18-
protected $collection = 'books';
18+
use DocumentModel;
19+
20+
protected $primaryKey = 'title';
21+
protected $keyType = 'string';
22+
protected $connection = 'mongodb';
23+
protected string $collection = 'books';
1924
protected static $unguarded = true;
20-
protected $primaryKey = 'title';
2125

2226
public function author(): BelongsTo
2327
{

tests/Models/CastObjectId.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,17 @@
44

55
namespace MongoDB\Laravel\Tests\Models;
66

7+
use Illuminate\Database\Eloquent\Model;
78
use MongoDB\Laravel\Eloquent\Casts\ObjectId;
8-
use MongoDB\Laravel\Eloquent\Model as Eloquent;
9+
use MongoDB\Laravel\Eloquent\DocumentModel;
910

10-
class CastObjectId extends Eloquent
11+
class CastObjectId extends Model
1112
{
12-
protected $connection = 'mongodb';
13+
use DocumentModel;
14+
15+
protected $primaryKey = '_id';
16+
protected $keyType = 'string';
17+
protected $connection = 'mongodb';
1318
protected static $unguarded = true;
1419
protected $casts = [
1520
'oid' => ObjectId::class,

tests/Models/Casting.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,18 @@
44

55
namespace MongoDB\Laravel\Tests\Models;
66

7+
use Illuminate\Database\Eloquent\Model;
78
use MongoDB\Laravel\Eloquent\Casts\BinaryUuid;
8-
use MongoDB\Laravel\Eloquent\Model as Eloquent;
9+
use MongoDB\Laravel\Eloquent\DocumentModel;
910

10-
class Casting extends Eloquent
11+
class Casting extends Model
1112
{
13+
use DocumentModel;
14+
15+
protected $primaryKey = '_id';
16+
protected $keyType = 'string';
1217
protected $connection = 'mongodb';
13-
protected $collection = 'casting';
18+
protected string $collection = 'casting';
1419

1520
protected $fillable = [
1621
'uuid',

tests/Models/Client.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,20 @@
44

55
namespace MongoDB\Laravel\Tests\Models;
66

7+
use Illuminate\Database\Eloquent\Model;
78
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
89
use Illuminate\Database\Eloquent\Relations\HasMany;
910
use Illuminate\Database\Eloquent\Relations\MorphOne;
10-
use MongoDB\Laravel\Eloquent\Model as Eloquent;
11+
use MongoDB\Laravel\Eloquent\DocumentModel;
1112

12-
class Client extends Eloquent
13+
class Client extends Model
1314
{
14-
protected $connection = 'mongodb';
15-
protected $collection = 'clients';
15+
use DocumentModel;
16+
17+
protected $primaryKey = '_id';
18+
protected $keyType = 'string';
19+
protected $connection = 'mongodb';
20+
protected string $collection = 'clients';
1621
protected static $unguarded = true;
1722

1823
public function users(): BelongsToMany

tests/Models/Experience.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,18 @@
44

55
namespace MongoDB\Laravel\Tests\Models;
66

7+
use Illuminate\Database\Eloquent\Model;
78
use Illuminate\Database\Eloquent\Relations\MorphToMany;
8-
use MongoDB\Laravel\Eloquent\Model as Eloquent;
9+
use MongoDB\Laravel\Eloquent\DocumentModel;
910

10-
class Experience extends Eloquent
11+
class Experience extends Model
1112
{
12-
protected $connection = 'mongodb';
13-
protected $collection = 'experiences';
13+
use DocumentModel;
14+
15+
protected $primaryKey = '_id';
16+
protected $keyType = 'string';
17+
protected $connection = 'mongodb';
18+
protected string $collection = 'experiences';
1419
protected static $unguarded = true;
1520

1621
protected $casts = ['years' => 'int'];

tests/Models/Group.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,18 @@
44

55
namespace MongoDB\Laravel\Tests\Models;
66

7+
use Illuminate\Database\Eloquent\Model;
78
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
8-
use MongoDB\Laravel\Eloquent\Model as Eloquent;
9+
use MongoDB\Laravel\Eloquent\DocumentModel;
910

10-
class Group extends Eloquent
11+
class Group extends Model
1112
{
12-
protected $connection = 'mongodb';
13-
protected $collection = 'groups';
13+
use DocumentModel;
14+
15+
protected $primaryKey = '_id';
16+
protected $keyType = 'string';
17+
protected $connection = 'mongodb';
18+
protected string $collection = 'groups';
1419
protected static $unguarded = true;
1520

1621
public function users(): BelongsToMany

0 commit comments

Comments
 (0)