diff --git a/src/main/java/com/github/javafaker/Internet.java b/src/main/java/com/github/javafaker/Internet.java index 163a072e..58d1a54b 100644 --- a/src/main/java/com/github/javafaker/Internet.java +++ b/src/main/java/com/github/javafaker/Internet.java @@ -19,7 +19,7 @@ protected Internet(Faker faker) { } public String emailAddress() { - return emailAddress(faker.name().username()); + return emailAddress(faker.name().localPart()); } public String emailAddress(String localPart) { diff --git a/src/main/java/com/github/javafaker/Name.java b/src/main/java/com/github/javafaker/Name.java index 0a5238f1..dd3f25ee 100644 --- a/src/main/java/com/github/javafaker/Name.java +++ b/src/main/java/com/github/javafaker/Name.java @@ -129,6 +129,32 @@ public String username() { return StringUtils.deleteWhitespace(username); } + + /** + *

+ * A lowercase local part of an email address composed of the first_name and last_name joined with a '.'. Some + * examples are: + *

+ *

+ * @return a random two part local part of an email address. + * @see Name#firstName() + * @see Name#lastName() + */ + public String localPart() { + + String username = StringUtils.join( + firstName().toLowerCase(), + ".", + lastName().toLowerCase() + ); + + return StringUtils.deleteWhitespace(username); + } /** *

Returns a blood group such as O−, O+, A-, A+, B-, B+, AB-, AB+

diff --git a/src/test/java/com/github/javafaker/NameTest.java b/src/test/java/com/github/javafaker/NameTest.java index 6649fdd6..d9dd3f4f 100644 --- a/src/test/java/com/github/javafaker/NameTest.java +++ b/src/test/java/com/github/javafaker/NameTest.java @@ -74,7 +74,20 @@ public void testUsernameWithSpaces() { doReturn(name).when(faker).name(); assertThat(faker.name().username(), matchesRegularExpression("^(\\w+)\\.(\\w+)$")); } - + + @Test + public void testLocalPart() { + assertThat(faker.name().localPart(), matchesRegularExpression("^([\\w']+)\\.([\\w']+)$")); + } + + @Test + public void testLocalPartWithSpaces() { + final Name name = spy(new Name(faker)); + doReturn("Compound Name").when(name).firstName(); + doReturn(name).when(faker).name(); + assertThat(faker.name().localPart(), matchesRegularExpression("^([\\w']+)\\.([\\w']+)$")); + } + @Test public void testBloodGroup() { assertThat(faker.name().bloodGroup(), matchesRegularExpression("(A|B|AB|O)[+-]"));