diff --git a/pom.xml b/pom.xml index 745f659f..5cf014cd 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ jar testcontainers-annotations - 4.1.1 + 4.1.3 testcontainers-annotations testcontainers-annotations diff --git a/src/main/java/dev/vality/testcontainers/annotations/util/RandomBeans.java b/src/main/java/dev/vality/testcontainers/annotations/util/RandomBeans.java index 925c643f..2111218d 100644 --- a/src/main/java/dev/vality/testcontainers/annotations/util/RandomBeans.java +++ b/src/main/java/dev/vality/testcontainers/annotations/util/RandomBeans.java @@ -20,20 +20,34 @@ public class RandomBeans { + public static final long DEFAULT_SEED = 123L; + public static T random(Class type, String... excludedFields) { - var parameters = createParametersWithExcludedFields(excludedFields); + var parameters = createParametersWithExcludedFields(DEFAULT_SEED, excludedFields); + var easyRandom = new EasyRandom(parameters); + return easyRandom.nextObject(type); + } + + public static T random(Long seed, Class type, String... excludedFields) { + var parameters = createParametersWithExcludedFields(seed, excludedFields); var easyRandom = new EasyRandom(parameters); return easyRandom.nextObject(type); } public static List randomListOf(int amount, Class type, String... excludedFields) { - var parameters = createParametersWithExcludedFields(excludedFields); + var parameters = createParametersWithExcludedFields(DEFAULT_SEED, excludedFields); + var easyRandom = new EasyRandom(parameters); + return easyRandom.objects(type, amount).collect(Collectors.toList()); + } + + public static List randomListOf(Long seed, int amount, Class type, String... excludedFields) { + var parameters = createParametersWithExcludedFields(seed, excludedFields); var easyRandom = new EasyRandom(parameters); return easyRandom.objects(type, amount).collect(Collectors.toList()); } public static Stream randomStreamOf(int amount, Class type, String... excludedFields) { - var parameters = createParametersWithExcludedFields(excludedFields); + var parameters = createParametersWithExcludedFields(DEFAULT_SEED, excludedFields); var easyRandom = new EasyRandom(parameters); return easyRandom.objects(type, amount); } @@ -56,7 +70,7 @@ public static Stream randomStreamOf(int amount, Class type, String... return mockTBaseProcessor.process(type.getConstructor().newInstance(), new TBaseHandler<>(type)); } - private static EasyRandomParameters createParametersWithExcludedFields(String... excludedFields) { + private static EasyRandomParameters createParametersWithExcludedFields(Long seed, String... excludedFields) { var parameters = new EasyRandomParameters(); parameters.randomize(LocalDateTime.class, () -> { var dateTime = LocalDateTime.now(); @@ -98,7 +112,8 @@ private static EasyRandomParameters createParametersWithExcludedFields(String... parameters.excludeField(field -> field.getName().equals(excludedField)); } } - parameters.objectPoolSize(100) + parameters.seed(seed) + .objectPoolSize(100) .randomizationDepth(3) .charset(StandardCharsets.UTF_8) .stringLengthRange(5, 50)