@@ -155,6 +155,97 @@ contract MarketplaceDirectListingsTest is BaseTest {
155
155
Miscellaneous
156
156
//////////////////////////////////////////////////////////////*/
157
157
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
+
158
249
function test_state_approvedCurrencies () public {
159
250
(uint256 listingId , IDirectListings.ListingParameters memory listingParams ) = _setup_updateListing ();
160
251
address currencyToApprove = address (erc20); // same currency as main listing
0 commit comments