コード例 #1
0
 /**
  * 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'));
 }