Skip to content

Commit 8eab531

Browse files
authored
Merge pull request #326 from IABTechLab/wzh-uid2-3846-get-rid-of-spy
replace spy with mock
2 parents bfe4d0c + c2ef3d9 commit 8eab531

File tree

4 files changed

+17
-39
lines changed

4 files changed

+17
-39
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.uid2</groupId>
88
<artifactId>uid2-admin</artifactId>
9-
<version>5.12.0</version>
9+
<version>5.12.1-alpha-85-SNAPSHOT</version>
1010

1111
<properties>
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

src/main/java/com/uid2/admin/Main.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,8 @@ public void run() {
201201
GlobalScope s3KeyGlobalScope = new GlobalScope(s3KeyMetadataPath);
202202
RotatingS3KeyProvider s3KeyProvider = new RotatingS3KeyProvider(cloudStorage, s3KeyGlobalScope);
203203
S3KeyStoreWriter s3KeyStoreWriter = new S3KeyStoreWriter(s3KeyProvider, fileManager, jsonWriter, versionGenerator, clock, s3KeyGlobalScope);
204-
S3KeyManager s3KeyManager = new S3KeyManager(s3KeyProvider, s3KeyStoreWriter);
204+
IKeyGenerator keyGenerator = new SecureKeyGenerator();
205+
S3KeyManager s3KeyManager = new S3KeyManager(s3KeyProvider, s3KeyStoreWriter,keyGenerator);
205206
try {
206207
s3KeyProvider.loadContent();
207208
} catch (CloudStorageException e) {
@@ -231,7 +232,6 @@ public void run() {
231232
AdminAuthMiddleware auth = new AdminAuthMiddleware(authProvider, config);
232233
TokenRefreshHandler tokenRefreshHandler = new TokenRefreshHandler(authProvider.getIdTokenVerifier(), config);
233234
WriteLock writeLock = new WriteLock();
234-
IKeyGenerator keyGenerator = new SecureKeyGenerator();
235235
KeyHasher keyHasher = new KeyHasher();
236236
IKeypairGenerator keypairGenerator = new SecureKeypairGenerator();
237237
ISaltRotation saltRotation = new SaltRotation(config, keyGenerator);

src/main/java/com/uid2/admin/managers/S3KeyManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ public class S3KeyManager {
2323
private final S3KeyStoreWriter s3KeyStoreWriter;
2424
private final IKeyGenerator keyGenerator;
2525

26-
public S3KeyManager(RotatingS3KeyProvider s3KeyProvider, S3KeyStoreWriter s3KeyStoreWriter) {
26+
public S3KeyManager(RotatingS3KeyProvider s3KeyProvider, S3KeyStoreWriter s3KeyStoreWriter, IKeyGenerator keyGenerator) {
2727
this.s3KeyProvider = s3KeyProvider;
2828
this.s3KeyStoreWriter = s3KeyStoreWriter;
29-
this.keyGenerator = new SecureKeyGenerator();
29+
this.keyGenerator = keyGenerator;
3030
}
3131

3232
S3Key generateS3Key(int siteId, long activates, long created) throws Exception {

src/test/java/com/uid2/admin/managers/S3KeyManagerTest.java

Lines changed: 12 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ void setUp() {
2929
s3KeyProvider = mock(RotatingS3KeyProvider.class);
3030
s3KeyStoreWriter = mock(S3KeyStoreWriter.class);
3131
keyGenerator = mock(IKeyGenerator.class);
32-
s3KeyManager = spy(new S3KeyManager(s3KeyProvider, s3KeyStoreWriter));
32+
s3KeyManager = new S3KeyManager(s3KeyProvider, s3KeyStoreWriter,keyGenerator);
3333
}
3434

3535
@Test
3636
void testGenerateS3Key() throws Exception {
37-
doReturn("randomKeyString").when(s3KeyManager).generateSecret();
37+
when(keyGenerator.generateRandomKeyString(32)).thenReturn("randomKeyString");
3838

3939
S3Key s3Key = s3KeyManager.generateS3Key(1, 1000L, 2000L);
4040

@@ -178,7 +178,7 @@ void testGetAllS3KeysBySiteId() {
178178
@Test
179179
void testCreateAndAddImmediateS3Key() throws Exception {
180180
when(s3KeyProvider.getAll()).thenReturn(new HashMap<>());
181-
doReturn("generatedSecret").when(s3KeyManager).generateSecret();
181+
when(keyGenerator.generateRandomKeyString(32)).thenReturn("generatedSecret");
182182

183183
S3Key newKey = s3KeyManager.createAndAddImmediate3Key(100);
184184

@@ -308,31 +308,15 @@ void testGenerateKeysForOperators() throws Exception {
308308
existingKeys.put(1, new S3Key(1, 100, 1000L, 900L, "existingKey1"));
309309
when(s3KeyProvider.getAll()).thenReturn(existingKeys);
310310

311-
doReturn("generatedSecret").when(s3KeyManager).generateSecret();
311+
when(keyGenerator.generateRandomKeyString(32)).thenReturn("generatedSecret");
312312

313313
s3KeyManager.generateKeysForOperators(operatorKeys, keyActivateInterval, keyCountPerSite);
314314

315315
verify(s3KeyProvider, times(1)).loadContent();
316316

317-
ArgumentCaptor<S3Key> keyCaptor = ArgumentCaptor.forClass(S3Key.class);
318-
verify(s3KeyManager, times(5)).addS3Key(keyCaptor.capture());
319-
320-
List<S3Key> capturedKeys = keyCaptor.getAllValues();
321-
assertEquals(5, capturedKeys.size());
322-
323-
List<S3Key> site100Keys = capturedKeys.stream()
324-
.filter(key -> key.getSiteId() == 100)
325-
.sorted(Comparator.comparingLong(S3Key::getActivates))
326-
.collect(Collectors.toList());
327-
assertEquals(2, site100Keys.size());
328-
assertTrue(site100Keys.get(1).getActivates() - site100Keys.get(0).getActivates() >= keyActivateInterval);
329-
330-
List<S3Key> site200Keys = capturedKeys.stream()
331-
.filter(key -> key.getSiteId() == 200)
332-
.sorted(Comparator.comparingLong(S3Key::getActivates))
333-
.collect(Collectors.toList());
334-
assertEquals(3, site200Keys.size());
335-
assertTrue(site200Keys.get(1).getActivates() - site200Keys.get(0).getActivates() >= keyActivateInterval);
317+
ArgumentCaptor<Map<Integer, S3Key>> mapCaptor = ArgumentCaptor.forClass(Map.class);
318+
// 6 keys needed - 1 existed keys = 5 new keys
319+
verify(s3KeyStoreWriter, times(5)).upload(mapCaptor.capture(), isNull());
336320
}
337321

338322
@Test
@@ -351,7 +335,7 @@ void testGenerateKeysForOperators_NoNewKeysNeeded() throws Exception {
351335

352336
s3KeyManager.generateKeysForOperators(operatorKeys, keyActivateInterval, keyCountPerSite);
353337

354-
verify(s3KeyManager, never()).addS3Key(any());
338+
verify(s3KeyStoreWriter, never()).upload(any(), any());
355339
}
356340

357341
@Test
@@ -407,19 +391,13 @@ void testGenerateKeysForOperators_MultipleSitesWithVaryingExistingKeys() throws
407391
existingKeys.put(3, new S3Key(3, 200, 3000L, 2900L, "existingKey3"));
408392
when(s3KeyProvider.getAll()).thenReturn(existingKeys);
409393

410-
doReturn("generatedSecret").when(s3KeyManager).generateSecret();
394+
when(keyGenerator.generateRandomKeyString(32)).thenReturn("generatedSecret");
411395

412396
s3KeyManager.generateKeysForOperators(operatorKeys, keyActivateInterval, keyCountPerSite);
413397

414-
ArgumentCaptor<S3Key> keyCaptor = ArgumentCaptor.forClass(S3Key.class);
415-
verify(s3KeyManager, times(6)).addS3Key(keyCaptor.capture());
416-
417-
List<S3Key> capturedKeys = keyCaptor.getAllValues();
418-
assertEquals(6, capturedKeys.size());
419-
420-
assertEquals(2, capturedKeys.stream().filter(key -> key.getSiteId() == 100).count());
421-
assertEquals(1, capturedKeys.stream().filter(key -> key.getSiteId() == 200).count());
422-
assertEquals(3, capturedKeys.stream().filter(key -> key.getSiteId() == 300).count());
398+
ArgumentCaptor<Map<Integer, S3Key>> mapCaptor = ArgumentCaptor.forClass(Map.class);
399+
// 9 keys needed - 3 existed keys = 6 new keys
400+
verify(s3KeyStoreWriter, times(6)).upload(mapCaptor.capture(), isNull());
423401
}
424402

425403
private OperatorKey createOperatorKey(String keyHash, int siteId) {

0 commit comments

Comments
 (0)