@@ -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