package hu.sch.ejb.test.builder;
import hu.sch.domain.enums.SvieMembershipType;
import hu.sch.domain.enums.SvieStatus;
import hu.sch.domain.user.Gender;
import hu.sch.domain.user.StudentStatus;
import hu.sch.domain.user.User;
import hu.sch.domain.user.UserStatus;
import java.util.Date;
import javax.persistence.EntityManager;
/**
*
* @author tomi
*/
public class UserBuilder extends AbstractBuilder<User> {
private static int screenNameSuffix = 0;
private String lastName = "Teszt";
private String firstName = "Elek";
private SvieMembershipType svieMembership = SvieMembershipType.NEMTAG;
private SvieStatus svieStatus = SvieStatus.NEMTAG;
private String screenName = "teszt.elek";
private Gender gender = Gender.MALE;
private StudentStatus studentStatus = StudentStatus.ACTIVE;
private Date dateOfBirth = new Date();
private String email;
private String neptun;
public UserBuilder withNeptun(String neptun) {
this.neptun = neptun;
return this;
}
public UserBuilder withLastName(String lastName) {
this.lastName = lastName;
return this;
}
public UserBuilder withFirstName(String firstName) {
this.firstName = firstName;
return this;
}
public UserBuilder withScreenName(String screenName) {
this.screenName = screenName;
return this;
}
public UserBuilder withEmail(String email) {
this.email = email;
return this;
}
public UserBuilder withSvieMemebership(SvieMembershipType svieMemebership) {
this.svieMembership = svieMemebership;
return this;
}
public UserBuilder withSvieStatus(SvieStatus status) {
this.svieStatus = status;
return this;
}
public UserBuilder withGender(Gender gender) {
this.gender = gender;
return this;
}
public UserBuilder withStudentStatus(StudentStatus status) {
this.studentStatus = status;
return this;
}
public UserBuilder withDateOfBirth(Date dob) {
this.dateOfBirth = dob;
return this;
}
@Override
public User build() {
User user = new User();
user.setGender(gender);
user.setStudentStatus(studentStatus);
user.setFirstName(firstName);
user.setLastName(lastName);
user.setSvieMembershipType(svieMembership);
user.setSvieStatus(svieStatus);
user.setScreenName(screenName + (screenNameSuffix++));
user.setDateOfBirth(dateOfBirth);
user.setEmailAddress(email);
user.setUserStatus(UserStatus.ACTIVE);
user.setNeptunCode(neptun);
return user;
}
}