Skip to content

Commit 4e1edc1

Browse files
committed
keys & values functions tests
1 parent 8d8b457 commit 4e1edc1

File tree

3 files changed

+64
-0
lines changed

3 files changed

+64
-0
lines changed

contracts/data/EnumerableMapAddressToAddressMock.sol

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,12 @@ contract EnumerableMapAddressToAddressMock {
4040
{
4141
(keys, values) = map.toArray();
4242
}
43+
44+
function keys() external view returns (address[] memory keys) {
45+
keys = map.keys();
46+
}
47+
48+
function values() external view returns (address[] memory values) {
49+
values = map.values();
50+
}
4351
}

contracts/data/EnumerableMapUintToAddressMock.sol

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,12 @@ contract EnumerableMapUintToAddressMock {
4040
{
4141
(keys, values) = map.toArray();
4242
}
43+
44+
function keys() external view returns (uint256[] memory keys) {
45+
keys = map.keys();
46+
}
47+
48+
function values() external view returns (address[] memory values) {
49+
values = map.values();
50+
}
4351
}

test/data/EnumerableMap.ts

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,30 @@ describe('EnumerableMap', () => {
200200
expect(values).to.deep.equal([addressFour, addressFive, addressSix]);
201201
});
202202
});
203+
204+
describe('#keys()', () => {
205+
it('returns array of keys in map', async () => {
206+
await instance['set(address,address)'](addressOne, addressFour);
207+
await instance['set(address,address)'](addressTwo, addressFive);
208+
await instance['set(address,address)'](addressThree, addressSix);
209+
210+
const keys = await instance.callStatic['keys()']();
211+
212+
expect(keys).to.deep.equal([addressOne, addressTwo, addressThree]);
213+
});
214+
});
215+
216+
describe('#values()', () => {
217+
it('returns array of values in map', async () => {
218+
await instance['set(address,address)'](addressOne, addressFour);
219+
await instance['set(address,address)'](addressTwo, addressFive);
220+
await instance['set(address,address)'](addressThree, addressSix);
221+
222+
const values = await instance.callStatic['values()']();
223+
224+
expect(values).to.deep.equal([addressFour, addressFive, addressSix]);
225+
});
226+
});
203227
});
204228
});
205229

@@ -391,6 +415,30 @@ describe('EnumerableMap', () => {
391415
expect(values).to.deep.equal([addressOne, addressTwo, addressThree]);
392416
});
393417
});
418+
419+
describe('#keys()', () => {
420+
it('returns array of keys in map', async () => {
421+
await instance['set(uint256,address)'](uintOne, addressOne);
422+
await instance['set(uint256,address)'](uintTwo, addressTwo);
423+
await instance['set(uint256,address)'](uintThree, addressThree);
424+
425+
const keys = await instance.callStatic['keys()']();
426+
427+
expect(keys).to.deep.equal([uintOne, uintTwo, uintThree]);
428+
});
429+
});
430+
431+
describe('#values()', () => {
432+
it('returns array of values in map', async () => {
433+
await instance['set(uint256,address)'](uintOne, addressOne);
434+
await instance['set(uint256,address)'](uintTwo, addressTwo);
435+
await instance['set(uint256,address)'](uintThree, addressThree);
436+
437+
const values = await instance.callStatic['values()']();
438+
439+
expect(values).to.deep.equal([addressOne, addressTwo, addressThree]);
440+
});
441+
});
394442
});
395443
});
396444
});

0 commit comments

Comments
 (0)