001package de.cuioss.test.generator.domain; 002 003import static de.cuioss.test.generator.Generators.fixedValues; 004import static de.cuioss.test.generator.Generators.integers; 005 006import java.util.ArrayList; 007import java.util.List; 008 009import de.cuioss.test.generator.TypedGenerator; 010import de.cuioss.tools.string.Joiner; 011 012/** 013 * Generates formally correct Distinguished Names 014 * 015 * @author Oliver Wolff 016 * 017 */ 018public class DistinguishedNamesGenerator implements TypedGenerator<String> { 019 020 private final TypedGenerator<String> prefixes = fixedValues("ou", "o", "dc"); 021 private final TypedGenerator<String> values = 022 fixedValues("proxies", "ID", "dc", "accounts", "groups", "roles", "services"); 023 024 @Override 025 public String next() { 026 List<String> elements = new ArrayList<>(); 027 int count = integers(2, 12).next(); 028 for (var i = 0; i < count; i++) { 029 elements.add(prefixes.next() + "=" + values.next()); 030 } 031 return Joiner.on(',').join(elements); 032 } 033 034 @Override 035 public Class<String> getType() { 036 return String.class; 037 } 038}