mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
import { getDefault, modify } from '../../../../src/util/map/MapUtil';
|
|
import { WrappedSetMultiMap } from '../../../../src/util/map/WrappedSetMultiMap';
|
|
import { compareMaps } from '../../../util/Util';
|
|
|
|
describe('MapUtil', (): void => {
|
|
const key1 = 'key1';
|
|
const key2 = 'key2';
|
|
const key3 = 'key3';
|
|
|
|
describe('#modify', (): void => {
|
|
it('modifies the map as specified.', async(): Promise<void> => {
|
|
const map = new WrappedSetMultiMap(undefined, [
|
|
[ key1, 123 ],
|
|
[ key2, 123 ],
|
|
]);
|
|
const add: Iterable<[string, number]> = [[ key1, 456 ], [ key3, 123 ]];
|
|
const remove = [ key2 ];
|
|
|
|
const expected = new WrappedSetMultiMap(undefined, [
|
|
[ key1, 123 ],
|
|
[ key1, 456 ],
|
|
[ key3, 123 ],
|
|
]);
|
|
|
|
modify(map, { add, remove });
|
|
compareMaps(map, expected);
|
|
});
|
|
it('defaults to empty add and delete Iterables.', async(): Promise<void> => {
|
|
const map = new WrappedSetMultiMap(undefined, [
|
|
[ key1, 123 ],
|
|
[ key2, 123 ],
|
|
]);
|
|
|
|
const expected = new WrappedSetMultiMap(undefined, [
|
|
[ key1, 123 ],
|
|
[ key2, 123 ],
|
|
]);
|
|
|
|
modify(map, {});
|
|
compareMaps(map, expected);
|
|
});
|
|
});
|
|
|
|
describe('#getDefault', (): void => {
|
|
it('returns the value it finds in the Map for the given key.', async(): Promise<void> => {
|
|
const map = new Map([[ key1, 123 ]]);
|
|
expect(getDefault(map, key1, 999)).toBe(123);
|
|
});
|
|
|
|
it('returns the default value if it finds no value for the given key.', async(): Promise<void> => {
|
|
const map = new Map([[ key1, 123 ]]);
|
|
expect(getDefault(map, key2, 999)).toBe(999);
|
|
});
|
|
});
|
|
});
|