Pinq\Tests\Integration\Scheme\OrderedMapTest::testThatOrderedMapUsesArrayIdentity PHP Метод

testThatOrderedMapUsesArrayIdentity() публичный Метод

public testThatOrderedMapUsesArrayIdentity ( Pinq\Iterators\IOrderedMap $orderedMap )
$orderedMap Pinq\Iterators\IOrderedMap
    public function testThatOrderedMapUsesArrayIdentity(IOrderedMap $orderedMap)
    {
        $keys = ['ints' => [1, 2, 3], 'reversedInts' => [3, 2, 1], 'intsWithArray' => [1, 2, [3]], 'intsWithString' => [1, '2', 3], 'instance1' => [1, 2, new \stdClass()], 'instance2' => [1, 2, new \stdClass()], 'resource1' => [fopen('php://memory', 'r+'), 2, 3], 'resource2' => [fopen('php://memory', 'r+'), 2, 3]];
        foreach ($keys as $name => $key) {
            $orderedMap->set($key, $name);
        }
        foreach ($keys as $name => $key) {
            $this->assertSame($name, $orderedMap->get($key));
        }
        $array = $this->orderedMapKeyValues();
        $identicalArray = $array;
        $originalInstance = $array['instance'];
        $nonIdenticalArray = $array;
        $nonIdenticalArray['instance'] = new \stdClass();
        $anotherIdenticalArray = $nonIdenticalArray;
        $anotherIdenticalArray['instance'] = $originalInstance;
        $instance = new \stdClass();
        $orderedMap->set($array, $instance);
        $this->assertTrue($orderedMap->contains($identicalArray));
        $this->assertSame($instance, $orderedMap->get($identicalArray));
        $this->assertFalse($orderedMap->contains($nonIdenticalArray));
        $this->assertNull($orderedMap->get($nonIdenticalArray));
        $this->assertTrue($orderedMap->contains($anotherIdenticalArray));
        $this->assertSame($instance, $orderedMap->get($anotherIdenticalArray));
    }