Skip to content

Commit d82b95a

Browse files
refactored tests
1 parent bdb0a53 commit d82b95a

File tree

1 file changed

+53
-33
lines changed

1 file changed

+53
-33
lines changed

src/test/java/com/uid2/admin/secret/SaltRotationTest.java

Lines changed: 53 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -241,61 +241,81 @@ void testRefreshFromCalculation(int lastRotationDaysAgo, int refreshFromDaysFrom
241241
}
242242

243243
@Test
244-
void rotateSaltsPopulatePreviousSalt() throws Exception {
244+
void rotateSaltsPopulatePreviousSaltsOnRotation() throws Exception {
245245
final Duration[] minAges = {
246-
Duration.ofDays(5),
246+
Duration.ofDays(90),
247+
Duration.ofDays(60),
248+
Duration.ofDays(30)
247249
};
248250

249-
final long validForRotation = daysEarlier(8).toEpochMilli();
250-
final Instant notValidForRotation = daysEarlier(2);
251-
final RotatingSaltProvider.SaltSnapshot lastSnapshot = SnapshotBuilder.start()
251+
var lessThan90Days = daysEarlier(60).toEpochMilli();
252+
var exactly90Days = daysEarlier(90).toEpochMilli();
253+
var over90Days = daysEarlier(120).toEpochMilli();
254+
var lastSnapshot = SnapshotBuilder.start()
252255
.withEntries(
253-
new SaltEntry(1, "1", validForRotation, "salt1", null, null, null, null),
254-
new SaltEntry(2, "2", validForRotation, "salt2", null, null, null, null),
255-
new SaltEntry(3, "3", validForRotation, "salt3", null, null, null, null)
256+
new SaltEntry(1, "1", lessThan90Days, "salt1", null, null, null, null),
257+
new SaltEntry(3, "2", exactly90Days, "salt2", null, null, null, null),
258+
new SaltEntry(5, "3", over90Days, "salt3", null, null, null, null)
256259
)
257-
.withEntries(7, notValidForRotation)
258260
.build(daysEarlier(1), daysLater(6));
259261

260-
final SaltRotation.Result result = saltRotation.rotateSalts(lastSnapshot, minAges, 0.3, targetDate);
262+
var result = saltRotation.rotateSalts(lastSnapshot, minAges, 1, targetDate);
261263
assertTrue(result.hasSnapshot());
262-
assertEquals("salt1", result.getSnapshot().getAllRotatingSalts()[0].previousSalt());
263-
assertEquals("salt2", result.getSnapshot().getAllRotatingSalts()[1].previousSalt());
264-
assertEquals("salt3", result.getSnapshot().getAllRotatingSalts()[2].previousSalt());
265-
assertEquals(7, Arrays.stream(result.getSnapshot().getAllRotatingSalts()).filter(s -> s.previousSalt() == null).count());
266264

267-
verify(keyGenerator, times(3)).generateRandomKeyString(anyInt());
265+
var salts = result.getSnapshot().getAllRotatingSalts();
266+
assertEquals("salt1", salts[0].previousSalt());
267+
assertEquals("salt2", salts[1].previousSalt());
268+
assertEquals("salt3", salts[2].previousSalt());
268269
}
269270

270271
@Test
271-
void rotateSaltsRemovePreviousSaltIfOver90DaysOld() throws Exception {
272+
void rotateSaltsPreservePreviousSaltsLessThan90DaysOld() throws Exception {
272273
final Duration[] minAges = {
273-
Duration.ofDays(90),
274274
Duration.ofDays(60),
275-
Duration.ofDays(40),
276275
};
277276

278-
final long lessThan90Days = daysEarlier(50).toEpochMilli();
279-
final long is90DaysOld = daysEarlier(90).toEpochMilli();
280-
final long over90Days = daysEarlier(100).toEpochMilli();
281-
final RotatingSaltProvider.SaltSnapshot lastSnapshot = SnapshotBuilder.start()
277+
var notValidForRotation1 = daysEarlier(40).toEpochMilli();
278+
var notValidForRotation2 = daysEarlier(50).toEpochMilli();
279+
var validForRotation = daysEarlier(70);
280+
var lastSnapshot = SnapshotBuilder.start()
282281
.withEntries(
283-
new SaltEntry(1, "1", lessThan90Days, "currentSalt", null, "lessThan90DaysOld", null, null),
284-
new SaltEntry(2, "2", lessThan90Days, "currentSalt", null, "lessThan90DaysOld", null, null),
285-
new SaltEntry(3, "3", is90DaysOld, "currentSalt", null, "90DaysOld", null, null),
286-
new SaltEntry(4, "4", is90DaysOld, "currentSalt", null, "90DaysOld", null, null),
287-
new SaltEntry(5, "5", over90Days, "currentSalt", null, null, null, null),
288-
new SaltEntry(6, "6", over90Days, "currentSalt", null, null, null, null)
282+
new SaltEntry(1, "1", notValidForRotation1, "salt1", null, "previousSalt1", null, null),
283+
new SaltEntry(2, "2", notValidForRotation2, "salt2", null, null, null, null)
289284
)
285+
.withEntries(1, validForRotation)
290286
.build(daysEarlier(1), daysLater(6));
291287

292-
final SaltRotation.Result result = saltRotation.rotateSalts(lastSnapshot, minAges, 0.5, targetDate);
288+
var result = saltRotation.rotateSalts(lastSnapshot, minAges, 1, targetDate);
293289
assertTrue(result.hasSnapshot());
294-
assertEquals(2, Arrays.stream(result.getSnapshot().getAllRotatingSalts()).filter(s -> "lessThan90DaysOld".equals(s.previousSalt())).count());
295-
assertEquals(1, Arrays.stream(result.getSnapshot().getAllRotatingSalts()).filter(s -> s.previousSalt() == null).count());
296-
assertEquals(3, Arrays.stream(result.getSnapshot().getAllRotatingSalts()).filter(s -> "currentSalt".equals(s.previousSalt())).count());
297290

298-
verify(keyGenerator, times(3)).generateRandomKeyString(anyInt());
291+
var salts = result.getSnapshot().getAllRotatingSalts();
292+
assertEquals("previousSalt1", salts[0].previousSalt());
293+
assertNull(salts[1].previousSalt());
294+
}
295+
296+
@Test
297+
void rotateSaltsRemovePreviousSaltsOver90DaysOld() throws Exception {
298+
final Duration[] minAges = {
299+
Duration.ofDays(100),
300+
};
301+
302+
var exactly90Days = daysEarlier(90).toEpochMilli();
303+
var over90Days = daysEarlier(100).toEpochMilli();
304+
var validForRotation = daysEarlier(120);
305+
var lastSnapshot = SnapshotBuilder.start()
306+
.withEntries(
307+
new SaltEntry(1, "1", exactly90Days, "salt1", null, "90DaysOld", null, null),
308+
new SaltEntry(2, "2", over90Days, "salt2", null, "over90DaysOld", null, null)
309+
)
310+
.withEntries(1, validForRotation)
311+
.build(daysEarlier(1), daysLater(6));
312+
313+
var result = saltRotation.rotateSalts(lastSnapshot, minAges, 0.5, targetDate);
314+
assertTrue(result.hasSnapshot());
315+
316+
var salts = result.getSnapshot().getAllRotatingSalts();
317+
assertNull(salts[0].previousSalt());
318+
assertNull(salts[1].previousSalt());
299319
}
300320

301321
}

0 commit comments

Comments
 (0)