@@ -224,4 +224,47 @@ public function testCanGetFromParsablePageObject(): void
224224 $ this ->assertEquals (2 , $ count );
225225 $ this ->assertInstanceOf (User::class, $ data [0 ]);
226226 }
227+
228+ public function testHasNextIsFalseWithEmptyOrNullInitialCollection (): void
229+ {
230+ $ pageIterator = new PageIterator ([], $ this ->mockRequestAdapter );
231+ $ this ->assertFalse ($ pageIterator ->hasNext ());
232+
233+ $ pageIterator = new PageIterator ([1 , 2 , 3 ], $ this ->mockRequestAdapter );
234+ $ this ->assertFalse ($ pageIterator ->hasNext ());
235+
236+ $ pageIterator = new PageIterator (['value ' => []], $ this ->mockRequestAdapter );
237+ $ this ->assertFalse ($ pageIterator ->hasNext ());
238+
239+ $ pageIterator = new PageIterator (['value ' => null ], $ this ->mockRequestAdapter );
240+ $ this ->assertFalse ($ pageIterator ->hasNext ());
241+
242+ $ pageIterator = new PageIterator ((object ) [], $ this ->mockRequestAdapter );
243+ $ this ->assertFalse ($ pageIterator ->hasNext ());
244+
245+ $ pageIterator = new PageIterator ((object ) [1 , 2 ], $ this ->mockRequestAdapter );
246+ $ this ->assertFalse ($ pageIterator ->hasNext ());
247+
248+ $ pageIterator = new PageIterator ((object ) [], $ this ->mockRequestAdapter );
249+ $ this ->assertFalse ($ pageIterator ->hasNext ());
250+
251+ $ usersResponse = new UsersResponse ();
252+ $ usersResponse ->setValue ([]);
253+ $ pageIterator = new PageIterator ($ usersResponse , $ this ->mockRequestAdapter );
254+ $ this ->assertFalse ($ pageIterator ->hasNext ());
255+ }
256+
257+ public function testHasNextInitialisedToTrueWhenValueHasItems (): void
258+ {
259+ $ pageIterator = new PageIterator (['value ' => [1 , 2 , 3 ]], $ this ->mockRequestAdapter );
260+ $ this ->assertTrue ($ pageIterator ->hasNext ());
261+
262+ $ pageIterator = new PageIterator ((object ) ['value ' => [1 ]], $ this ->mockRequestAdapter );
263+ $ this ->assertTrue ($ pageIterator ->hasNext ());
264+
265+ $ usersResponse = new UsersResponse ();
266+ $ usersResponse ->setValue ([1 , 2 ]);
267+ $ pageIterator = new PageIterator ($ usersResponse , $ this ->mockRequestAdapter );
268+ $ this ->assertTrue ($ pageIterator ->hasNext ());
269+ }
227270}
0 commit comments