19 declare(strict_types=1);
31 $node1 = $this->createMock(Handler::class);
32 $node2 = $this->createMock(Handler::class);
33 $node3 = $this->createMock(Handler::class);
35 $collection =
new Collection();
36 $collection = $collection->withElement($node1);
37 $collection = $collection->withElement($node2);
38 $collection = $collection->withElement($node3);
40 $collection2 = $collection->removeFirst();
41 $collection3 = $collection2->removeFirst();
42 $collection4 = $collection3->removeFirst();
44 $this->assertEquals($node1, $collection->getFirst());
45 $this->assertEquals($node2, $collection2->getFirst());
46 $this->assertEquals($node3, $collection3->getFirst());
48 $this->assertCount(3, $collection);
49 $this->assertCount(2, $collection2);
50 $this->assertCount(1, $collection3);
51 $this->assertCount(0, $collection4);