Skip to content

Commit 58bec96

Browse files
committed
Added more tests for when property or mutator is null
1 parent edf1d83 commit 58bec96

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

tests/MetableTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public static function setUpBeforeClass(): void {
3232
$table->string( 'email' )->default( '[email protected]' );
3333
$table->string( 'password' )->nullable();
3434
$table->string( 'state' )->nullable();
35+
$table->string( 'null_value' )->nullable();
3536
$table->integer( 'user_test_id' )->unsigned()->nullable();
3637
$table->foreign( 'user_test_id' )->references( 'id' )->on( 'user_tests' );
3738
$table->timestamps();
@@ -113,6 +114,21 @@ public function testFluentMeta() {
113114
$this->assertTrue( $user->isMetaDirty( 'foo', 'bar' ), 'isMetaDirty should return true even if one of metas has changed' );
114115
$this->assertTrue( $user->isMetaDirty( 'foo,bar' ), 'isMetaDirty should return true even if one of metas has changed' );
115116

117+
//re retrieve user from database
118+
/** @var UserTest $user */
119+
$user = UserTest::find( $user->id );
120+
121+
$this->assertNull( $user->null_value, 'null_value property should be null' );
122+
$this->assertNull( $user->null_cast, 'null_cast property should be null' );
123+
124+
$user->setMeta( 'null_value', true );
125+
$user->setMeta( 'null_cast', true );
126+
127+
$this->assertTrue( $user->getMeta( 'null_value' ), 'Meta should be set' );
128+
$this->assertTrue( $user->getMeta( 'null_cast' ), 'Meta should be set' );
129+
$this->assertNull( $user->null_value, 'null_value property should be null' );
130+
$this->assertNull( $user->null_cast, 'null_cast property should be null' );
131+
116132
$user->delete();
117133

118134
$this->assertEquals( 0, $metaData->count(), 'Meta should be deleted from database after deleting user.' );

tests/Models/UserTest.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,15 @@ class UserTest extends Model
2121
public $hideMeta = false;
2222

2323
public $disableFluentMeta = false;
24-
24+
2525
protected $casts = [
2626
'state' => UserCastedObject::class,
2727
];
2828

29+
public function getNullCastAttribute() {
30+
return null;
31+
}
32+
2933
/**
3034
* This is dummy relation to itself.
3135
*

0 commit comments

Comments
 (0)