Example #1
0
 /**
  * Method for deletion keys by template
  *
  * ATTENTION: if key contains spaces, for example 'THIS IS KEY::ID:50d98ld',
  * then in cache it will be saved as 'THIS_IS_KEY::ID:50d98ld'. So, template
  * for that key deletion must be look like - 'THIS_IS_KEY'.
  * Deletion can be made by substring, containing in keys. For example
  * '_KEY::ID'.
  *
  * @param string $tpl Substring containing in needed keys
  * @return bool
  */
 public function delByTemplate($tpl)
 {
     try {
         $cache = new MemcacheRaw();
         $cache->delByTemplate($tpl)->disconnect();
         return true;
     } catch (Exception $e) {
         return false;
     }
 }
 /**
  * @covers Veles\Cache\Adapters\MemcacheAdapter::delByTemplate
  */
 public function testDelByTemplate()
 {
     $key = uniqid('VELES::UNIT-TEST::DEL-BY-TPL::');
     $value = mt_rand(1, 1000);
     Cache::set($key, $value, 10);
     $result = $this->object->delByTemplate('VELES::UNIT-TEST::DEL-BY-TPL::');
     $msg = 'Memcache::delByTemplate() return wrong result!';
     $this->assertSame(true, $result, $msg);
     $result = $this->object->has($key);
     $msg = 'Key was not deleted by template!';
     $this->assertSame(false, $result, $msg);
     MemcacheRaw::setConnectionParams('localhost', 11213);
     $result = $this->object->delByTemplate('EnyKey');
     $msg = 'Wrong MemcacheAdapter::delByTemplate() behavior!';
     $this->assertSame(false, $result, $msg);
 }
 * @date      Чтв Дек 20 12:22:58 2012
 * @license   The BSD 3-Clause License
 *            <https://tldrlegal.com/license/bsd-3-clause-license-(revised)>
 */
namespace Veles\Tests;

use Veles\AutoLoader;
use Veles\Cache\Adapters\MemcacheAdapter;
use Veles\Cache\Adapters\MemcachedAdapter;
use Veles\Cache\Adapters\MemcacheRaw;
use Veles\Cache\Cache;
use Veles\View\Adapters\NativeAdapter;
use Veles\View\View;
//ini_set('error_reporting', E_ALL);
//ini_set('display_errors', '1');
//ini_set('display_startup_errors', '1');
define('LIB_DIR', realpath(__DIR__ . '/../..'));
define('TEST_DIR', realpath(LIB_DIR . '/Veles/Tests'));
date_default_timezone_set('Europe/Moscow');
require LIB_DIR . '/Veles/AutoLoader.php';
$includes = LIB_DIR . ':' . TEST_DIR . ':' . realpath(__DIR__ . '/Project');
set_include_path(implode(PATH_SEPARATOR, [$includes, get_include_path()]));
AutoLoader::init();
$view_adapter = new NativeAdapter();
$view_adapter->setTemplateDir(TEST_DIR . '/Project/View/');
View::setAdapter($view_adapter);
// Cache initialization
MemcacheRaw::setConnectionParams('localhost', 11211);
MemcachedAdapter::addCall('addServer', ['localhost', 11211]);
MemcacheAdapter::addCall('addServer', ['localhost', 11211]);
Cache::setAdapter(MemcachedAdapter::instance());
 /**
  * @covers Veles\Cache\Adapters\MemcacheRaw::query
  */
 public function testQuery()
 {
     $key = uniqid("VELES::UNIT-TEST::");
     $value = mt_rand(0, 1000);
     Cache::set($key, $value, 100);
     $object = new MemcacheRaw();
     $output = $object->query("get {$key}");
     $expr = "/^VALUE {$key} [\\d\\s]+{$value}\\s\$/";
     $result = preg_match($expr, $output);
     $msg = 'MemcacheRaw::query return wrong result!';
     $this->assertSame(1, $result, $msg);
 }