thinkjs/test/Lib/Driver/Cache/MemcacheCache.js
2014-09-16 11:48:33 +08:00

88 lines
2.3 KiB
JavaScript

var should = require('should');
var assert = require('assert');
var muk = require('muk');
var path = require('path');
var net = require('net');
var fs = require('fs')
global.APP_PATH = path.normalize(__dirname + '/../../../App');
global.RESOURCE_PATH = path.normalize(__dirname + '/../../../www');
process.execArgv.push('--no-app');
require(path.normalize(__dirname + '/../../../../index.js'));
var MemcacheCache = thinkRequire('MemcacheCache');
var MemcacheSocket = thinkRequire('MemcacheSocket')
describe('before', function(){
it('before', function(){
muk(MemcacheSocket.prototype, 'get', function(name){
var data;
if (name === '__thinkjs__json') {
data = JSON.stringify({name: 'welefen'})
};
return getPromise(data);
})
muk(MemcacheSocket.prototype, 'set', function(name, value, timeout){
return getPromise({
name: name,
value: value,
timeout: timeout
});
})
muk(MemcacheSocket.prototype, 'delete', function(name){
return getPromise({
name: name
});
})
})
})
describe('MemcacheCache', function(){
it('init', function(){
var instance = MemcacheCache();
var namePrefix = instance.namePrefix;
assert.equal(namePrefix, C('cache_key_prefix'));
})
it('init, same instance', function(){
var instance = MemcacheCache();
var instance2 = MemcacheCache();
assert.equal(instance.handle, instance2.handle);
})
it('get', function(done){
var instance = MemcacheCache();
instance.get('name').then(function(data){
assert.equal(data, undefined)
done();
})
})
it('get json', function(done){
var instance = MemcacheCache();
instance.get('json').then(function(data){
assert.deepEqual(data, {name: 'welefen'})
done();
})
})
it('set', function(done){
var instance = MemcacheCache();
instance.set('json', 'welefen').then(function(data){
//console.log(data)
assert.deepEqual(data, { name: '__thinkjs__json', value: '"welefen"', timeout: 21600 })
done();
})
})
it('rm', function(done){
var instance = MemcacheCache();
instance.rm('json', 'welefen').then(function(data){
//console.log(data)
assert.deepEqual(data, { name: '__thinkjs__json'})
done();
})
})
})
describe('after', function(){
it('after', function(){
muk.restore();
})
})