| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 | 
							- var test = require('tap').test
 
- var LRU = require('../')
 
- test('dump', function (t) {
 
-   var cache = new LRU()
 
-   t.equal(cache.dump().length, 0, "nothing in dump for empty cache")
 
-   cache.set("a", "A")
 
-   cache.set("b", "B")
 
-   t.deepEqual(cache.dump(), [
 
-     { k: "b", v: "B", e: 0 },
 
-     { k: "a", v: "A", e: 0 }
 
-   ])
 
-   cache.set("a", "A");
 
-   t.deepEqual(cache.dump(), [
 
-     { k: "a", v: "A", e: 0 },
 
-     { k: "b", v: "B", e: 0 }
 
-   ])
 
-   cache.get("b");
 
-   t.deepEqual(cache.dump(), [
 
-     { k: "b", v: "B", e: 0 },
 
-     { k: "a", v: "A", e: 0 }
 
-   ])
 
-   cache.del("a");
 
-   t.deepEqual(cache.dump(), [
 
-     { k: "b", v: "B",  e: 0 }
 
-   ])
 
-   t.end()
 
- })
 
- test("do not dump stale items", function(t) {
 
-   var cache = new LRU({
 
-     max: 5,
 
-     maxAge: 50
 
-   })
 
-   //expires at 50
 
-   cache.set("a", "A")
 
-   setTimeout(function () {
 
-     //expires at 75
 
-     cache.set("b", "B")
 
-     var s = cache.dump()
 
-     t.equal(s.length, 2)
 
-     t.equal(s[0].k, "b")
 
-     t.equal(s[1].k, "a")
 
-   }, 25)
 
-   setTimeout(function () {
 
-     //expires at 110
 
-     cache.set("c", "C")
 
-     var s = cache.dump()
 
-     t.equal(s.length, 2)
 
-     t.equal(s[0].k, "c")
 
-     t.equal(s[1].k, "b")
 
-   }, 60)
 
-   setTimeout(function () {
 
-     //expires at 130
 
-     cache.set("d", "D", 40)
 
-     var s = cache.dump()
 
-     t.equal(s.length, 2)
 
-     t.equal(s[0].k, "d")
 
-     t.equal(s[1].k, "c")
 
-   }, 90)
 
-   setTimeout(function () {
 
-     var s = cache.dump()
 
-     t.equal(s.length, 1)
 
-     t.equal(s[0].k, "d")
 
-   }, 120)
 
-   setTimeout(function () {
 
-     var s = cache.dump()
 
-     t.deepEqual(s, [])
 
-     t.end()
 
-   }, 155)
 
- })
 
- test("load basic cache", function(t) {
 
-   var cache = new LRU(),
 
-       copy = new LRU()
 
-   cache.set("a", "A")
 
-   cache.set("b", "B")
 
-   copy.load(cache.dump())
 
-   t.deepEquals(cache.dump(), copy.dump())
 
-   t.end()
 
- })
 
- test("load staled cache", function(t) {
 
-   var cache = new LRU({maxAge: 50}),
 
-       copy = new LRU({maxAge: 50}),
 
-       arr
 
-   //expires at 50
 
-   cache.set("a", "A")
 
-   setTimeout(function () {
 
-     //expires at 80
 
-     cache.set("b", "B")
 
-     arr = cache.dump()
 
-     t.equal(arr.length, 2)
 
-   }, 30)
 
-   setTimeout(function () {
 
-     copy.load(arr)
 
-     t.equal(copy.get("a"), undefined)
 
-     t.equal(copy.get("b"), "B")
 
-   }, 60)
 
-   setTimeout(function () {
 
-     t.equal(copy.get("b"), undefined)
 
-     t.end()
 
-   }, 90)
 
- })
 
- test("load to other size cache", function(t) {
 
-   var cache = new LRU({max: 2}),
 
-       copy = new LRU({max: 1})
 
-   cache.set("a", "A")
 
-   cache.set("b", "B")
 
-   copy.load(cache.dump())
 
-   t.equal(copy.get("a"), undefined)
 
-   t.equal(copy.get("b"), "B")
 
-   //update the last read from original cache
 
-   cache.get("a")
 
-   copy.load(cache.dump())
 
-   t.equal(copy.get("a"), "A")
 
-   t.equal(copy.get("b"), undefined)
 
-   t.end()
 
- })
 
- test("load to other age cache", function(t) {
 
-   var cache = new LRU({maxAge: 50}),
 
-       aged = new LRU({maxAge: 100}),
 
-       simple = new LRU(),
 
-       arr,
 
-       expired
 
-   //created at 0
 
-   //a would be valid till 0 + 50
 
-   cache.set("a", "A")
 
-   setTimeout(function () {
 
-     //created at 20
 
-     //b would be valid till 20 + 50
 
-     cache.set("b", "B")
 
-     //b would be valid till 20 + 70
 
-     cache.set("c", "C", 70)
 
-     arr = cache.dump()
 
-     t.equal(arr.length, 3)
 
-   }, 20)
 
-   setTimeout(function () {
 
-     t.equal(cache.get("a"), undefined)
 
-     t.equal(cache.get("b"), "B")
 
-     t.equal(cache.get("c"), "C")
 
-     aged.load(arr)
 
-     t.equal(aged.get("a"), undefined)
 
-     t.equal(aged.get("b"), "B")
 
-     t.equal(aged.get("c"), "C")
 
-     simple.load(arr)
 
-     t.equal(simple.get("a"), undefined)
 
-     t.equal(simple.get("b"), "B")
 
-     t.equal(simple.get("c"), "C")
 
-   }, 60)
 
-   setTimeout(function () {
 
-     t.equal(cache.get("a"), undefined)
 
-     t.equal(cache.get("b"), undefined)
 
-     t.equal(cache.get("c"), "C")
 
-     aged.load(arr)
 
-     t.equal(aged.get("a"), undefined)
 
-     t.equal(aged.get("b"), undefined)
 
-     t.equal(aged.get("c"), "C")
 
-     simple.load(arr)
 
-     t.equal(simple.get("a"), undefined)
 
-     t.equal(simple.get("b"), undefined)
 
-     t.equal(simple.get("c"), "C")
 
-   }, 80)
 
-   setTimeout(function () {
 
-     t.equal(cache.get("a"), undefined)
 
-     t.equal(cache.get("b"), undefined)
 
-     t.equal(cache.get("c"), undefined)
 
-     aged.load(arr)
 
-     t.equal(aged.get("a"), undefined)
 
-     t.equal(aged.get("b"), undefined)
 
-     t.equal(aged.get("c"), undefined)
 
-     simple.load(arr)
 
-     t.equal(simple.get("a"), undefined)
 
-     t.equal(simple.get("b"), undefined)
 
-     t.equal(simple.get("c"), undefined)
 
-     t.end()
 
-   }, 100)
 
- })
 
 
  |