summaryrefslogtreecommitdiff
path: root/test/test-cache-map.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/test-cache-map.js')
-rw-r--r--test/test-cache-map.js183
1 files changed, 46 insertions, 137 deletions
diff --git a/test/test-cache-map.js b/test/test-cache-map.js
index 2ecdd401..4d19015b 100644
--- a/test/test-cache-map.js
+++ b/test/test-cache-map.js
@@ -28,14 +28,14 @@ const CacheMap = vm.get('CacheMap');
function testConstructor() {
const data = [
- [false, () => new CacheMap(0, () => null)],
- [false, () => new CacheMap(1, () => null)],
- [false, () => new CacheMap(Number.MAX_VALUE, () => null)],
- [true, () => new CacheMap(-1, () => null)],
- [true, () => new CacheMap(1.5, () => null)],
- [true, () => new CacheMap(Number.NaN, () => null)],
- [true, () => new CacheMap(Number.POSITIVE_INFINITY, () => null)],
- [true, () => new CacheMap('a', () => null)]
+ [false, () => new CacheMap(0)],
+ [false, () => new CacheMap(1)],
+ [false, () => new CacheMap(Number.MAX_VALUE)],
+ [true, () => new CacheMap(-1)],
+ [true, () => new CacheMap(1.5)],
+ [true, () => new CacheMap(Number.NaN)],
+ [true, () => new CacheMap(Number.POSITIVE_INFINITY)],
+ [true, () => new CacheMap('a')]
];
for (const [throws, create] of data) {
@@ -50,155 +50,64 @@ function testConstructor() {
function testApi() {
const data = [
{
- maxCount: 1,
- expectedCount: 0,
+ maxSize: 1,
+ expectedSize: 0,
calls: []
},
{
- maxCount: 1,
- expectedCount: 1,
+ maxSize: 10,
+ expectedSize: 1,
calls: [
- {func: 'getOrCreate', args: [['a', 'b', 'c']]}
+ {func: 'get', args: ['a1-b-c'], returnValue: void 0},
+ {func: 'has', args: ['a1-b-c'], returnValue: false},
+ {func: 'set', args: ['a1-b-c', 32], returnValue: void 0},
+ {func: 'get', args: ['a1-b-c'], returnValue: 32},
+ {func: 'has', args: ['a1-b-c'], returnValue: true}
]
},
{
- maxCount: 10,
- expectedCount: 1,
+ maxSize: 10,
+ expectedSize: 2,
calls: [
- {func: 'getOrCreate', args: [['a', 'b', 'c']]},
- {func: 'getOrCreate', args: [['a', 'b', 'c']]},
- {func: 'getOrCreate', args: [['a', 'b', 'c']]}
+ {func: 'set', args: ['a1-b-c', 32], returnValue: void 0},
+ {func: 'get', args: ['a1-b-c'], returnValue: 32},
+ {func: 'set', args: ['a1-b-c', 64], returnValue: void 0},
+ {func: 'get', args: ['a1-b-c'], returnValue: 64},
+ {func: 'set', args: ['a2-b-c', 96], returnValue: void 0},
+ {func: 'get', args: ['a2-b-c'], returnValue: 96}
]
},
{
- maxCount: 10,
- expectedCount: 3,
+ maxSize: 2,
+ expectedSize: 2,
calls: [
- {func: 'getOrCreate', args: [['a1', 'b', 'c']]},
- {func: 'getOrCreate', args: [['a2', 'b', 'c']]},
- {func: 'getOrCreate', args: [['a3', 'b', 'c']]}
- ]
- },
- {
- maxCount: 10,
- expectedCount: 3,
- calls: [
- {func: 'getOrCreate', args: [['a', 'b1', 'c']]},
- {func: 'getOrCreate', args: [['a', 'b2', 'c']]},
- {func: 'getOrCreate', args: [['a', 'b3', 'c']]}
- ]
- },
- {
- maxCount: 10,
- expectedCount: 3,
- calls: [
- {func: 'getOrCreate', args: [['a', 'b', 'c1']]},
- {func: 'getOrCreate', args: [['a', 'b', 'c2']]},
- {func: 'getOrCreate', args: [['a', 'b', 'c3']]}
- ]
- },
- {
- maxCount: 1,
- expectedCount: 1,
- calls: [
- {func: 'getOrCreate', args: [['a1', 'b', 'c']]},
- {func: 'getOrCreate', args: [['a2', 'b', 'c']]},
- {func: 'getOrCreate', args: [['a3', 'b', 'c']]}
- ]
- },
- {
- maxCount: 1,
- expectedCount: 1,
- calls: [
- {func: 'getOrCreate', args: [['a', 'b1', 'c']]},
- {func: 'getOrCreate', args: [['a', 'b2', 'c']]},
- {func: 'getOrCreate', args: [['a', 'b3', 'c']]}
- ]
- },
- {
- maxCount: 1,
- expectedCount: 1,
- calls: [
- {func: 'getOrCreate', args: [['a', 'b', 'c1']]},
- {func: 'getOrCreate', args: [['a', 'b', 'c2']]},
- {func: 'getOrCreate', args: [['a', 'b', 'c3']]}
- ]
- },
- {
- maxCount: 10,
- expectedCount: 0,
- calls: [
- {func: 'getOrCreate', args: [['a', 'b', 'c1']]},
- {func: 'getOrCreate', args: [['a', 'b', 'c2']]},
- {func: 'getOrCreate', args: [['a', 'b', 'c3']]},
- {func: 'clear', args: []}
- ]
- },
- {
- maxCount: 0,
- expectedCount: 0,
- calls: [
- {func: 'getOrCreate', args: [['a1', 'b', 'c']]},
- {func: 'getOrCreate', args: [['a', 'b2', 'c']]},
- {func: 'getOrCreate', args: [['a', 'b', 'c3']]}
- ]
- },
- {
- maxCount: 10,
- expectedCount: 1,
- calls: [
- {func: 'get', args: [['a1', 'b', 'c']], returnValue: void 0},
- {func: 'has', args: [['a1', 'b', 'c']], returnValue: false},
- {func: 'set', args: [['a1', 'b', 'c'], 32], returnValue: void 0},
- {func: 'get', args: [['a1', 'b', 'c']], returnValue: 32},
- {func: 'has', args: [['a1', 'b', 'c']], returnValue: true}
- ]
- },
- {
- maxCount: 10,
- expectedCount: 2,
- calls: [
- {func: 'set', args: [['a1', 'b', 'c'], 32], returnValue: void 0},
- {func: 'get', args: [['a1', 'b', 'c']], returnValue: 32},
- {func: 'set', args: [['a1', 'b', 'c'], 64], returnValue: void 0},
- {func: 'get', args: [['a1', 'b', 'c']], returnValue: 64},
- {func: 'set', args: [['a2', 'b', 'c'], 96], returnValue: void 0},
- {func: 'get', args: [['a2', 'b', 'c']], returnValue: 96}
- ]
- },
- {
- maxCount: 2,
- expectedCount: 2,
- calls: [
- {func: 'has', args: [['a1', 'b', 'c']], returnValue: false},
- {func: 'has', args: [['a2', 'b', 'c']], returnValue: false},
- {func: 'has', args: [['a3', 'b', 'c']], returnValue: false},
- {func: 'set', args: [['a1', 'b', 'c'], 1], returnValue: void 0},
- {func: 'has', args: [['a1', 'b', 'c']], returnValue: true},
- {func: 'has', args: [['a2', 'b', 'c']], returnValue: false},
- {func: 'has', args: [['a3', 'b', 'c']], returnValue: false},
- {func: 'set', args: [['a2', 'b', 'c'], 2], returnValue: void 0},
- {func: 'has', args: [['a1', 'b', 'c']], returnValue: true},
- {func: 'has', args: [['a2', 'b', 'c']], returnValue: true},
- {func: 'has', args: [['a3', 'b', 'c']], returnValue: false},
- {func: 'set', args: [['a3', 'b', 'c'], 3], returnValue: void 0},
- {func: 'has', args: [['a1', 'b', 'c']], returnValue: false},
- {func: 'has', args: [['a2', 'b', 'c']], returnValue: true},
- {func: 'has', args: [['a3', 'b', 'c']], returnValue: true}
+ {func: 'has', args: ['a1-b-c'], returnValue: false},
+ {func: 'has', args: ['a2-b-c'], returnValue: false},
+ {func: 'has', args: ['a3-b-c'], returnValue: false},
+ {func: 'set', args: ['a1-b-c', 1], returnValue: void 0},
+ {func: 'has', args: ['a1-b-c'], returnValue: true},
+ {func: 'has', args: ['a2-b-c'], returnValue: false},
+ {func: 'has', args: ['a3-b-c'], returnValue: false},
+ {func: 'set', args: ['a2-b-c', 2], returnValue: void 0},
+ {func: 'has', args: ['a1-b-c'], returnValue: true},
+ {func: 'has', args: ['a2-b-c'], returnValue: true},
+ {func: 'has', args: ['a3-b-c'], returnValue: false},
+ {func: 'set', args: ['a3-b-c', 3], returnValue: void 0},
+ {func: 'has', args: ['a1-b-c'], returnValue: false},
+ {func: 'has', args: ['a2-b-c'], returnValue: true},
+ {func: 'has', args: ['a3-b-c'], returnValue: true}
]
}
];
- const create = (args) => args.join(',');
- for (const {maxCount, expectedCount, calls} of data) {
- const cache = new CacheMap(maxCount, create);
- assert.strictEqual(cache.maxCount, maxCount);
+ for (const {maxSize, expectedSize, calls} of data) {
+ const cache = new CacheMap(maxSize);
+ assert.strictEqual(cache.maxSize, maxSize);
for (const call of calls) {
const {func, args} = call;
let returnValue;
switch (func) {
case 'get': returnValue = cache.get(...args); break;
- case 'getOrCreate': returnValue = cache.getOrCreate(...args); break;
case 'set': returnValue = cache.set(...args); break;
case 'has': returnValue = cache.has(...args); break;
case 'clear': returnValue = cache.clear(...args); break;
@@ -208,7 +117,7 @@ function testApi() {
assert.deepStrictEqual(returnValue, expectedReturnValue);
}
}
- assert.strictEqual(cache.count, expectedCount);
+ assert.strictEqual(cache.size, expectedSize);
}
}