Skip to content

Commit a085366

Browse files
committed
[Validator] Fixed Constraint class to not destroy custom groups upon serialization
1 parent 0cc47b4 commit a085366

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

Constraint.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ public function getTargets()
274274
public function __sleep()
275275
{
276276
// Initialize "groups" option if it is not set
277-
$this->__get('groups');
277+
$this->groups;
278278

279279
return array_keys(get_object_vars($this));
280280
}

Tests/ConstraintTest.php

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -167,22 +167,34 @@ public function testSerialize()
167167
$this->assertEquals($constraint, $restoredConstraint);
168168
}
169169

170-
public function testSerializeInitializesGroupsOption()
170+
public function testSerializeInitializesGroupsOptionToDefault()
171171
{
172-
$constraintWithExplicitGroup = new ConstraintA(array(
172+
$constraint = new ConstraintA(array(
173+
'property1' => 'foo',
174+
'property2' => 'bar',
175+
));
176+
177+
$constraint = unserialize(serialize($constraint));
178+
179+
$expected = new ConstraintA(array(
173180
'property1' => 'foo',
174181
'property2' => 'bar',
175182
'groups' => 'Default',
176183
));
177184

178-
$constraintWithoutExplicitGroup = new ConstraintA(array(
185+
$this->assertEquals($expected, $constraint);
186+
}
187+
188+
public function testSerializeKeepsCustomGroups()
189+
{
190+
$constraint = new ConstraintA(array(
179191
'property1' => 'foo',
180192
'property2' => 'bar',
193+
'groups' => 'MyGroup',
181194
));
182195

183-
$constraintWithExplicitGroup = unserialize(serialize($constraintWithExplicitGroup));
184-
$constraintWithoutExplicitGroup = unserialize(serialize($constraintWithoutExplicitGroup));
196+
$constraint = unserialize(serialize($constraint));
185197

186-
$this->assertEquals($constraintWithExplicitGroup, $constraintWithoutExplicitGroup);
198+
$this->assertSame(array('MyGroup'), $constraint->groups);
187199
}
188200
}

0 commit comments

Comments
 (0)