001package de.cuioss.test.generator.domain; 002 003import de.cuioss.test.generator.TypedGenerator; 004 005/** 006 * Creates arbitrary {@link Person} objects 007 * 008 * @author Oliver Wolff 009 * 010 */ 011public class PersonGenerator implements TypedGenerator<Person> { 012 013 private final TypedGenerator<String> firstNames = NameGenerators.FIRSTNAMES_ANY_ENGLISH.generator(); 014 private final TypedGenerator<String> familyNames = NameGenerators.FAMILY_NAMES_ENGLISH.generator(); 015 private final TypedGenerator<String> organizations = OrganizationNameGenerator.READABLE.generator(); 016 private final TypedGenerator<String> titles = TitleGenerator.READABLE.generator(); 017 018 @Override 019 public Person next() { 020 final var firstname = firstNames.next(); 021 final var lastname = familyNames.next(); 022 return Person.builder().email(EmailGenerator.createEmail(firstname, lastname)).firstname(firstname) 023 .lastname(lastname).organisation(organizations.next()).title(titles.next()).build(); 024 } 025 026}