/** * @test Functional */ public function findIdentifiersByTagReturnsAllIdentifiersTagedWithSpecifiedTag() { $this->setUpBackend(); $firstIdentifier = 'identifier' . uniqid(); $secondIdentifier = 'identifier' . uniqid(); $thirdIdentifier = 'identifier' . uniqid(); $tagsForFirstIdentifier = array('thisTag'); $tagsForSecondIdentifier = array('thatTag'); $tagsForThirdIdentifier = array('thisTag', 'thatTag'); $this->backend->set($firstIdentifier, 'data', $tagsForFirstIdentifier); $this->backend->set($secondIdentifier, 'data', $tagsForSecondIdentifier); $this->backend->set($thirdIdentifier, 'data', $tagsForThirdIdentifier); $expectedResult = array($firstIdentifier, $thirdIdentifier); $actualResult = $this->backend->findIdentifiersByTag('thisTag'); sort($actualResult); $this->assertSame($expectedResult, $actualResult); }
/** * @test */ public function removeRemovesEntryFromCache() { for ($i = 0; $i < 10; $i++) { $this->backend->set('entry_' . $i, 'foo', array('tag1')); } $this->assertCount(10, $this->backend->findIdentifiersByTag('tag1')); $this->assertEquals('foo', $this->backend->get('entry_1')); $actualEntries = array(); foreach ($this->backend as $key => $value) { $actualEntries[] = $key; } $this->assertCount(10, $actualEntries); $this->backend->remove('entry_3'); $this->assertCount(9, $this->backend->findIdentifiersByTag('tag1')); $this->assertFalse($this->backend->get('entry_3')); $actualEntries = array(); foreach ($this->backend as $key => $value) { $actualEntries[] = $key; } $this->assertCount(9, $actualEntries); }
/** * @test */ public function findIdentifiersByTagInvokesRedis() { $this->redis->expects($this->once())->method('sMembers')->with('Foo_Cache:tag:some_tag')->will($this->returnValue(array('entry_1', 'entry_2'))); $this->assertEquals(array('entry_1', 'entry_2'), $this->backend->findIdentifiersByTag('some_tag')); }