assertFalse($queue->hasNext()); $queue->append($items); $queue->append(3); $this->assertTrue($queue->hasNext()); $this->assertSame(1, $queue->next()); $this->assertTrue($queue->hasNext()); $this->assertSame(2, $queue->next()); $this->assertTrue($queue->hasNext()); $this->assertSame(3, $queue->next()); $this->assertFalse($queue->hasNext()); $this->assertNull($queue->next()); $queue->append($itemGenerator()); $this->assertTrue($queue->hasNext()); $this->assertSame(5, $queue->next()); $this->assertTrue($queue->hasNext()); $this->assertSame(6, $queue->next()); $this->assertFalse($queue->hasNext()); $queue->append([]); $this->assertFalse($queue->hasNext()); } public function testReset() { $items = [1, 2]; $queue = new Queue(); $queue->append($items); $this->assertTrue($queue->hasNext()); $this->assertSame(1, $queue->next()); $this->assertTrue($queue->hasNext()); $queue->reset(); $this->assertFalse($queue->hasNext()); $this->assertNull($queue->next()); } }