Ejemplo n.º 1
0
 /**
  * @dataProvider getTestCollectionData
  */
 public function testCollection($item)
 {
     $collection = new Collection($item);
     // count
     $this->assertSame(2, $collection->count());
     // ArrayAccess test
     // isset
     $this->assertTrue(isset($collection['name']));
     $this->assertFalse(isset($collection['precious']));
     $this->assertFalse(isset($collection['foo']));
     // get
     $this->assertSame('dummy', $collection['name']);
     $this->assertSame(42, $collection['answer']);
     // set
     $collection['foo'] = 'bar';
     $this->assertTrue(isset($collection['foo']));
     $this->assertSame('bar', $collection['foo']);
     $this->assertSame(3, $collection->count());
     // unset
     unset($collection['foo']);
     $this->assertFalse(isset($collection['foo']));
     $this->assertSame(2, $collection->count());
     // Iterator test
     $this->assertInstanceOf('\\Traversable', $collection->getIterator());
     $out = [];
     foreach ($collection as $key => $value) {
         $out[$key] = $value;
     }
     $this->assertSame(['name' => 'dummy', 'answer' => 42], $out);
     // Reversed iterator test
     $this->assertInstanceOf('\\Traversable', $collection->getIteratorReversed());
     $out = [];
     foreach ($collection->getIteratorReversed() as $key => $value) {
         $out[$key] = $value;
     }
     $this->assertSame(['answer' => 42, 'name' => 'dummy'], $out);
     // toArray & value
     $this->assertSame(['name' => 'dummy', 'answer' => 42], $collection->toArray());
     $this->assertSame($collection->toArray(), $collection->value());
     $collection['foo'] = 'baz';
     // here we have one extra key-value pair
     $this->assertSame(['name' => 'dummy', 'answer' => 42, 'foo' => 'baz'], $collection->toArray());
     // collection wrapping
     $wrapped = new Collection($collection);
     $this->assertSame($collection->toArray(), $wrapped->toArray());
 }
Ejemplo n.º 2
0
 /**
  * Returns wrapped object
  *
  * @param Collection $collection
  * @return mixed
  */
 public function __invoke(Collection $collection)
 {
     return $collection->value();
 }