/** * Test the 'get', 'getAllKeys' and 'set' methods. */ public function testGetSet() { $mock = new MemcachedMock(); $this->assertFalse($mock->getExpiry('not_in_cache')); $this->assertFalse($mock->getAllKeys()); $this->assertFalse($mock->get('a')); $this->assertFalse($mock->set('a', 'b')); $this->assertFalse($mock->set('a', 'b', 1)); $this->assertFalse($mock->getMulti(['a', 'b'])); $this->assertFalse($mock->setMulti(['a' => 1, 'b' => 2])); $this->assertFalse($mock->deleteMulti(['a', 'b'])); $testKey = 'abc123'; $testValue = 'some value'; $testKey1 = 'def456'; $testValue1 = 'some other value'; $key257 = 'abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdX'; $mock = $this->getMemcachedMock(); $mock->setThrowExceptionsOnFailure(false); $this->assertFalse($mock->get(null)); $this->assertFalse($mock->set(null, 'b', 1)); $this->assertFalse($mock->set('a', 'b', 'test')); $this->assertFalse($mock->set('a', xml_parser_create(''))); $this->assertFalse($mock->getMulti(['a', null])); $this->assertFalse($mock->setMulti([$key257 => $testValue1])); $this->assertFalse($mock->deleteMulti([$key257])); $mock->setThrowExceptionsOnFailure(true); $keys = $mock->getAllKeys(); $this->assertInternalType('array', $keys); $this->assertCount(0, $keys); $this->assertTrue($mock->set($testKey, $testValue)); $this->assertSame($testValue, $mock->get($testKey)); $this->assertTrue($mock->set($testKey1, $testValue1, time())); $this->assertSame($testValue1, $mock->get($testKey1)); $keys = $mock->getAllKeys(); $multi = $mock->getMulti([$testKey1, $testKey]); $this->assertInternalType('array', $keys); $this->assertCount(2, $keys); $this->assertTrue(in_array($testKey, $keys, true)); $this->assertTrue(in_array($testKey1, $keys, true)); $this->assertInternalType('array', $multi); /* @var array $multi */ $this->assertCount(2, $multi); $this->assertArrayHasKey($testKey, $multi); $this->assertSame($testValue, $multi[$testKey]); $this->assertArrayHasKey($testKey1, $multi); $this->assertSame($testValue1, $multi[$testKey1]); $this->assertTrue($mock->delete($testKey)); $keys = $mock->getAllKeys(); $this->assertCount(1, $keys); $this->assertFalse($mock->get($testKey)); $this->assertSame($testValue1, $mock->get($testKey1)); sleep(1); $this->assertFalse($mock->get($testKey1)); $keys = $mock->getAllKeys(); $this->assertCount(0, $keys); $expiration = time() + 10; $this->assertTrue($mock->setMulti([$testKey => $testValue, $testKey1 => $testValue1], $expiration)); $multi = $mock->getMulti([$testKey1, $testKey]); $this->assertSame($testValue, $multi[$testKey]); $this->assertSame($expiration, $mock->getExpiry($testKey)); $this->assertSame($testValue1, $multi[$testKey1]); $this->assertSame($expiration, $mock->getExpiry($testKey1)); $this->assertTrue($mock->deleteMulti([$testKey1, $testKey])); $this->assertFalse($mock->get($testKey1)); $this->assertFalse($mock->get($testKey)); $this->assertTrue($mock->deleteMulti([])); $this->assertTrue($mock->setMulti([])); $multi = $mock->getMulti(['f', 'e', 'd']); $this->assertInternalType('array', $multi); $this->assertCount(0, $multi); $expiration = 3600; $this->assertTrue($mock->set($testKey1, $testValue1, $expiration)); $this->assertSame(time() + $expiration, $mock->getExpiry($testKey1)); $this->assertTrue($mock->set('a1', 'b')); $this->assertSame(0, $mock->getExpiry('a1')); $this->assertTrue($mock->set('a1', 'b', 100)); $this->assertSame(time() + 100, $mock->getExpiry('a1')); $this->assertTrue($mock->add('a2', 'b')); $this->assertSame(0, $mock->getExpiry('a2')); $this->assertSame(1, $mock->decrement('a3', 1, 1)); $this->assertSame(0, $mock->getExpiry('a3')); $this->assertSame(1, $mock->get('a3')); }