FakeInstitution.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.enums.ELanguage;
import fr.avenirsesr.portfolio.api.domain.model.enums.EPortfolioType;
import fr.avenirsesr.portfolio.api.infrastructure.adapter.seeder.translation.InstitutionTranslation;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.UUID;
public class FakeInstitution {
private static final FakerProvider faker = new FakerProvider();
private final Institution institution;
private final List<InstitutionTranslation> translations;
private FakeInstitution(Institution institution) {
this.institution = institution;
this.translations = new ArrayList<>();
}
public static FakeInstitution create() {
var fakeInstitution =
new FakeInstitution(
Institution.create(
UUID.fromString(faker.call().internet().uuid()), faker.call().university().name()));
fakeInstitution.addTranslation(ELanguage.FRENCH);
return fakeInstitution;
}
public FakeInstitution addTranslation(ELanguage language) {
translations.add(
new InstitutionTranslation(
language, String.format("%s %s", institution.getName(), language.getCode())));
return this;
}
public FakeInstitution withEnabledFiled(Set<EPortfolioType> enabledFields) {
institution.setEnabledFields(enabledFields);
return this;
}
public Institution toModel() {
return institution;
}
public List<InstitutionTranslation> getTranslations() {
return translations;
}
}