Mercurial > hg > cmmr2012-drupal-site
comparison core/modules/serialization/tests/src/Kernel/EntitySerializationTest.php @ 5:12f9dff5fda9 tip
Update to Drupal core 8.7.1
author | Chris Cannam |
---|---|
date | Thu, 09 May 2019 15:34:47 +0100 |
parents | a9cd425dd02b |
children |
comparison
equal
deleted
inserted
replaced
4:a9cd425dd02b | 5:12f9dff5fda9 |
---|---|
140 [ | 140 [ |
141 // id() will return the string value as it comes from the database. | 141 // id() will return the string value as it comes from the database. |
142 'target_id' => (int) $this->user->id(), | 142 'target_id' => (int) $this->user->id(), |
143 'target_type' => $this->user->getEntityTypeId(), | 143 'target_type' => $this->user->getEntityTypeId(), |
144 'target_uuid' => $this->user->uuid(), | 144 'target_uuid' => $this->user->uuid(), |
145 'url' => $this->user->url(), | 145 'url' => $this->user->toUrl()->toString(), |
146 ], | 146 ], |
147 ], | 147 ], |
148 'revision_id' => [ | 148 'revision_id' => [ |
149 ['value' => 1], | 149 ['value' => 1], |
150 ], | 150 ], |
222 'uuid' => '<uuid><value>' . $this->entity->uuid() . '</value></uuid>', | 222 'uuid' => '<uuid><value>' . $this->entity->uuid() . '</value></uuid>', |
223 'langcode' => '<langcode><value>en</value></langcode>', | 223 'langcode' => '<langcode><value>en</value></langcode>', |
224 'name' => '<name><value>' . $this->values['name'] . '</value></name>', | 224 'name' => '<name><value>' . $this->values['name'] . '</value></name>', |
225 'type' => '<type><value>entity_test_mulrev</value></type>', | 225 'type' => '<type><value>entity_test_mulrev</value></type>', |
226 'created' => '<created><value>' . $expected_created['value'] . '</value><format>' . $expected_created['format'] . '</format></created>', | 226 'created' => '<created><value>' . $expected_created['value'] . '</value><format>' . $expected_created['format'] . '</format></created>', |
227 'user_id' => '<user_id><target_id>' . $this->user->id() . '</target_id><target_type>' . $this->user->getEntityTypeId() . '</target_type><target_uuid>' . $this->user->uuid() . '</target_uuid><url>' . $this->user->url() . '</url></user_id>', | 227 'user_id' => '<user_id><target_id>' . $this->user->id() . '</target_id><target_type>' . $this->user->getEntityTypeId() . '</target_type><target_uuid>' . $this->user->uuid() . '</target_uuid><url>' . $this->user->toUrl()->toString() . '</url></user_id>', |
228 'revision_id' => '<revision_id><value>' . $this->entity->getRevisionId() . '</value></revision_id>', | 228 'revision_id' => '<revision_id><value>' . $this->entity->getRevisionId() . '</value></revision_id>', |
229 'default_langcode' => '<default_langcode><value>1</value></default_langcode>', | 229 'default_langcode' => '<default_langcode><value>1</value></default_langcode>', |
230 'revision_translation_affected' => '<revision_translation_affected><value>1</value></revision_translation_affected>', | 230 'revision_translation_affected' => '<revision_translation_affected><value>1</value></revision_translation_affected>', |
231 'non_mul_field' => '<non_mul_field/>', | 231 'non_mul_field' => '<non_mul_field/>', |
232 'non_rev_field' => '<non_rev_field/>', | 232 'non_rev_field' => '<non_rev_field/>', |
259 $this->assertIdentical($denormalized->bundle(), $this->entity->bundle(), 'Expected entity bundle found.'); | 259 $this->assertIdentical($denormalized->bundle(), $this->entity->bundle(), 'Expected entity bundle found.'); |
260 $this->assertIdentical($denormalized->uuid(), $this->entity->uuid(), 'Expected entity UUID found.'); | 260 $this->assertIdentical($denormalized->uuid(), $this->entity->uuid(), 'Expected entity UUID found.'); |
261 } | 261 } |
262 } | 262 } |
263 | 263 |
264 /** | |
265 * Tests denormalizing serialized columns. | |
266 */ | |
267 public function testDenormalizeSerializedItem() { | |
268 $this->setExpectedException(\LogicException::class, 'The generic FieldItemNormalizer cannot denormalize string values for "value" properties of the "serialized" field (field item class: Drupal\entity_test\Plugin\Field\FieldType\SerializedItem).'); | |
269 $this->serializer->denormalize([ | |
270 'serialized' => [ | |
271 [ | |
272 'value' => 'boo', | |
273 ], | |
274 ], | |
275 'type' => 'entity_test_serialized_field', | |
276 ], EntitySerializedField::class); | |
277 } | |
278 | |
279 /** | |
280 * Tests normalizing/denormalizing custom serialized columns. | |
281 */ | |
282 public function testDenormalizeCustomSerializedItem() { | |
283 $entity = EntitySerializedField::create(['serialized_text' => serialize(['Hello world!'])]); | |
284 $normalized = $this->serializer->normalize($entity); | |
285 $this->assertEquals($normalized['serialized_text'][0]['value'], ['Hello world!']); | |
286 $this->setExpectedException(\LogicException::class, 'The generic FieldItemNormalizer cannot denormalize string values for "value" properties of the "serialized_text" field (field item class: Drupal\entity_test\Plugin\Field\FieldType\SerializedPropertyItem).'); | |
287 $this->serializer->denormalize([ | |
288 'serialized_text' => [ | |
289 [ | |
290 'value' => 'boo', | |
291 ], | |
292 ], | |
293 'type' => 'entity_test_serialized_field', | |
294 ], EntitySerializedField::class); | |
295 } | |
296 | |
297 /** | |
298 * Tests normalizing/denormalizing invalid custom serialized fields. | |
299 */ | |
300 public function testDenormalizeInvalidCustomSerializedField() { | |
301 $entity = EntitySerializedField::create(['serialized_long' => serialize(['Hello world!'])]); | |
302 $normalized = $this->serializer->normalize($entity); | |
303 $this->assertEquals($normalized['serialized_long'][0]['value'], ['Hello world!']); | |
304 $this->setExpectedException(\LogicException::class, 'The generic FieldItemNormalizer cannot denormalize string values for "value" properties of the "serialized_long" field (field item class: Drupal\Core\Field\Plugin\Field\FieldType\StringLongItem).'); | |
305 $this->serializer->denormalize([ | |
306 'serialized_long' => [ | |
307 [ | |
308 'value' => 'boo', | |
309 ], | |
310 ], | |
311 'type' => 'entity_test_serialized_field', | |
312 ], EntitySerializedField::class); | |
313 } | |
314 | |
315 /** | |
316 * Tests normalizing/denormalizing empty custom serialized fields. | |
317 */ | |
318 public function testDenormalizeEmptyCustomSerializedField() { | |
319 $entity = EntitySerializedField::create(['serialized_long' => serialize([])]); | |
320 $normalized = $this->serializer->normalize($entity); | |
321 $this->assertEquals([], $normalized['serialized_long'][0]['value']); | |
322 | |
323 $entity = $this->serializer->denormalize($normalized, EntitySerializedField::class); | |
324 | |
325 $this->assertEquals(serialize([]), $entity->get('serialized_long')->value); | |
326 } | |
327 | |
328 /** | |
329 * Tests normalizing/denormalizing valid custom serialized fields. | |
330 */ | |
331 public function testDenormalizeValidCustomSerializedField() { | |
332 $entity = EntitySerializedField::create(['serialized_long' => serialize(['key' => 'value'])]); | |
333 $normalized = $this->serializer->normalize($entity); | |
334 $this->assertEquals(['key' => 'value'], $normalized['serialized_long'][0]['value']); | |
335 | |
336 $entity = $this->serializer->denormalize($normalized, EntitySerializedField::class); | |
337 | |
338 $this->assertEquals(serialize(['key' => 'value']), $entity->get('serialized_long')->value); | |
339 } | |
340 | |
341 /** | |
342 * Tests normalizing/denormalizing using string values. | |
343 */ | |
344 public function testDenormalizeStringValue() { | |
345 $this->setExpectedException(\LogicException::class, 'The generic FieldItemNormalizer cannot denormalize string values for "value" properties of the "serialized_long" field (field item class: Drupal\Core\Field\Plugin\Field\FieldType\StringLongItem).'); | |
346 $this->serializer->denormalize([ | |
347 'serialized_long' => ['boo'], | |
348 'type' => 'entity_test_serialized_field', | |
349 ], EntitySerializedField::class); | |
350 } | |
351 | |
264 } | 352 } |