public function testTagable() { if (!$this->_storage instanceof TaggableInterface) { $this->markTestSkipped("Storage doesn't implement TaggableInterface"); } $this->assertSame(array(), $this->_storage->setItems(array('key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3'))); $this->assertTrue($this->_storage->setTags('key1', array('tag1a', 'tag1b'))); $this->assertTrue($this->_storage->setTags('key2', array('tag2a', 'tag2b'))); $this->assertTrue($this->_storage->setTags('key3', array('tag3a', 'tag3b'))); $this->assertFalse($this->_storage->setTags('missing', array('tag'))); // return tags $tags = $this->_storage->getTags('key1'); $this->assertInternalType('array', $tags); sort($tags); $this->assertSame(array('tag1a', 'tag1b'), $tags); // this should remove nothing $this->assertTrue($this->_storage->clearByTags(array('tag1a', 'tag2a'))); $this->assertTrue($this->_storage->hasItem('key1')); $this->assertTrue($this->_storage->hasItem('key2')); $this->assertTrue($this->_storage->hasItem('key3')); // this should remove key1 and key2 $this->assertTrue($this->_storage->clearByTags(array('tag1a', 'tag2b'), true)); $this->assertFalse($this->_storage->hasItem('key1')); $this->assertFalse($this->_storage->hasItem('key2')); $this->assertTrue($this->_storage->hasItem('key3')); // this should remove key3 $this->assertTrue($this->_storage->clearByTags(array('tag3a', 'tag3b'), true)); $this->assertFalse($this->_storage->hasItem('key1')); $this->assertFalse($this->_storage->hasItem('key2')); $this->assertFalse($this->_storage->hasItem('key3')); }
/** * @group 6878 */ public function testTaggableFunctionsOnEmptyStorage() { if (!$this->_storage instanceof TaggableInterface) { $this->markTestSkipped("Storage doesn't implement TaggableInterface"); } $this->assertFalse($this->_storage->setTags('unknown', ['no'])); $this->assertFalse($this->_storage->getTags('unknown')); $this->assertTrue($this->_storage->clearByTags(['unknown'])); }