Я занимаюсь разработкой приложения с использованием Spring Boot и PostgreSQL.Во время некоторых тестов мне нужно получить подключенного актера и реализовать это действие.
Я получаю объект, используя метод getPrincipal (), это не проблема (я получаю Garage, это расширениеобычного актера).
public Repair create(final int varId) {
final Repair r = new Repair();
Garage g = (Garage) this.actorService.findByPrincipal();
Vehicle v = this.vehicleService.findOne(varId);
r.setEntryDate(new Date(System.currentTimeMillis()-1));
r.setGarage(g);
r.setVehicle(v);
return r;
Но когда я тестирую этот метод, мне нужен способ «войти», а затем выйти из системы.Поэтому я хотел бы создать метод, такой как authenticate (String actorName), но я не уверен, как его разработать, потому что иначе невозможно провести тестирование.
Это часть моего кода тестирования:
public void template(String entryDate, String departureDate, String cause, String actions, Double labourPrice, Double itemsPrice, Double finalPrice,
int repairID, String garageName, int garageID, int vehicleID, String operation, final Class<?> expected) {
Class<?> caught;
Repair r;
caught = null;
Date now = new Date(System.currentTimeMillis());
Calendar c = Calendar.getInstance();
c.setTime(now);
c.add(Calendar.DATE, 1);
Date tomorrow = c.getTime();
c.add(Calendar.DATE, -2);
Date yesterday = c.getTime();
if(garageName != "")
authenticate(garageName);
try {
if (operation.equals("crear y guardar")) {
r = this.repairService.create(vehicleID);
} else {
// else if(operation.equals("BD y guardar")){
r = this.repairService.findOne(repairID);
}
Garage g = this.garageService.findOne(garageID);
Vehicle v = this.vehicleService.findOne(vehicleID);
if (entryDate == "Ayer")
r.setEntryDate(now);
else if (entryDate == "Mañana")
r.setEntryDate(tomorrow);
else
r.setEntryDate(null);
if (departureDate == "Hoy")
r.setDepartureDate(now);
else if (departureDate == "Ayer")
r.setDepartureDate(yesterday);