
uk.co.caeldev.builder4test.RandomListBuilder Maven / Gradle / Ivy
package uk.co.caeldev.builder4test;
import uk.org.fyodor.generators.Generator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class RandomListBuilder {
private final int size;
private final Creator creator;
private final Map generators;
private final Map values;
private RandomListBuilder(int size, Creator creator) {
this.size = size;
this.creator = creator;
values = new HashMap<>();
generators = new HashMap<>();
}
public static RandomListBuilder randomListBuilder(int size, Creator creator) {
return new RandomListBuilder<>(size, creator);
}
public RandomListBuilder override(Field field, Generator generator) {
generators.put(field, generator);
return this;
}
public RandomListBuilder override(Field field, U value) {
values.put(field, Optional.of(value));
return this;
}
public List get() {
LookUp lookUp = new RandomLookUp(values, generators);
return IntStream.rangeClosed(1, size)
.mapToObj(it -> EntityBuilder.entityBuilder(creator, lookUp).get())
.collect(Collectors.toList());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy