Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/test/java/edu/harvard/iq/dataverse/api/DatasetsIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ public void testCreateDataset() {
grantRole.prettyPrint();
grantRole.then().assertThat()
.body("message", containsString(BundleUtil.getStringFromBundle("datasets.api.grant.role.assignee.has.role.error")))
.statusCode(FORBIDDEN.getStatusCode());
.statusCode(CONFLICT.getStatusCode());

// Create another random user:

Expand Down Expand Up @@ -2354,7 +2354,7 @@ private static void validateAssignExistingRole(String datasetPersistentId, Strin
failedGrantPermission.prettyPrint();
failedGrantPermission.then().assertThat()
.body("message", containsString(BundleUtil.getStringFromBundle("datasets.api.grant.role.assignee.has.role.error")))
.statusCode(FORBIDDEN.getStatusCode());
.statusCode(CONFLICT.getStatusCode());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,9 @@ public void init() throws IOException {
RateLimitUtil.rateLimitMap.clear();
RateLimitUtil.rateLimits.clear();
}

// Reset cache for each test
cache.rateLimitCache.clear();

// Reset to default auth user
authUser.setRateLimitTier(1);
authUser.setSuperuser(false);
Expand Down Expand Up @@ -163,15 +165,23 @@ public void testAuthenticatedUserGettingRateLimited() throws InterruptedExceptio
authUser.setRateLimitTier(2); // 120 cals per hour - 1 added token every 30 seconds
boolean rateLimited = false;
int cnt;
long startTime = System.currentTimeMillis();
for (cnt = 0; cnt <200; cnt++) {
rateLimited = !cache.checkRate(authUser, action);
if (rateLimited) {
break;
}
}
assertTrue(rateLimited);
assertEquals(120, cnt);
long endTime = System.currentTimeMillis();
System.out.println("Test loop took " + (endTime - startTime) + " ms");
//Add a few seconds to account for time outside loop
long durationMinutes = (6000 + endTime - startTime) / 60000L;
// 120 calls/hr = 2 calls/min. Add any tokens that may have been added during the test run
long expectedMax = 120 + (durationMinutes * 2);

assertTrue(rateLimited);
assertTrue(cnt >= 120 && cnt <= expectedMax, "cnt was " + cnt + ", expected between 120 and " + expectedMax);

for (cnt = 0; cnt <60; cnt++) {
Thread.sleep(1000);// Wait for bucket to be replenished (check each second for 1 minute max)
rateLimited = !cache.checkRate(authUser, action);
Expand Down
Loading