Elgg\Cache\LRUCacheTest::testOldestItemsGetDroppedWhenUnused PHP Method

testOldestItemsGetDroppedWhenUnused() public method

    public function testOldestItemsGetDroppedWhenUnused()
    {
        $pool = new LRUCache(4);
        // foo1 gets dropped
        $pool->set('foo1', 10);
        $pool->set('foo2', 20);
        $pool['foo3'] = 30;
        $pool['foo4'] = 40;
        $pool->set('foo5', 50);
        $this->assertEquals(null, $pool->get('foo1'));
        $this->assertFalse(isset($pool['foo1']));
        $this->assertEquals(20, $pool->get('foo2'));
        $this->assertEquals(30, $pool->get('foo3'));
        $this->assertEquals(40, $pool['foo4']);
        $this->assertEquals(50, $pool['foo5']);
        $this->assertEquals(4, $pool->size());
        // remove item using unset
        unset($pool['foo4']);
        $this->assertFalse(isset($pool['foo4']));
        $this->assertEquals(null, $pool['foo4']);
        $this->assertEquals(3, $pool->size());
        // remove item using method
        $this->assertEquals(20, $pool->remove('foo2'));
        $this->assertEquals(2, $pool->size());
        $this->assertEquals(null, $pool->remove('foo2'));
        // clear the cache
        $pool->clear();
        $this->assertEquals(null, $pool['foo2']);
        $this->assertEquals(0, $pool->size());
    }