Skip to content

Commit

Permalink
prove attribute does not interfere with other properties during seria…
Browse files Browse the repository at this point in the history
…lization
  • Loading branch information
cosmastech committed Aug 14, 2023
1 parent 1a028a7 commit 9063f03
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 7 deletions.
2 changes: 1 addition & 1 deletion src/Illuminate/Queue/Attributes/WithoutRelations.php
Expand Up @@ -4,7 +4,7 @@

use Attribute;

#[Attribute(Attribute::TARGET_PROPERTY|Attribute::TARGET_CLASS)]
#[Attribute(Attribute::TARGET_PROPERTY | Attribute::TARGET_CLASS)]
class WithoutRelations
{
//
Expand Down
19 changes: 13 additions & 6 deletions tests/Integration/Queue/ModelSerializationTest.php
Expand Up @@ -338,16 +338,18 @@ public function test_it_respects_without_relations_attribute_applied_to_class()
'email' => 'taylor@laravel.com',
])->load(['roles']);

$serialized = serialize(new ModelSerializationAttributeTargetsClassTestClass($user));
$serialized = serialize(new ModelSerializationAttributeTargetsClassTestClass($user, new DataValueObject('hello')));

$this->assertSame(
'O:83:"Illuminate\Tests\Integration\Queue\ModelSerializationAttributeTargetsClassTestClass":1:{s:4:"user";O:45:"Illuminate\Contracts\Database\ModelIdentifier":5:{s:5:"class";s:39:"Illuminate\Tests\Integration\Queue\User";s:2:"id";i:1;s:9:"relations";a:0:{}s:10:"connection";s:7:"testing";s:15:"collectionClass";N;}}', $serialized
'O:83:"Illuminate\Tests\Integration\Queue\ModelSerializationAttributeTargetsClassTestClass":2:{s:4:"user";O:45:"Illuminate\Contracts\Database\ModelIdentifier":5:{s:5:"class";s:39:"Illuminate\Tests\Integration\Queue\User";s:2:"id";i:1;s:9:"relations";a:0:{}s:10:"connection";s:7:"testing";s:15:"collectionClass";N;}s:5:"value";O:50:"Illuminate\Tests\Integration\Queue\DataValueObject":1:{s:5:"value";s:5:"hello";}}',
$serialized
);

/** @var ModelSerializationAttributeTargetsClassTestClass $unserialized */
$unserialized = unserialize($serialized);

$this->assertFalse($unserialized->user->relationLoaded('roles'));
$this->assertEquals('hello', $unserialized->value->value);
}

public function test_serialization_types_empty_custom_eloquent_collection()
Expand Down Expand Up @@ -549,10 +551,8 @@ class ModelSerializationAttributeTargetsClassTestClass
{
use SerializesModels;

public User $user;

public function __construct(User $user) {
$this->user = $user;
public function __construct(public User $user, public DataValueObject $value)
{
}
}

Expand All @@ -579,3 +579,10 @@ public function __construct($users)
$this->users = $users;
}
}

class DataValueObject
{
public function __construct(public $value = 1)
{
}
}

0 comments on commit 9063f03

Please sign in to comment.