Пример #1
0
    public function testSetGetHasAndRemoveItemsWithSpecificNamespace()
    {
        $this->_options->setNamespace('defaultns');

        $items = array(
            'key1' => 'value1',
            'key2' => 'value2',
            'key3' => 'value3',
        );

        $this->assertSame(array(), $this->_storage->setItems($items, array('namespace' => 'specificns')));
        $this->assertEquals(array(),  $this->_storage->hasItems(array_keys($items)));

        $rs = $this->_storage->getItems(array_keys($items), array('namespace' => 'specificns'));
        $this->assertInternalType('array', $rs);
        foreach ($items as $key => $value) {
            $this->assertArrayHasKey($key, $rs);
            $this->assertEquals($value, $rs[$key]);
        }


        $rs = $this->_storage->hasItems(array_keys($items), array('namespace' => 'specificns'));
        $this->assertInternalType('array', $rs);
        $this->assertEquals(count($items), count($rs));
        foreach ($items as $key => $value) {
            $this->assertContains($key, $rs);
        }

        // remove the first and the last item
        $this->assertSame(array('missing'), $this->_storage->removeItems(array('missing', 'key1', 'key3'), array('namespace' => 'specificns')));
        unset($items['key1'], $items['key3']);

        $rs = $this->_storage->getItems(array_keys($items), array('namespace' => 'specificns'));
        $this->assertInternalType('array', $rs);
        foreach ($items as $key => $value) {
            $this->assertArrayHasKey($key, $rs);
            $this->assertEquals($value, $rs[$key]);
        }

        $rs = $this->_storage->hasItems(array_keys($items), array('namespace' => 'specificns'));
        $this->assertInternalType('array', $rs);
        $this->assertEquals(count($items), count($rs));
        foreach ($items as $key => $value) {
            $this->assertContains($key, $rs);
        }
    }