diff --git a/src/main/java/org/hisp/dhis/util/UidUtils.java b/src/main/java/org/hisp/dhis/util/UidUtils.java index f907663a..48d26f84 100644 --- a/src/main/java/org/hisp/dhis/util/UidUtils.java +++ b/src/main/java/org/hisp/dhis/util/UidUtils.java @@ -31,8 +31,10 @@ import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import java.util.List; import java.util.concurrent.ThreadLocalRandom; import java.util.regex.Pattern; +import java.util.stream.IntStream; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.commons.lang3.StringUtils; @@ -64,6 +66,16 @@ public static String generateUid() { return generateCode(UID_LENGTH); } + /** + * Generates the given number of DHIS2 UIDs. + * + * @param n the number of UIDs to generate. + * @return a list of DHIS2 UID strings. + */ + public static List generateUids(int n) { + return IntStream.range(0, n).mapToObj(i -> generateUid()).toList(); + } + /** * Tests whether the given code is a valid UID. * diff --git a/src/test/java/org/hisp/dhis/util/UidUtilsTest.java b/src/test/java/org/hisp/dhis/util/UidUtilsTest.java index 668f7d6c..be311d03 100644 --- a/src/test/java/org/hisp/dhis/util/UidUtilsTest.java +++ b/src/test/java/org/hisp/dhis/util/UidUtilsTest.java @@ -41,13 +41,18 @@ @Tag(TestTags.UNIT) class UidUtilsTest { @Test - void testGetUid() { + void testGenerateUid() { String uid = UidUtils.generateUid(); assertNotNull(uid); assertEquals(11, uid.length()); } + @Test + void testGenerateUids() { + assertEquals(3, UidUtils.generateUids(3).size()); + } + @Test void testUidIsValid() { assertTrue(UidUtils.isValidUid("mq4jAnN6fg3"));