assertEquals([1, 2, 3], iterator_to_array($decorator)); } /** * Tests it toArray() method * * @return void */ public function testToArray() { $data = new \ArrayIterator([1, 2, 3]); $decorator = new ResultSetDecorator($data); $this->assertEquals([1, 2, 3], $decorator->toArray()); } /** * Tests json encoding method * * @return void */ public function testToJson() { $data = new \ArrayIterator([1, 2, 3]); $decorator = new ResultSetDecorator($data); $this->assertEquals(json_encode([1, 2, 3]), json_encode($decorator)); } /** * Tests serializing and unserializing the decorator * * @return void */ public function testSerialization() { $data = new \ArrayIterator([1, 2, 3]); $decorator = new ResultSetDecorator($data); $serialized = serialize($decorator); $this->assertEquals([1, 2, 3], unserialize($serialized)->toArray()); } /** * Test the first() method which is part of the ResultSet duck type. * * @return void */ public function testFirst() { $data = new \ArrayIterator([1, 2, 3]); $decorator = new ResultSetDecorator($data); $this->assertEquals(1, $decorator->first()); $this->assertEquals(1, $decorator->first()); } /** * Test the count() method which is part of the ResultSet duck type. * * @return void */ public function testCount() { $data = new \ArrayIterator([1, 2, 3]); $decorator = new ResultSetDecorator($data); $this->assertEquals(3, $decorator->count()); $this->assertCount(3, $decorator); } }