Skip to content

Commit 18bf4e8

Browse files
Merge pull request #17 from dhis2/TECH-1449
fix: Implement readable toString for PredictableRandomizer [TECH-1449]
2 parents abfcd22 + 5f2d1bc commit 18bf4e8

2 files changed

Lines changed: 15 additions & 14 deletions

File tree

src/main/java/org/hisp/dhis/utils/PredictableRandomizer.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,11 @@ public class PredictableRandomizer implements Randomizer {
4747

4848
private final Faker faker;
4949

50+
private final long seed;
51+
5052
public PredictableRandomizer( long seed )
5153
{
54+
this.seed = seed;
5255
this.rnd = new Random( seed );
5356
this.faker = new Faker( rnd );
5457
}
@@ -79,12 +82,6 @@ public <T> List<T> randomElementsFromList( List<T> list, int size )
7982
return resultList;
8083
}
8184

82-
@Override
83-
public String randomString()
84-
{
85-
return this.faker.programmingLanguage().name();
86-
}
87-
8885
public String randomString( int size )
8986
{
9087
return this.faker.lorem().characters( size, true, false );
@@ -132,11 +129,6 @@ public String randomNationalId() {
132129
return this.faker.idNumber().valid();
133130
}
134131

135-
@Override
136-
public Date randomAdultBirthday() {
137-
return this.faker.date().birthday( 18, 80 );
138-
}
139-
140132
@Override
141133
public Date randomBirthday(int minAge, int maxAge){
142134
return this.faker.date().birthday( minAge, maxAge );
@@ -191,4 +183,9 @@ private LocalDate toLocalDate( Date dateToConvert )
191183
{
192184
return dateToConvert.toInstant().atZone( ZoneId.systemDefault() ).toLocalDate();
193185
}
186+
187+
@Override
188+
public String toString() {
189+
return "PredictableRandomizer("+ this.seed +")";
190+
}
194191
}

src/main/java/org/hisp/dhis/utils/Randomizer.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ default <T> T randomElementFromList( List<T> list )
4949
*
5050
* @return a String
5151
*/
52-
String randomString();
52+
default String randomString(){
53+
return randomString(randomInt(20));
54+
}
5355

5456
/**
5557
* Returns random string of alphabetical characters.
@@ -125,7 +127,9 @@ default <T> T randomElementFromList( List<T> list )
125127
*
126128
* @return a birthday date
127129
*/
128-
Date randomAdultBirthday();
130+
default Date randomAdultBirthday(){
131+
return randomBirthday(18, 80);
132+
};
129133

130134
/**
131135
* Generates random birthday date with age
@@ -141,7 +145,7 @@ default <T> T randomElementFromList( List<T> list )
141145
* @param wordCount number of words in the text
142146
* @return a long text
143147
*/
144-
String randomLongText(int wordCount );
148+
String randomLongText( int wordCount );
145149

146150
/**
147151
* Generates random phone number

0 commit comments

Comments
 (0)