001package de.cuioss.test.generator.domain; 002 003import static de.cuioss.test.generator.Generators.fixedValues; 004 005import java.util.ArrayList; 006import java.util.List; 007 008import de.cuioss.test.generator.TypedGenerator; 009import de.cuioss.test.generator.internal.net.java.quickcheck.generator.PrimitiveGenerators; 010import de.cuioss.tools.string.Joiner; 011 012/** 013 * Provides Subjects for messages 014 * 015 * @author Oliver Wolff 016 * 017 */ 018public class MailSubjectGenerator implements TypedGenerator<String> { 019 020 private final TypedGenerator<String> prefixes = fixedValues("Re:", "Fw:", "Answ:", "Yep:"); 021 private final TypedGenerator<String> contents = 022 fixedValues("Hello", "Patient", "Document", "Record", "Yes", "No", "unknown", "Disease", 023 "Hospital", "Doctor", "Healthy", "Not seen", "Referral", "Message", "Injury", "See Also", 024 "Payment", "Registration", "Physician"); 025 026 @Override 027 public String next() { 028 final List<String> elements = new ArrayList<>(); 029 for (var i = 0; i < PrimitiveGenerators.integers(0, 3).next(); i++) { 030 elements.add(prefixes.next()); 031 } 032 for (var i = 0; i < PrimitiveGenerators.integers(0, 7).next(); i++) { 033 elements.add(contents.next()); 034 } 035 return Joiner.on(' ').join(elements); 036 } 037 038}