@@ -116,8 +116,8 @@ public function dataProvider()
116
116
['4126dbc1-488e-4f6e-aadd-775dcbac482e ' , UuidV4::class],
117
117
['18cdf3d3-ea1b-5b23-a9c5-40abd0e2df22 ' , UuidV5::class],
118
118
['1ea6ecef-eb9a-66fe-b62b-957b45f17e43 ' , UuidV6::class],
119
- ['1ea6ecef-eb9a-66fe-b62b-957b45f17e43 ' , AbstractUid::class],
120
119
['01E4BYF64YZ97MDV6RH0HAMN6X ' , Ulid::class],
120
+ ['01FPT3YXZXJ1J437FES7CR5BCB ' , TestCustomUid::class],
121
121
];
122
122
}
123
123
@@ -134,16 +134,32 @@ public function testSupportsDenormalizationForNonUid()
134
134
$ this ->assertFalse ($ this ->normalizer ->supportsDenormalization ('foo ' , \stdClass::class));
135
135
}
136
136
137
+ public function testSupportOurAbstractUid ()
138
+ {
139
+ $ this ->assertTrue ($ this ->normalizer ->supportsDenormalization ('1ea6ecef-eb9a-66fe-b62b-957b45f17e43 ' , AbstractUid::class));
140
+ }
141
+
142
+ public function testSupportCustomAbstractUid ()
143
+ {
144
+ $ this ->assertTrue ($ this ->normalizer ->supportsDenormalization ('ccc ' , TestAbstractCustomUid::class));
145
+ }
146
+
137
147
/**
138
148
* @dataProvider dataProvider
139
149
*/
140
150
public function testDenormalize ($ uuidString , $ class )
141
151
{
142
- if (Ulid::class === $ class ) {
143
- $ this ->assertEquals (new Ulid ($ uuidString ), $ this ->normalizer ->denormalize ($ uuidString , $ class ));
144
- } else {
145
- $ this ->assertEquals (Uuid::fromString ($ uuidString ), $ this ->normalizer ->denormalize ($ uuidString , $ class ));
146
- }
152
+ $ this ->assertEquals ($ class ::fromString ($ uuidString ), $ this ->normalizer ->denormalize ($ uuidString , $ class ));
153
+ }
154
+
155
+ public function testDenormalizeOurAbstractUid ()
156
+ {
157
+ $ this ->assertEquals (Uuid::fromString ($ uuidString = '1ea6ecef-eb9a-66fe-b62b-957b45f17e43 ' ), $ this ->normalizer ->denormalize ($ uuidString , AbstractUid::class));
158
+ }
159
+
160
+ public function testDenormalizeCustomAbstractUid ()
161
+ {
162
+ $ this ->assertEquals (Uuid::fromString ($ uuidString = '1ea6ecef-eb9a-66fe-b62b-957b45f17e43 ' ), $ this ->normalizer ->denormalize ($ uuidString , TestAbstractCustomUid::class));
147
163
}
148
164
149
165
public function testNormalizeWithNormalizationFormatPassedInConstructor ()
@@ -169,3 +185,11 @@ public function testNormalizeWithNormalizationFormatNotValid()
169
185
]);
170
186
}
171
187
}
188
+
189
+ class TestCustomUid extends Ulid
190
+ {
191
+ }
192
+
193
+ abstract class TestAbstractCustomUid extends Ulid
194
+ {
195
+ }
0 commit comments