diff --git a/src/main/java/com/github/javafaker/Options.java b/src/main/java/com/github/javafaker/Options.java index dd24673d..7f063e7f 100644 --- a/src/main/java/com/github/javafaker/Options.java +++ b/src/main/java/com/github/javafaker/Options.java @@ -12,4 +12,9 @@ public class Options { public String option(String... options) { return options[randomService.nextInt(options.length)]; } + + public > E option(Class enumeration) { + E[] enumConstants = enumeration.getEnumConstants(); + return enumConstants[randomService.nextInt(enumConstants.length)]; + } } \ No newline at end of file diff --git a/src/test/java/com/github/javafaker/BeerTest.java b/src/test/java/com/github/javafaker/BeerTest.java index b0463388..d4d67994 100644 --- a/src/test/java/com/github/javafaker/BeerTest.java +++ b/src/test/java/com/github/javafaker/BeerTest.java @@ -17,7 +17,7 @@ public class BeerTest { @Test public void testName() { - assertThat(faker.beer().name(), matchesRegularExpression("[A-Za-z'() 0-9-’’]+")); + assertThat(faker.beer().name(), matchesRegularExpression("[\\p{L}'()\\., 0-9-’’]+")); } @Test diff --git a/src/test/java/com/github/javafaker/OptionsTest.java b/src/test/java/com/github/javafaker/OptionsTest.java index 7e644143..83113ea6 100644 --- a/src/test/java/com/github/javafaker/OptionsTest.java +++ b/src/test/java/com/github/javafaker/OptionsTest.java @@ -26,4 +26,13 @@ public class OptionsTest { public void testOptionWithVarargs() { assertThat(faker.options().option("A", "B", "C"), isOneOf(options)); } + + @Test + public void testOptionWithEnum() { + assertThat(faker.options().option(Day.class), isOneOf(Day.values())); + } + + public enum Day { + MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY + } }