@@ -155,6 +155,97 @@ contract MarketplaceDirectListingsTest is BaseTest {
155155 Miscellaneous
156156 //////////////////////////////////////////////////////////////*/
157157
158+ /**
159+ * @dev Tests contract state for Lister role.
160+ */
161+ function test_state_getRoleMember_listerRole () public {
162+ bytes32 role = keccak256 ("LISTER_ROLE " );
163+
164+ uint256 roleMemberCount = PermissionsEnumerable (marketplace).getRoleMemberCount (role);
165+ assertEq (roleMemberCount, 1 );
166+
167+ address roleMember = PermissionsEnumerable (marketplace).getRoleMember (role, 1 );
168+ assertEq (roleMember, address (0 ));
169+
170+ vm.startPrank (marketplaceDeployer);
171+ Permissions (marketplace).grantRole (role, address (2 ));
172+ Permissions (marketplace).grantRole (role, address (3 ));
173+ Permissions (marketplace).grantRole (role, address (4 ));
174+
175+ roleMemberCount = PermissionsEnumerable (marketplace).getRoleMemberCount (role);
176+ assertEq (roleMemberCount, 4 );
177+ console.log (roleMemberCount);
178+ for (uint256 i = 0 ; i < roleMemberCount; i++ ) {
179+ console.log (PermissionsEnumerable (marketplace).getRoleMember (role, i));
180+ }
181+ console.log ("" );
182+
183+ Permissions (marketplace).revokeRole (role, address (2 ));
184+ roleMemberCount = PermissionsEnumerable (marketplace).getRoleMemberCount (role);
185+ assertEq (roleMemberCount, 3 );
186+ console.log (roleMemberCount);
187+ for (uint256 i = 0 ; i < roleMemberCount; i++ ) {
188+ console.log (PermissionsEnumerable (marketplace).getRoleMember (role, i));
189+ }
190+ console.log ("" );
191+
192+ Permissions (marketplace).grantRole (role, address (5 ));
193+ roleMemberCount = PermissionsEnumerable (marketplace).getRoleMemberCount (role);
194+ assertEq (roleMemberCount, 4 );
195+ console.log (roleMemberCount);
196+ for (uint256 i = 0 ; i < roleMemberCount; i++ ) {
197+ console.log (PermissionsEnumerable (marketplace).getRoleMember (role, i));
198+ }
199+ console.log ("" );
200+
201+ Permissions (marketplace).grantRole (role, address (0 ));
202+ roleMemberCount = PermissionsEnumerable (marketplace).getRoleMemberCount (role);
203+ assertEq (roleMemberCount, 5 );
204+ console.log (roleMemberCount);
205+ for (uint256 i = 0 ; i < roleMemberCount; i++ ) {
206+ console.log (PermissionsEnumerable (marketplace).getRoleMember (role, i));
207+ }
208+ console.log ("" );
209+
210+ Permissions (marketplace).grantRole (role, address (6 ));
211+ roleMemberCount = PermissionsEnumerable (marketplace).getRoleMemberCount (role);
212+ assertEq (roleMemberCount, 6 );
213+ console.log (roleMemberCount);
214+ for (uint256 i = 0 ; i < roleMemberCount; i++ ) {
215+ console.log (PermissionsEnumerable (marketplace).getRoleMember (role, i));
216+ }
217+ console.log ("" );
218+
219+ Permissions (marketplace).revokeRole (role, address (3 ));
220+ roleMemberCount = PermissionsEnumerable (marketplace).getRoleMemberCount (role);
221+ assertEq (roleMemberCount, 5 );
222+ console.log (roleMemberCount);
223+ for (uint256 i = 0 ; i < roleMemberCount; i++ ) {
224+ console.log (PermissionsEnumerable (marketplace).getRoleMember (role, i));
225+ }
226+ console.log ("" );
227+
228+ Permissions (marketplace).revokeRole (role, address (4 ));
229+ roleMemberCount = PermissionsEnumerable (marketplace).getRoleMemberCount (role);
230+ assertEq (roleMemberCount, 4 );
231+ console.log (roleMemberCount);
232+ for (uint256 i = 0 ; i < roleMemberCount; i++ ) {
233+ console.log (PermissionsEnumerable (marketplace).getRoleMember (role, i));
234+ }
235+ console.log ("" );
236+
237+ Permissions (marketplace).revokeRole (role, address (0 ));
238+ roleMemberCount = PermissionsEnumerable (marketplace).getRoleMemberCount (role);
239+ assertEq (roleMemberCount, 3 );
240+ console.log (roleMemberCount);
241+ for (uint256 i = 0 ; i < roleMemberCount; i++ ) {
242+ console.log (PermissionsEnumerable (marketplace).getRoleMember (role, i));
243+ }
244+ console.log ("" );
245+
246+ vm.stopPrank ();
247+ }
248+
158249 function test_state_approvedCurrencies () public {
159250 (uint256 listingId , IDirectListings.ListingParameters memory listingParams ) = _setup_updateListing ();
160251 address currencyToApprove = address (erc20); // same currency as main listing
0 commit comments