1010use PHPUnit \Framework \TestCase ;
1111use Psr \Log \LoggerInterface ;
1212use Symfony \Component \Cache \Adapter \AdapterInterface ;
13- use Symfony \Contracts \Cache \ItemInterface ;
13+ use Symfony \Component \Cache \Adapter \ ArrayAdapter ;
1414
1515final class CachingEnvironmentRepositoryTest extends TestCase
1616{
1717 public function testAll (): void
1818 {
1919 $ logger = $ this ->createMock (LoggerInterface::class);
2020
21- $ adapter = $ this ->createAdapterWithItem (
22- $ this ->createCacheItem ('nusje2000_feature_toggle.environment._all ' , null , true )
23- );
21+ $ adapter = new ArrayAdapter ();
2422
2523 $ wrapped = $ this ->createMock (EnvironmentRepository::class);
2624 $ wrapped ->expects (self ::once ())->method ('all ' )->willReturn ([
@@ -37,11 +35,10 @@ public function testAllWithCachedItem(): void
3735 {
3836 $ logger = $ this ->createMock (LoggerInterface::class);
3937
40- $ adapter = $ this ->createAdapterWithItem (
41- $ this ->createCacheItem ('nusje2000_feature_toggle.environment._all ' , [
42- $ this ->createEnvironment (),
43- ], false )
44- );
38+ $ adapter = new ArrayAdapter ();
39+ $ item = $ adapter ->getItem ('nusje2000_feature_toggle.environment._all ' );
40+ $ item ->set ([$ this ->createEnvironment ()]);
41+ $ adapter ->save ($ item );
4542
4643 $ wrapped = $ this ->createMock (EnvironmentRepository::class);
4744 $ wrapped ->expects (self ::never ())->method ('all ' );
@@ -56,9 +53,10 @@ public function testAllWithInvalidCachedItem(): void
5653 {
5754 $ logger = $ this ->createMock (LoggerInterface::class);
5855
59- $ adapter = $ this ->createAdapterWithItem (
60- $ this ->createCacheItem ('nusje2000_feature_toggle.environment._all ' , 1 , true )
61- );
56+ $ adapter = new ArrayAdapter ();
57+ $ item = $ adapter ->getItem ('nusje2000_feature_toggle.environment._all ' );
58+ $ item ->set (1 );
59+ $ adapter ->save ($ item );
6260
6361 $ wrapped = $ this ->createMock (EnvironmentRepository::class);
6462 $ wrapped ->expects (self ::once ())->method ('all ' )->willReturn ([
@@ -75,9 +73,10 @@ public function testAllWithInvalidArrayItemInCache(): void
7573 {
7674 $ logger = $ this ->createMock (LoggerInterface::class);
7775
78- $ adapter = $ this ->createAdapterWithItem (
79- $ this ->createCacheItem ('nusje2000_feature_toggle.environment._all ' , [1 ], true )
80- );
76+ $ adapter = new ArrayAdapter ();
77+ $ item = $ adapter ->getItem ('nusje2000_feature_toggle.environment._all ' );
78+ $ item ->set ([1 ]);
79+ $ adapter ->save ($ item );
8180
8281 $ wrapped = $ this ->createMock (EnvironmentRepository::class);
8382 $ wrapped ->expects (self ::once ())->method ('all ' )->willReturn ([
@@ -94,9 +93,7 @@ public function testFind(): void
9493 {
9594 $ logger = $ this ->createMock (LoggerInterface::class);
9695
97- $ adapter = $ this ->createAdapterWithItem (
98- $ this ->createCacheItem ('nusje2000_feature_toggle.environment.some_env ' , null , true )
99- );
96+ $ adapter = new ArrayAdapter ();
10097
10198 $ wrapped = $ this ->createMock (EnvironmentRepository::class);
10299 $ wrapped ->expects (self ::once ())->method ('find ' )->willReturn ($ this ->createEnvironment ());
@@ -109,9 +106,10 @@ public function testFindWithCachedItem(): void
109106 {
110107 $ logger = $ this ->createMock (LoggerInterface::class);
111108
112- $ adapter = $ this ->createAdapterWithItem (
113- $ this ->createCacheItem ('nusje2000_feature_toggle.environment.some_env ' , $ this ->createEnvironment (), false )
114- );
109+ $ adapter = new ArrayAdapter ();
110+ $ item = $ adapter ->getItem ('nusje2000_feature_toggle.environment.some_env ' );
111+ $ item ->set ($ this ->createEnvironment ());
112+ $ adapter ->save ($ item );
115113
116114 $ wrapped = $ this ->createMock (EnvironmentRepository::class);
117115 $ wrapped ->expects (self ::never ())->method ('find ' );
@@ -124,9 +122,10 @@ public function testFindWithInvalidCachedItem(): void
124122 {
125123 $ logger = $ this ->createMock (LoggerInterface::class);
126124
127- $ adapter = $ this ->createAdapterWithItem (
128- $ this ->createCacheItem ('nusje2000_feature_toggle.environment.some_env ' , 1 , true )
129- );
125+ $ adapter = new ArrayAdapter ();
126+ $ item = $ adapter ->getItem ('nusje2000_feature_toggle.environment.some_env ' );
127+ $ item ->set (1 );
128+ $ adapter ->save ($ item );
130129
131130 $ wrapped = $ this ->createMock (EnvironmentRepository::class);
132131 $ wrapped ->expects (self ::once ())->method ('find ' )->willReturn ($ this ->createEnvironment ());
@@ -139,9 +138,7 @@ public function testExists(): void
139138 {
140139 $ logger = $ this ->createMock (LoggerInterface::class);
141140
142- $ adapter = $ this ->createAdapterWithItem (
143- $ this ->createCacheItem ('nusje2000_feature_toggle.environment._exists.some_env ' , null , true )
144- );
141+ $ adapter = new ArrayAdapter ();
145142
146143 $ wrapped = $ this ->createMock (EnvironmentRepository::class);
147144 $ wrapped ->expects (self ::once ())->method ('exists ' )->willReturn (true );
@@ -154,9 +151,10 @@ public function testExistsWithCachedItem(): void
154151 {
155152 $ logger = $ this ->createMock (LoggerInterface::class);
156153
157- $ adapter = $ this ->createAdapterWithItem (
158- $ this ->createCacheItem ('nusje2000_feature_toggle.environment._exists.some_env ' , true , false )
159- );
154+ $ adapter = new ArrayAdapter ();
155+ $ item = $ adapter ->getItem ('nusje2000_feature_toggle.environment._exists.some_env ' );
156+ $ item ->set (true );
157+ $ adapter ->save ($ item );
160158
161159 $ wrapped = $ this ->createMock (EnvironmentRepository::class);
162160 $ wrapped ->expects (self ::never ())->method ('exists ' );
@@ -169,9 +167,10 @@ public function testExistsWithInvalidCachedItem(): void
169167 {
170168 $ logger = $ this ->createMock (LoggerInterface::class);
171169
172- $ adapter = $ this ->createAdapterWithItem (
173- $ this ->createCacheItem ('nusje2000_feature_toggle.environment._exists.some_env ' , 1 , true )
174- );
170+ $ adapter = new ArrayAdapter ();
171+ $ item = $ adapter ->getItem ('nusje2000_feature_toggle.environment._exists.some_env ' );
172+ $ item ->set (1 );
173+ $ adapter ->save ($ item );
175174
176175 $ wrapped = $ this ->createMock (EnvironmentRepository::class);
177176 $ wrapped ->expects (self ::once ())->method ('exists ' )->willReturn (true );
@@ -195,28 +194,6 @@ public function testAdd(): void
195194 $ repository ->add ($ this ->createEnvironment ());
196195 }
197196
198- private function createAdapterWithItem (ItemInterface $ item ): AdapterInterface
199- {
200- $ adapter = $ this ->createMock (AdapterInterface::class);
201- $ adapter ->expects (self ::once ())->method ('getItem ' )->with ($ item ->getKey ())->willReturn ($ item );
202-
203- return $ adapter ;
204- }
205-
206- /**
207- * @param mixed $value
208- */
209- private function createCacheItem (string $ key , $ value , bool $ expectUpdate ): ItemInterface
210- {
211- $ item = $ this ->createMock (ItemInterface::class);
212- $ item ->method ('getKey ' )->willReturn ($ key );
213- $ item ->method ('isHit ' )->willReturn (null !== $ value );
214- $ item ->method ('get ' )->willReturn ($ value );
215- $ item ->expects ($ expectUpdate ? self ::once () : self ::never ())->method ('set ' );
216-
217- return $ item ;
218- }
219-
220197 private function createEnvironment (): Environment
221198 {
222199 return $ this ->createStub (Environment::class);
0 commit comments