55import app .component .Operator ;
66import com .fasterxml .jackson .core .JsonProcessingException ;
77import com .fasterxml .jackson .databind .ObjectMapper ;
8- import com .fasterxml .jackson .databind .node .ObjectNode ;
98import com .uid2 .client .DecryptionStatus ;
109import org .junit .jupiter .params .provider .Arguments ;
1110
1211import java .util .*;
1312import java .util .stream .Collectors ;
14- import java .util .stream .IntStream ;
1513import java .util .stream .Stream ;
1614
1715import static org .junit .jupiter .api .Named .named ;
1816
1917public final class TestData {
2018 public static final int RAW_UID2_LENGTH = 44 ;
19+ private static final Random RANDOM = new Random ();
2120
2221 private TestData () {
2322 }
@@ -329,16 +328,20 @@ public static Set<Arguments> identityMapBatchEmailArgs() {
329328
330329 public static Set <Arguments > identityMapBigBatchArgs () throws JsonProcessingException {
331330 ObjectMapper mapper = new ObjectMapper ();
332- Random random = new Random ();
333331 Set <Operator > operators = AppsMap .getApps (Operator .class );
334332
335333 List <String > emails = new ArrayList <>();
336334 List <String > phones = new ArrayList <>();
335+ List <String > emailHashes = new ArrayList <>();
336+ List <String > phoneHashes = new ArrayList <>();
337337 for (int i = 0 ; i < 10_000 ; i ++) {
338- emails .add ("email_" + Math .abs (random .nextLong ()) + "@example.com" );
338+ emails .add ("email_" + Math .abs (RANDOM .nextLong ()) + "@example.com" );
339339
340340 // Phone numbers with 15 digits are technically valid but are not used in any country
341- phones .add ("+" + String .format ("%015d" , Math .abs (random .nextLong () % 1_000_000_000_000_000L )));
341+ phones .add ("+" + String .format ("%015d" , Math .abs (RANDOM .nextLong () % 1_000_000_000_000_000L )));
342+
343+ emailHashes .add (fakeRandomHash ());
344+ phoneHashes .add (fakeRandomHash ());
342345 }
343346
344347 var emailsJson = mapper .createObjectNode ().putPOJO ("email" , emails ).put ("policy" , 1 );
@@ -347,14 +350,28 @@ public static Set<Arguments> identityMapBigBatchArgs() throws JsonProcessingExce
347350 var phonesJson = mapper .createObjectNode ().putPOJO ("phone" , phones ).put ("policy" , 1 );
348351 String phonesPayload = mapper .writeValueAsString (phonesJson );
349352
353+ var emailHashesJson = mapper .createObjectNode ().putPOJO ("email_hash" , emailHashes ).put ("policy" , 1 );
354+ String emailHashesPayload = mapper .writeValueAsString (emailHashesJson );
355+
356+ var phoneHashesJson = mapper .createObjectNode ().putPOJO ("phone_hash" , phoneHashes ).put ("policy" , 1 );
357+ String phoneHashesPayload = mapper .writeValueAsString (phoneHashesJson );
358+
350359 Set <Arguments > args = new HashSet <>();
351360 for (Operator operator : operators ) {
352361 args .add (Arguments .of ("10k emails" , operator , operator .getName (), emailsPayload , emails ));
353362 args .add (Arguments .of ("10k phones" , operator , operator .getName (), phonesPayload , phones ));
363+ args .add (Arguments .of ("10k email hashes" , operator , operator .getName (), emailHashesPayload , emailHashes ));
364+ args .add (Arguments .of ("10k phone hashes" , operator , operator .getName (), phoneHashesPayload , phoneHashes ));
354365 }
355366 return args ;
356367 }
357368
369+ private static String fakeRandomHash () {
370+ byte [] randomBytes = new byte [32 ];
371+ RANDOM .nextBytes (randomBytes );
372+ return Base64 .getEncoder ().encodeToString (randomBytes );
373+ }
374+
358375 public static Set <Arguments > identityMapBatchEmailArgsBadPolicy () {
359376 Set <Operator > operators = getPublicOperators ();
360377 Set <List <String >> inputs = Set .of (
0 commit comments