2929 */
3030class CachedIdentifiersExtractorTest extends TestCase
3131{
32- public function identifiersProvider ()
32+ public function itemProvider ()
3333 {
34- yield [1 , 1 ];
35- yield [$ uuid = new Uuid (), $ uuid ->__toString ()];
34+ $ dummy = new Dummy ();
35+ $ dummy ->setId ($ id = 1 );
36+ yield [$ dummy , ['id ' => $ id ]];
37+
38+ $ dummy = new Dummy ();
39+ $ dummy ->setId ($ id = new Uuid ());
40+ yield [$ dummy , ['id ' => $ id ]];
3641 }
3742
3843 /**
39- * @dataProvider identifiersProvider
44+ * @dataProvider itemProvider
4045 */
41- public function testFirstPass ($ identifier , $ identifierValue )
46+ public function testFirstPass ($ item , $ expected )
4247 {
4348 $ key = 'iri_identifiers ' .md5 (Dummy::class);
4449
@@ -50,29 +55,25 @@ public function testFirstPass($identifier, $identifierValue)
5055 $ cacheItemPool ->getItem ($ key )->shouldBeCalled ()->willReturn ($ cacheItem );
5156 $ cacheItemPool ->save ($ cacheItem )->shouldBeCalled ();
5257
53- $ dummy = new Dummy ();
54- $ dummy ->setId ($ identifier );
55-
5658 $ decoration = $ this ->prophesize (IdentifiersExtractorInterface::class);
57- $ decoration ->getIdentifiersFromItem ($ dummy )->shouldBeCalled ()->willReturn ([ ' id ' => $ identifierValue ] );
59+ $ decoration ->getIdentifiersFromItem ($ item )->shouldBeCalled ()->willReturn ($ expected );
5860
5961 $ identifiersExtractor = new CachedIdentifiersExtractor ($ cacheItemPool ->reveal (), $ decoration ->reveal (), null , $ this ->getResourceClassResolver ());
6062
61- $ expectedResult = ['id ' => $ identifierValue ];
62- $ this ->assertEquals ($ expectedResult , $ identifiersExtractor ->getIdentifiersFromItem ($ dummy ));
63- $ this ->assertEquals ($ expectedResult , $ identifiersExtractor ->getIdentifiersFromItem ($ dummy ), 'Trigger the local cache ' );
63+ $ this ->assertSame ($ expected , $ identifiersExtractor ->getIdentifiersFromItem ($ item ));
64+ $ this ->assertSame ($ expected , $ identifiersExtractor ->getIdentifiersFromItem ($ item ), 'Trigger the local cache ' );
6465
6566 $ decoration ->getIdentifiersFromResourceClass (Dummy::class)->shouldBeCalled ()->willReturn (['id ' ]);
6667
6768 $ expectedResult = ['id ' ];
68- $ this ->assertEquals ($ expectedResult , $ identifiersExtractor ->getIdentifiersFromResourceClass (Dummy::class));
69- $ this ->assertEquals ($ expectedResult , $ identifiersExtractor ->getIdentifiersFromResourceClass (Dummy::class), 'Trigger the local cache ' );
69+ $ this ->assertSame ($ expectedResult , $ identifiersExtractor ->getIdentifiersFromResourceClass (Dummy::class));
70+ $ this ->assertSame ($ expectedResult , $ identifiersExtractor ->getIdentifiersFromResourceClass (Dummy::class), 'Trigger the local cache ' );
7071 }
7172
7273 /**
73- * @dataProvider identifiersProvider
74+ * @dataProvider itemProvider
7475 */
75- public function testSecondPass ($ identifier , $ identifierValue )
76+ public function testSecondPass ($ item , $ expected )
7677 {
7778 $ key = 'iri_identifiers ' .md5 (Dummy::class);
7879
@@ -83,20 +84,49 @@ public function testSecondPass($identifier, $identifierValue)
8384 $ cacheItemPool = $ this ->prophesize (CacheItemPoolInterface::class);
8485 $ cacheItemPool ->getItem ($ key )->shouldBeCalled ()->willReturn ($ cacheItem );
8586
86- $ dummy = new Dummy ();
87- $ dummy ->setId ($ identifier );
88-
8987 $ decoration = $ this ->prophesize (IdentifiersExtractorInterface::class);
90- $ decoration ->getIdentifiersFromItem ($ dummy )->shouldNotBeCalled ();
88+ $ decoration ->getIdentifiersFromItem ($ item )->shouldNotBeCalled ();
9189
9290 $ identifiersExtractor = new CachedIdentifiersExtractor ($ cacheItemPool ->reveal (), $ decoration ->reveal (), null , $ this ->getResourceClassResolver ());
9391
94- $ expectedResult = ['id ' => $ identifierValue ];
95- $ this ->assertEquals ($ expectedResult , $ identifiersExtractor ->getIdentifiersFromItem ($ dummy ));
96- $ this ->assertEquals ($ expectedResult , $ identifiersExtractor ->getIdentifiersFromItem ($ dummy ), 'Trigger the local cache ' );
92+ $ this ->assertSame ($ expected , $ identifiersExtractor ->getIdentifiersFromItem ($ item ));
93+ $ this ->assertSame ($ expected , $ identifiersExtractor ->getIdentifiersFromItem ($ item ), 'Trigger the local cache ' );
9794 }
9895
99- public function testFirstPassWithRelated ()
96+ public function identifiersRelatedProvider ()
97+ {
98+ $ related = new RelatedDummy ();
99+ $ related ->setId ($ relatedId = 2 );
100+
101+ $ dummy = new Dummy ();
102+ $ dummy ->setId ($ id = 1 );
103+ $ dummy ->setRelatedDummy ($ related );
104+
105+ yield [$ dummy , ['id ' => $ id , 'relatedDummy ' => $ relatedId ]];
106+
107+ $ related = new RelatedDummy ();
108+ $ related ->setId ($ relatedId = 1 );
109+
110+ $ dummy = new Dummy ();
111+ $ dummy ->setId ($ id = new Uuid ());
112+ $ dummy ->setRelatedDummy ($ related );
113+
114+ yield [$ dummy , ['id ' => $ id , 'relatedDummy ' => $ relatedId ]];
115+
116+ $ related = new RelatedDummy ();
117+ $ related ->setId ($ relatedId = new Uuid ());
118+
119+ $ dummy = new Dummy ();
120+ $ dummy ->setId ($ id = new Uuid ());
121+ $ dummy ->setRelatedDummy ($ related );
122+
123+ yield [$ dummy , ['id ' => $ id , 'relatedDummy ' => $ relatedId ]];
124+ }
125+
126+ /**
127+ * @dataProvider identifiersRelatedProvider
128+ */
129+ public function testFirstPassWithRelated ($ item , $ expected )
100130 {
101131 $ key = 'iri_identifiers ' .md5 (Dummy::class);
102132 $ keyRelated = 'iri_identifiers ' .md5 (RelatedDummy::class);
@@ -112,24 +142,19 @@ public function testFirstPassWithRelated()
112142 $ cacheItemPool ->getItem ($ key )->shouldBeCalled ()->willReturn ($ cacheItem );
113143 $ cacheItemPool ->getItem ($ keyRelated )->shouldBeCalled ()->willReturn ($ cacheItemRelated );
114144
115- $ related = new RelatedDummy ();
116- $ related ->setId (1 );
117-
118- $ dummy = new Dummy ();
119- $ dummy ->setId (1 );
120- $ dummy ->setRelatedDummy ($ related );
121-
122145 $ decoration = $ this ->prophesize (IdentifiersExtractorInterface::class);
123- $ decoration ->getIdentifiersFromItem ($ dummy )->shouldBeCalled ()->willReturn ([ ' id ' => 1 , ' relatedDummy ' => 1 ] );
146+ $ decoration ->getIdentifiersFromItem ($ item )->shouldBeCalled ()->willReturn ($ expected );
124147
125148 $ identifiersExtractor = new CachedIdentifiersExtractor ($ cacheItemPool ->reveal (), $ decoration ->reveal (), null , $ this ->getResourceClassResolver ());
126149
127- $ expectedResult = ['id ' => 1 , 'relatedDummy ' => 1 ];
128- $ this ->assertEquals (['id ' => 1 , 'relatedDummy ' => 1 ], $ identifiersExtractor ->getIdentifiersFromItem ($ dummy ));
129- $ this ->assertEquals ($ expectedResult , $ identifiersExtractor ->getIdentifiersFromItem ($ dummy ), 'Trigger the local cache ' );
150+ $ this ->assertSame ($ expected , $ identifiersExtractor ->getIdentifiersFromItem ($ item ));
151+ $ this ->assertSame ($ expected , $ identifiersExtractor ->getIdentifiersFromItem ($ item ), 'Trigger the local cache ' );
130152 }
131153
132- public function testSecondPassWithRelated ()
154+ /**
155+ * @dataProvider identifiersRelatedProvider
156+ */
157+ public function testSecondPassWithRelated ($ item , $ expected )
133158 {
134159 $ key = 'iri_identifiers ' .md5 (Dummy::class);
135160 $ keyRelated = 'iri_identifiers ' .md5 (RelatedDummy::class);
@@ -146,21 +171,13 @@ public function testSecondPassWithRelated()
146171 $ cacheItemPool ->getItem ($ key )->shouldBeCalled ()->willReturn ($ cacheItem );
147172 $ cacheItemPool ->getItem ($ keyRelated )->shouldBeCalled ()->willReturn ($ cacheItemRelated );
148173
149- $ related = new RelatedDummy ();
150- $ related ->setId (1 );
151-
152- $ dummy = new Dummy ();
153- $ dummy ->setId (1 );
154- $ dummy ->setRelatedDummy ($ related );
155-
156174 $ decoration = $ this ->prophesize (IdentifiersExtractorInterface::class);
157- $ decoration ->getIdentifiersFromItem ($ dummy )->shouldNotBeCalled ();
175+ $ decoration ->getIdentifiersFromItem ($ item )->shouldNotBeCalled ();
158176
159177 $ identifiersExtractor = new CachedIdentifiersExtractor ($ cacheItemPool ->reveal (), $ decoration ->reveal (), null , $ this ->getResourceClassResolver ());
160178
161- $ expectedResult = ['id ' => 1 , 'relatedDummy ' => 1 ];
162- $ this ->assertEquals ($ expectedResult , $ identifiersExtractor ->getIdentifiersFromItem ($ dummy ));
163- $ this ->assertEquals ($ expectedResult , $ identifiersExtractor ->getIdentifiersFromItem ($ dummy ), 'Trigger the local cache ' );
179+ $ this ->assertSame ($ expected , $ identifiersExtractor ->getIdentifiersFromItem ($ item ));
180+ $ this ->assertSame ($ expected , $ identifiersExtractor ->getIdentifiersFromItem ($ item ), 'Trigger the local cache ' );
164181 }
165182
166183 /**
0 commit comments