From e42fb3ca2cfbe692ce10efe67a806d1eb3fcff58 Mon Sep 17 00:00:00 2001 From: Yash <72552910+kumaryash90@users.noreply.github.com> Date: Mon, 17 Jul 2023 14:35:36 +0530 Subject: [PATCH] Update tests for permissions enumerable (#427) update tests for permissions enumerable --- src/test/drop/DropERC721.t.sol | 24 ++++++ src/test/marketplace/DirectListings.t.sol | 91 +++++++++++++++++++++++ 2 files changed, 115 insertions(+) diff --git a/src/test/drop/DropERC721.t.sol b/src/test/drop/DropERC721.t.sol index 7e40a1f75..fde0ad392 100644 --- a/src/test/drop/DropERC721.t.sol +++ b/src/test/drop/DropERC721.t.sol @@ -146,6 +146,7 @@ contract DropERC721Test is BaseTest { drop.grantRole(role, address(4)); roleMemberCount = drop.getRoleMemberCount(role); + assertEq(roleMemberCount, 5); console.log(roleMemberCount); for (uint256 i = 0; i < roleMemberCount; i++) { console.log(drop.getRoleMember(role, i)); @@ -154,6 +155,7 @@ contract DropERC721Test is BaseTest { drop.revokeRole(role, address(2)); roleMemberCount = drop.getRoleMemberCount(role); + assertEq(roleMemberCount, 4); console.log(roleMemberCount); for (uint256 i = 0; i < roleMemberCount; i++) { console.log(drop.getRoleMember(role, i)); @@ -162,6 +164,7 @@ contract DropERC721Test is BaseTest { drop.revokeRole(role, address(0)); roleMemberCount = drop.getRoleMemberCount(role); + assertEq(roleMemberCount, 3); console.log(roleMemberCount); for (uint256 i = 0; i < roleMemberCount; i++) { console.log(drop.getRoleMember(role, i)); @@ -170,6 +173,7 @@ contract DropERC721Test is BaseTest { drop.grantRole(role, address(5)); roleMemberCount = drop.getRoleMemberCount(role); + assertEq(roleMemberCount, 4); console.log(roleMemberCount); for (uint256 i = 0; i < roleMemberCount; i++) { console.log(drop.getRoleMember(role, i)); @@ -178,6 +182,7 @@ contract DropERC721Test is BaseTest { drop.grantRole(role, address(0)); roleMemberCount = drop.getRoleMemberCount(role); + assertEq(roleMemberCount, 5); console.log(roleMemberCount); for (uint256 i = 0; i < roleMemberCount; i++) { console.log(drop.getRoleMember(role, i)); @@ -186,6 +191,25 @@ contract DropERC721Test is BaseTest { drop.grantRole(role, address(6)); roleMemberCount = drop.getRoleMemberCount(role); + assertEq(roleMemberCount, 6); + console.log(roleMemberCount); + for (uint256 i = 0; i < roleMemberCount; i++) { + console.log(drop.getRoleMember(role, i)); + } + console.log(""); + + drop.revokeRole(role, address(0)); + roleMemberCount = drop.getRoleMemberCount(role); + assertEq(roleMemberCount, 5); + console.log(roleMemberCount); + for (uint256 i = 0; i < roleMemberCount; i++) { + console.log(drop.getRoleMember(role, i)); + } + console.log(""); + + drop.revokeRole(role, address(4)); + roleMemberCount = drop.getRoleMemberCount(role); + assertEq(roleMemberCount, 4); console.log(roleMemberCount); for (uint256 i = 0; i < roleMemberCount; i++) { console.log(drop.getRoleMember(role, i)); diff --git a/src/test/marketplace/DirectListings.t.sol b/src/test/marketplace/DirectListings.t.sol index 28ff5971c..ae7689131 100644 --- a/src/test/marketplace/DirectListings.t.sol +++ b/src/test/marketplace/DirectListings.t.sol @@ -155,6 +155,97 @@ contract MarketplaceDirectListingsTest is BaseTest { Miscellaneous //////////////////////////////////////////////////////////////*/ + /** + * @dev Tests contract state for Lister role. + */ + function test_state_getRoleMember_listerRole() public { + bytes32 role = keccak256("LISTER_ROLE"); + + uint256 roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role); + assertEq(roleMemberCount, 1); + + address roleMember = PermissionsEnumerable(marketplace).getRoleMember(role, 1); + assertEq(roleMember, address(0)); + + vm.startPrank(marketplaceDeployer); + Permissions(marketplace).grantRole(role, address(2)); + Permissions(marketplace).grantRole(role, address(3)); + Permissions(marketplace).grantRole(role, address(4)); + + roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role); + assertEq(roleMemberCount, 4); + console.log(roleMemberCount); + for (uint256 i = 0; i < roleMemberCount; i++) { + console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i)); + } + console.log(""); + + Permissions(marketplace).revokeRole(role, address(2)); + roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role); + assertEq(roleMemberCount, 3); + console.log(roleMemberCount); + for (uint256 i = 0; i < roleMemberCount; i++) { + console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i)); + } + console.log(""); + + Permissions(marketplace).grantRole(role, address(5)); + roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role); + assertEq(roleMemberCount, 4); + console.log(roleMemberCount); + for (uint256 i = 0; i < roleMemberCount; i++) { + console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i)); + } + console.log(""); + + Permissions(marketplace).grantRole(role, address(0)); + roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role); + assertEq(roleMemberCount, 5); + console.log(roleMemberCount); + for (uint256 i = 0; i < roleMemberCount; i++) { + console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i)); + } + console.log(""); + + Permissions(marketplace).grantRole(role, address(6)); + roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role); + assertEq(roleMemberCount, 6); + console.log(roleMemberCount); + for (uint256 i = 0; i < roleMemberCount; i++) { + console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i)); + } + console.log(""); + + Permissions(marketplace).revokeRole(role, address(3)); + roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role); + assertEq(roleMemberCount, 5); + console.log(roleMemberCount); + for (uint256 i = 0; i < roleMemberCount; i++) { + console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i)); + } + console.log(""); + + Permissions(marketplace).revokeRole(role, address(4)); + roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role); + assertEq(roleMemberCount, 4); + console.log(roleMemberCount); + for (uint256 i = 0; i < roleMemberCount; i++) { + console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i)); + } + console.log(""); + + Permissions(marketplace).revokeRole(role, address(0)); + roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role); + assertEq(roleMemberCount, 3); + console.log(roleMemberCount); + for (uint256 i = 0; i < roleMemberCount; i++) { + console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i)); + } + console.log(""); + + vm.stopPrank(); + } + function test_state_approvedCurrencies() public { (uint256 listingId, IDirectListings.ListingParameters memory listingParams) = _setup_updateListing(); address currencyToApprove = address(erc20); // same currency as main listing