Pinq\Tests\Integration\Traversable\GetIndexTest::testThatIndexesSupportObjectKeys PHP Method

testThatIndexesSupportObjectKeys() public method

public testThatIndexesSupportObjectKeys ( Pinq\ITraversable $traversable, array $data )
$traversable Pinq\ITraversable
$data array
    public function testThatIndexesSupportObjectKeys(\Pinq\ITraversable $traversable, array $data)
    {
        //Make object references
        $instances = [];
        foreach ($data as $key => $i) {
            $instances[$key] = (object) ['bar' => $key];
        }
        $traversable = $traversable->indexBy(function ($value, $key) use(&$instances) {
            return $instances[$key];
        });
        //Load instance keys
        $traversable->asArray();
        foreach ($data as $key => $value) {
            //Should be using object identity (reference type)
            $this->assertFalse(isset($traversable[(object) ['bar' => $key]]));
            $this->assertTrue(isset($traversable[$instances[$key]]));
            $this->assertSame($value, $traversable[$instances[$key]]);
        }
    }