FakeProgram.java
package fr.avenirsesr.portfolio.api.infrastructure.adapter.seeder.fake;
import fr.avenirsesr.portfolio.api.domain.model.Institution;
import fr.avenirsesr.portfolio.api.domain.model.Program;
import fr.avenirsesr.portfolio.api.domain.model.enums.EDurationUnit;
import java.util.UUID;
public class FakeProgram {
private static final FakerProvider faker = new FakerProvider();
private final Program program;
private FakeProgram(Program program) {
this.program = program;
}
private static EDurationUnit randomDurationUnit() {
return faker.call().options().option(EDurationUnit.values());
}
public static FakeProgram of(Institution institution) {
return new FakeProgram(
Program.create(
UUID.fromString(faker.call().internet().uuid()),
institution,
"%s %s - %s"
.formatted(
faker.call().university().prefix(),
faker.call().university().degree(),
faker.call().number().numberBetween(1, 11)),
true,
randomDurationUnit(),
faker.call().number().numberBetween(1, 5)));
}
public static String createName() {
return "%s %s - %s"
.formatted(
faker.call().university().prefix(),
faker.call().university().degree(),
faker.call().number().numberBetween(1, 11));
}
public FakeProgram isNotAPC() {
program.setAPC(false);
return this;
}
public Program toModel() {
return program;
}
}