/** * Set array of items * If items already exists, they are replaced * * @access public * @param array $items */ public function setItems($items) { $existingItemsKeys = array_flip($this->cacheAdapter->hasItems(array_keys($items))); $existingItems = array_intersect_key($items, $existingItemsKeys); $nonExistingItems = array_diff_key($items, $existingItemsKeys); if (count($existingItems) > 0) { $this->cacheAdapter->replaceItems($existingItems); } if (count($nonExistingItems) > 0) { $this->cacheAdapter->setItems($nonExistingItems); } }
/** * @test */ public function delegatesReplaceItems() { $keyValuePairs = []; $this->storage->replaceItems($keyValuePairs)->willReturn(true); $return = $this->cache->replaceItems($keyValuePairs); $this->assertTrue($return); }
public function testReplaceItemsReturnsFailedKeys() { $this->assertTrue($this->_storage->setItem('key1', 'value1')); $failedKeys = $this->_storage->replaceItems(array('key1' => 'XYZ', 'key2' => 'value2')); $this->assertSame(array('key2'), $failedKeys); $this->assertSame('XYZ', $this->_storage->getItem('key1')); $this->assertFalse($this->_storage->hasItem('key2')); }
public function replaceItems(array $keyValuePairs) { return $this->storage->replaceItems($keyValuePairs); }