Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions src/main/java/com/github/javafaker/Internet.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,25 @@ private String emailAddress(String localPart, String domain) {
return join(stripAccents(localPart), "@", domain);
}

/**
* Generates a message-id (msg-id) valid per https://tools.ietf.org/html/rfc2822
*
* @param domain The domain name to use in the id-right part of the message-id
* @return A valid message id with the supplied domain
*/
public String rfcMessageId(String domain) {
return join("<", UUID.randomUUID(), "@", domain, ">");
}

/**
* Generates a message-id (msg-id) valid per https://tools.ietf.org/html/rfc2822
*
* @return A valid message id with a faker generated domain
*/
public String rfcMessageId() {
return rfcMessageId(domainName());
}

public String domainName() {
return domainWord() + "." + domainSuffix();
}
Expand Down
12 changes: 12 additions & 0 deletions src/test/java/com/github/javafaker/InternetTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,18 @@ public void testImage() {
assertThat(imageUrl, matchesRegularExpression("^http:\\/\\/lorempixel\\.com(/g)?/\\d{1,4}/\\d{1,4}/\\w+/$"));
}

@Test
public void testRfc2822MessageIdIsValid() {
String rfcMessageId = faker.internet().rfcMessageId();
assertThat(rfcMessageId, matchesRegularExpression("<.*@.*\\..*>"));
}

@Test
public void testRfc2822MessageIdIsValidSuppliedDomain() {
String rfcMessageId = faker.internet().rfcMessageId("mydomain.org");
assertThat(rfcMessageId, matchesRegularExpression("<.*@.*\\..*>"));
}

@Test
public void testDomainName() {
assertThat(faker.internet().domainName(), matchesRegularExpression("[a-z]+\\.\\w{2,4}"));
Expand Down