22
33namespace Drupal \Tests \jsonld \Kernel ;
44
5- use Drupal \entity_test \Entity \EntityTest ;
65use Drupal \field \Entity \FieldConfig ;
76use Drupal \field \Entity \FieldStorageConfig ;
87use Drupal \jsonld \Encoder \JsonldEncoder ;
1413use Drupal \KernelTests \KernelTestBase ;
1514use Drupal \serialization \EntityResolver \ChainEntityResolver ;
1615use Drupal \serialization \EntityResolver \TargetIdResolver ;
17- use Drupal \user \Entity \User ;
1816use Symfony \Component \Serializer \Serializer ;
1917use Drupal \language \Entity \ConfigurableLanguage ;
2018
@@ -141,6 +139,9 @@ protected function setUp() : void {
141139 ])->setFieldMapping ('field_test_entity_reference ' , [
142140 'properties ' => ['dc:references ' ],
143141 'datatype ' => 'xsd:nonNegativeInteger ' ,
142+ ])->setFieldMapping ('field_test_entity_reference2 ' , [
143+ 'properties ' => ['dc:publisher ' ],
144+ 'datatype ' => 'xsd:nonNegativeInteger ' ,
144145 ])
145146 ->save ();
146147
@@ -174,6 +175,23 @@ protected function setUp() : void {
174175 'translatable ' => FALSE ,
175176 ])->save ();
176177
178+ // Create the a second test entity reference field.
179+ FieldStorageConfig::create ([
180+ 'field_name ' => 'field_test_entity_reference2 ' ,
181+ 'entity_type ' => 'entity_test ' ,
182+ 'type ' => 'entity_reference ' ,
183+ 'translatable ' => FALSE ,
184+ 'settings ' => [
185+ 'target_type ' => 'entity_test ' ,
186+ ],
187+ ])->save ();
188+ FieldConfig::create ([
189+ 'entity_type ' => 'entity_test ' ,
190+ 'field_name ' => 'field_test_entity_reference2 ' ,
191+ 'bundle ' => 'entity_test ' ,
192+ 'translatable ' => FALSE ,
193+ ])->save ();
194+
177195 $ entity_manager = \Drupal::service ('entity_type.manager ' );
178196 $ link_manager = \Drupal::service ('hal.link_manager ' );
179197 $ uuid_resolver = \Drupal::service ('serializer.entity_resolver.uuid ' );
@@ -199,127 +217,4 @@ protected function setUp() : void {
199217 $ this ->serializer = new Serializer ($ normalizers , $ encoders );
200218 }
201219
202- /**
203- * Generate a test entity and the expected normalized array.
204- *
205- * @return array
206- * with [ the entity, the normalized array ].
207- *
208- * @throws \Drupal\Core\Entity\EntityStorageException
209- * Problem saving the entity.
210- * @throws \Exception
211- * Problem creating a DateTime.
212- */
213- protected function generateTestEntity () {
214- $ target_entity = EntityTest::create ([
215- 'name ' => $ this ->randomMachineName (),
216- 'langcode ' => 'en ' ,
217- 'field_test_entity_reference ' => NULL ,
218- ]);
219- $ target_entity ->getFieldDefinition ('created ' )->setTranslatable (FALSE );
220- $ target_entity ->getFieldDefinition ('user_id ' )->setTranslatable (FALSE );
221- $ target_entity ->save ();
222-
223- $ target_user = User::create ([
224- 'name ' => $ this ->randomMachineName (),
225- 'langcode ' => 'en ' ,
226- ]);
227- $ target_user ->save ();
228-
229- rdf_get_mapping ('entity_test ' , 'entity_test ' )->setBundleMapping (
230- [
231- 'types ' => [
232- "schema:ImageObject " ,
233- ],
234- ])->setFieldMapping ('field_test_text ' , [
235- 'properties ' => ['dc:description ' ],
236- ])->setFieldMapping ('user_id ' , [
237- 'properties ' => ['schema:author ' ],
238- ])->setFieldMapping ('modified ' , [
239- 'properties ' => ['schema:dateModified ' ],
240- 'datatype ' => 'xsd:dateTime ' ,
241- ])->save ();
242-
243- $ tz = new \DateTimeZone ('UTC ' );
244- $ dt = new \DateTime (NULL , $ tz );
245- $ created = $ dt ->format ("U " );
246- $ created_iso = $ dt ->format (\DateTime::W3C );
247- // Create an entity.
248- $ values = [
249- 'langcode ' => 'en ' ,
250- 'name ' => $ this ->randomMachineName (),
251- 'type ' => 'entity_test ' ,
252- 'bundle ' => 'entity_test ' ,
253- 'user_id ' => $ target_user ->id (),
254- 'created ' => [
255- 'value ' => $ created ,
256- ],
257- 'field_test_text ' => [
258- 'value ' => $ this ->randomMachineName (),
259- 'format ' => 'full_html ' ,
260- ],
261- 'field_test_entity_reference ' => [
262- 'target_id ' => $ target_entity ->id (),
263- ],
264- ];
265-
266- $ entity = EntityTest::create ($ values );
267- $ entity ->save ();
268-
269- $ id = "http://localhost/entity_test/ " . $ entity ->id () . "?_format=jsonld " ;
270- $ target_id = "http://localhost/entity_test/ " . $ target_entity ->id () . "?_format=jsonld " ;
271- $ user_id = "http://localhost/user/ " . $ target_user ->id () . "?_format=jsonld " ;
272-
273- $ expected = [
274- "@graph " => [
275- [
276- "@id " => $ id ,
277- "@type " => [
278- 'http://schema.org/ImageObject ' ,
279- ],
280- "http://purl.org/dc/terms/references " => [
281- [
282- "@id " => $ target_id ,
283- ],
284- ],
285- "http://purl.org/dc/terms/description " => [
286- [
287- "@value " => $ values ['field_test_text ' ]['value ' ],
288- "@language " => "en " ,
289- ],
290- ],
291- "http://purl.org/dc/terms/title " => [
292- [
293- "@language " => "en " ,
294- "@value " => $ values ['name ' ],
295- ],
296- ],
297- "http://schema.org/author " => [
298- [
299- "@id " => $ user_id ,
300- ],
301- ],
302- "http://schema.org/dateCreated " => [
303- [
304- "@type " => "http://www.w3.org/2001/XMLSchema#dateTime " ,
305- "@value " => $ created_iso ,
306- ],
307- ],
308- ],
309- [
310- "@id " => $ user_id ,
311- "@type " => "http://localhost/rest/type/user/user " ,
312- ],
313- [
314- "@id " => $ target_id ,
315- "@type " => [
316- "http://schema.org/ImageObject " ,
317- ],
318- ],
319- ],
320- ];
321-
322- return [$ entity , $ expected ];
323- }
324-
325220}
0 commit comments