var should = require("should") var SimpleCache = require("../lib/simple_lru.js") describe("BigCache Config",function(){ it("Should support set and get operations",function(){ var cache = new SimpleCache({maxSize:1}) cache.set("hello","world") cache.get("hello").should.equal("world") }) it("Should drop key least used on max size",function(){ var cache = new SimpleCache({maxSize:3}) cache.set("a","1") cache.set("b","2") cache.set("c","3") cache.get("a").should.equal("1") cache.get("b").should.equal("2") cache.get("c").should.equal("3") cache.set("d","4") cache.get("d").should.equal("4") should.not.exist(cache.get("a")) cache.get("b") cache.set("e","5") cache.get("b").should.equal("2") cache.get("e").should.equal("5") should.not.exist(cache.get("c")) }) it("Should remove all objects on reset",function(){ var cache = new SimpleCache({maxSize:3}) cache.set("a","1") cache.set("b","2") cache.set("c","3") cache.size.should.equal(3) Object.keys(cache.cache).length.should.equal(3) cache.reset() cache.size.should.equal(0) Object.keys(cache.cache).length.should.equal(0) }) it("Should enable remove elements",function(){ var cache = new SimpleCache({maxSize:3}) cache.set("a","1") cache.set("b","2") cache.set("c","3") cache.size.should.equal(3) cache.get("b").should.equal("2") cache.del("b") cache.size.should.equal(2) Object.keys(cache.cache).length.should.equal(2) should.not.exist(cache.get("b")) }) it("Should provide a way to list all objects",function(){ var cache = new SimpleCache({maxSize:100}) for(var i = 0; i < 100; i++) cache.set(i,"value_"+i) cache.forEach(function(value,key){ value.should.equal("value_"+key) cache.set(key,value+"_modif") }) for(var i = 0; i < 100; i++) cache.get(i).should.equal("value_"+i+"_modif") }) })