001package de.cuioss.test.generator.domain; 002 003import static de.cuioss.test.generator.Generators.fixedValues; 004 005import de.cuioss.test.generator.TypedGenerator; 006 007/** 008 * Creates syntactically valid email-addresses 009 * 010 * @author Oliver Wolff 011 * 012 */ 013public class EmailGenerator implements TypedGenerator<String> { 014 015 private final TypedGenerator<String> firstNames = NameGenerators.FIRSTNAMES_ANY_ENGLISH.generator(); 016 private final TypedGenerator<String> familyNames = NameGenerators.FAMILY_NAMES_ENGLISH.generator(); 017 018 private static final TypedGenerator<String> TLDS = fixedValues("de", "org", "com", "net"); 019 private static final TypedGenerator<String> DOMAINS = 020 fixedValues("email", "mail", "icw", "message", "example", "hospital"); 021 022 @Override 023 public String next() { 024 return createEmail(firstNames.next(), familyNames.next()); 025 } 026 027 /** 028 * @param firstname 029 * @param lastname 030 * @return an email address created in the form of 031 * firstname.lastname@|email|mail|icw.de|org|com|net 032 */ 033 public static String createEmail(final String firstname, final String lastname) { 034 return firstname.toLowerCase() + '.' + lastname.toLowerCase() + 035 '@' + DOMAINS.next() + 036 '.' + TLDS.next(); 037 } 038 039}