This commit is contained in:
Калышев Ян 2023-04-25 16:24:49 +04:00
parent 1faa719f92
commit e007f51d04
20 changed files with 173 additions and 276 deletions

View File

@ -81,7 +81,6 @@
addCabinetToComputer(computerId) { addCabinetToComputer(computerId) {
let cabinetId = document.getElementById('cabinets').value; let cabinetId = document.getElementById('cabinets').value;
let response = axios.post(`http://localhost:8080/api/computer/${computerId}/cabinet?cabinetId=${cabinetId}`); let response = axios.post(`http://localhost:8080/api/computer/${computerId}/cabinet?cabinetId=${cabinetId}`);
console.log(response);
}, },
itemsComps(computers) { itemsComps(computers) {
if (typeof computers === 'undefined') { if (typeof computers === 'undefined') {
@ -94,11 +93,13 @@
} }
}); });
this.cabinets.forEach(cabinet => { this.cabinets.forEach(cabinet => {
if (computer.cabinetId === cabinet.id) { cabinet.computerIds.forEach(computerId => {
if (computer.id === computerId) {
computer.cabinet = cabinet; computer.cabinet = cabinet;
} }
}); });
}); });
});
return computers; return computers;
} }
} }
@ -161,7 +162,7 @@
</option> </option>
</select> </select>
</div> </div>
<div class="mb-3"> <!-- <div class="mb-3">
<label for="cabinet" class="form-label">Номер кабинета</label> <label for="cabinet" class="form-label">Номер кабинета</label>
<select class="form-select" id="cabinet" v-model="data.cabinetId"> <select class="form-select" id="cabinet" v-model="data.cabinetId">
<option disabled value="">Выберите номер кабинета</option> <option disabled value="">Выберите номер кабинета</option>
@ -171,6 +172,6 @@
{{ cabinet.number }} {{ cabinet.number }}
</option> </option>
</select> </select>
</div> </div> -->
</Modal> </Modal>
</template> </template>

View File

@ -82,7 +82,7 @@ const CatalogMixin = {
const promises = []; const promises = [];
const self = this; const self = this;
this.selectedItems.forEach(item => { this.selectedItems.forEach(item => {
promises.push(DataService.delete(this.dataUrl + item)); promises.push(DataService.delete(this.dataUrl + "/" + item));
}); });
Promise.all(promises).then((results) => { Promise.all(promises).then((results) => {
results.forEach(function (id) { results.forEach(function (id) {

View File

@ -6,7 +6,6 @@ export default class Computer {
this._monitor = data?.monitor; this._monitor = data?.monitor;
this._monitorId = data?.monitorId; this._monitorId = data?.monitorId;
this._cabinet = data?.cabinet; this._cabinet = data?.cabinet;
this._cabinetId = data?.cabinetId;
} }
get id() { get id() {
@ -49,14 +48,6 @@ export default class Computer {
return this._monitor?.modelName; return this._monitor?.modelName;
} }
get cabinetId() {
return this._cabinetId;
}
set cabinetId(value) {
this._cabinetId = value;
}
get cabinet() { get cabinet() {
return this._cabinet; return this._cabinet;
} }

View File

@ -2,7 +2,6 @@ package com.kalyshev.yan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication @SpringBootApplication
public class YanApplication { public class YanApplication {

View File

@ -1,15 +1,11 @@
package com.kalyshev.yan.cabinet.controller; package com.kalyshev.yan.cabinet.controller;
import com.kalyshev.yan.WebConfiguration; import com.kalyshev.yan.WebConfiguration;
import com.kalyshev.yan.cabinet.service.CabinetService;
import com.kalyshev.yan.computer.controller.ComputerDto; import com.kalyshev.yan.computer.controller.ComputerDto;
import com.kalyshev.yan.computer.model.Computer;
import com.kalyshev.yan.monitor.controller.MonitorDto;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.kalyshev.yan.cabinet.model.Cabinet;
import com.kalyshev.yan.cabinet.service.CabinetService;
import java.util.Date;
import java.util.List; import java.util.List;
@RestController @RestController
@ -31,7 +27,7 @@ public class CabinetController {
} }
@GetMapping("/{id}/computers") @GetMapping("/{id}/computers")
public List<ComputerDto> getCabinetComputers(@PathVariable Long id) { public List<ComputerDto> getCabinetComputers(@PathVariable Long id) {
return cabinetService.listComputers(id).stream() return cabinetService.listComputersFromCabinet(id).stream()
.map(ComputerDto::new) .map(ComputerDto::new)
.toList(); .toList();
} }
@ -47,9 +43,9 @@ public class CabinetController {
return new CabinetDto(cabinetService.addCabinet(cabinetDto.getNumber())); return new CabinetDto(cabinetService.addCabinet(cabinetDto.getNumber()));
} }
@PostMapping("/{id}/computer") @PostMapping("/{id}/computer")
public ComputerDto createCabinetComputer(@PathVariable Long id, public void createCabinetComputer(@PathVariable Long id,
@RequestParam("computerId") Long computerId) { @RequestParam("computerId") Long computerId) {
return new ComputerDto(cabinetService.addComputer(computerId, id)); cabinetService.addComputerToCabinet(computerId, id);
} }
@PutMapping("/{id}") @PutMapping("/{id}")
public CabinetDto updateCabinet(@PathVariable Long id, public CabinetDto updateCabinet(@PathVariable Long id,
@ -61,8 +57,8 @@ public class CabinetController {
return new CabinetDto(cabinetService.deleteCabinet(id)); return new CabinetDto(cabinetService.deleteCabinet(id));
} }
@DeleteMapping("/{cabinetId}/computer") @DeleteMapping("/{cabinetId}/computer")
public ComputerDto deleteCabinetComputer(@PathVariable Long cabinetId, public void deleteCabinetComputer(@PathVariable Long cabinetId,
@RequestParam("computerId") Long computerId) { @RequestParam("computerId") Long computerId) {
return new ComputerDto(cabinetService.deleteComputer(computerId, cabinetId)); cabinetService.deleteComputerFromCabinet(computerId, cabinetId);
} }
} }

View File

@ -50,10 +50,12 @@ public class Cabinet {
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) return true; if (this == o)
if (o == null || getClass() != o.getClass()) return false; return true;
if (!(o instanceof Cabinet))
return false;
Cabinet cabinet = (Cabinet) o; Cabinet cabinet = (Cabinet) o;
return Objects.equals(id, cabinet.id); return Objects.equals(id, cabinet.id) && Objects.equals(this.number, cabinet.number);
} }
@Override @Override
public int hashCode() { public int hashCode() {

View File

@ -1,7 +1,15 @@
package com.kalyshev.yan.cabinet.repository; package com.kalyshev.yan.cabinet.repository;
import com.kalyshev.yan.cabinet.model.Cabinet; import com.kalyshev.yan.cabinet.model.Cabinet;
import com.kalyshev.yan.monitor.model.Monitor;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
public interface CabinetRepository extends JpaRepository<Cabinet, Long> { public interface CabinetRepository extends JpaRepository<Cabinet, Long> {
@Query(value = "select s from Cabinet s where (s.id = :id or :id is Null) and (s.number = :number or :number is Null)")
public List<Cabinet> findFilteredCabinets(@Param("id") Long id,
@Param("number") String number);
} }

View File

@ -1,32 +1,30 @@
package com.kalyshev.yan.cabinet.service; package com.kalyshev.yan.cabinet.service;
import com.kalyshev.yan.cabinet.model.Cabinet;
import com.kalyshev.yan.cabinet.repository.CabinetNotFoundException; import com.kalyshev.yan.cabinet.repository.CabinetNotFoundException;
import com.kalyshev.yan.cabinet.repository.CabinetRepository; import com.kalyshev.yan.cabinet.repository.CabinetRepository;
import com.kalyshev.yan.computer.model.Computer; import com.kalyshev.yan.computer.model.Computer;
import com.kalyshev.yan.computer.repository.ComputerNotFoundException; import com.kalyshev.yan.computer.service.ComputerService;
import com.kalyshev.yan.computer.repository.ComputerRepository;
import com.kalyshev.yan.util.validation.ValidatorUtil; import com.kalyshev.yan.util.validation.ValidatorUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import com.kalyshev.yan.cabinet.model.Cabinet;
import jakarta.persistence.EntityManager; import java.util.ArrayList;
import jakarta.persistence.EntityNotFoundException; import java.util.List;
import jakarta.persistence.PersistenceContext; import java.util.Objects;
import java.util.Optional;
import java.util.*;
@Service @Service
public class CabinetService { public class CabinetService {
private final CabinetRepository cabinetRepository; private final CabinetRepository cabinetRepository;
private final ComputerRepository computerRepository; private final ComputerService computerService;
private final ValidatorUtil validatorUtil; private final ValidatorUtil validatorUtil;
public CabinetService(CabinetRepository cabinetRepository, public CabinetService(CabinetRepository cabinetRepository,
ComputerRepository computerRepository, ComputerService computerService,
ValidatorUtil validatorUtil) { ValidatorUtil validatorUtil) {
this.cabinetRepository = cabinetRepository; this.cabinetRepository = cabinetRepository;
this.computerRepository = computerRepository; this.computerService = computerService;
this.validatorUtil = validatorUtil; this.validatorUtil = validatorUtil;
} }
@Transactional @Transactional
@ -45,21 +43,7 @@ public class CabinetService {
} }
@Transactional(readOnly = true) @Transactional(readOnly = true)
public List<Cabinet> findFilteredCabinets(Long id, String number) { public List<Cabinet> findFilteredCabinets(Long id, String number) {
List<Cabinet> allCabinets = cabinetRepository.findAll(); return cabinetRepository.findFilteredCabinets(id, number);
List<Cabinet> result = new ArrayList<>();
for (Cabinet cabinet : allCabinets) {
boolean flag = true;
if (id != null && !Objects.equals(cabinet.getId(), id)) {
flag = false;
}
if (number != null && !Objects.equals(cabinet.getNumber(), number)) {
flag = false;
}
if (flag) {
result.add(cabinet);
}
}
return result;
} }
@Transactional(readOnly = true) @Transactional(readOnly = true)
public List<Cabinet> findAllCabinets() { public List<Cabinet> findAllCabinets() {
@ -78,13 +62,7 @@ public class CabinetService {
@Transactional @Transactional
public Cabinet deleteCabinet(Long id) { public Cabinet deleteCabinet(Long id) {
final Cabinet currentCabinet = findCabinet(id); final Cabinet currentCabinet = findCabinet(id);
int size = currentCabinet.getComputers().size(); computerService.deleteRelationsWithCabinets(currentCabinet.getComputers());
for (int i = 0; i < size; i++) {
Computer computer = currentCabinet.getComputers().get(i);
computer.setCabinet(null);
currentCabinet.removeComputer(computer);
computerRepository.delete(computer);
}
cabinetRepository.delete(currentCabinet); cabinetRepository.delete(currentCabinet);
return currentCabinet; return currentCabinet;
} }
@ -93,38 +71,34 @@ public class CabinetService {
cabinetRepository.deleteAll(); cabinetRepository.deleteAll();
} }
@Transactional @Transactional
public List<Computer> listComputers(Long id) { public List<Computer> listComputersFromCabinet(Long id) {
if ((Object)id == null) { if ((Object)id == null) {
throw new IllegalArgumentException("Cabinet id is null or empty"); throw new IllegalArgumentException("Cabinet id is null or empty");
} }
return findCabinet(id).getComputers(); return findCabinet(id).getComputers();
} }
@Transactional @Transactional
public Computer addComputer(Long computerId, Long cabinetId) { public void addComputerToCabinet(Long computerId, Long cabinetId) {
if ((Object)computerId == null) { if ((Object)computerId == null) {
throw new IllegalArgumentException("Computer id is null or empty"); throw new IllegalArgumentException("Computer id is null or empty");
} }
if ((Object)cabinetId == null) { if ((Object)cabinetId == null) {
throw new IllegalArgumentException("Cabinet id is null or empty"); throw new IllegalArgumentException("Cabinet id is null or empty");
} }
final Computer computer = computerRepository.findById(computerId) final Computer computer = computerService.findComputer(computerId);
.orElseThrow(() -> new ComputerNotFoundException(computerId));
final Cabinet cabinet = findCabinet(cabinetId); final Cabinet cabinet = findCabinet(cabinetId);
cabinet.addComputer(computer); cabinet.addComputer(computer);
return computer;
} }
@Transactional @Transactional
public Computer deleteComputer(Long computerId, Long cabinetId) { public void deleteComputerFromCabinet(Long computerId, Long cabinetId) {
if ((Object) computerId == null) { if ((Object) computerId == null) {
throw new IllegalArgumentException("Computer id is null or empty"); throw new IllegalArgumentException("Computer id is null or empty");
} }
if ((Object) cabinetId == null) { if ((Object) cabinetId == null) {
throw new IllegalArgumentException("Cabinet id is null or empty"); throw new IllegalArgumentException("Cabinet id is null or empty");
} }
final Computer computer = computerRepository.findById(computerId) final Computer computer = computerService.findComputer(computerId);
.orElseThrow(() -> new ComputerNotFoundException(computerId));
final Cabinet cabinet = findCabinet(cabinetId); final Cabinet cabinet = findCabinet(cabinetId);
cabinet.removeComputer(computer); cabinet.removeComputer(computer);
return computer;
} }
} }

View File

@ -1,13 +1,10 @@
package com.kalyshev.yan.computer.controller; package com.kalyshev.yan.computer.controller;
import com.kalyshev.yan.WebConfiguration; import com.kalyshev.yan.WebConfiguration;
import com.kalyshev.yan.cabinet.controller.CabinetDto; import com.kalyshev.yan.computer.service.ComputerService;
import com.kalyshev.yan.cabinet.model.Cabinet;
import com.kalyshev.yan.monitor.controller.MonitorDto; import com.kalyshev.yan.monitor.controller.MonitorDto;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.kalyshev.yan.computer.model.Computer;
import com.kalyshev.yan.computer.service.ComputerService;
import java.util.List; import java.util.List;
@ -38,18 +35,9 @@ public class ComputerController {
.map(ComputerDto::new) .map(ComputerDto::new)
.toList(); .toList();
} }
@GetMapping("/{id}/computers")
public CabinetDto getComputersCabinet(@PathVariable Long id) {
return new CabinetDto(computerService.getCabinet(id));
}
@PostMapping("/") @PostMapping("/")
public ComputerDto createComputer(@RequestBody @Valid ComputerDto computerDto) { public ComputerDto createComputer(@RequestBody @Valid ComputerDto computerDto) {
return new ComputerDto(computerService.addComputer(computerDto.getModelName(), computerDto.getSerialNum(), computerDto.getMonitorId(), computerDto.getCabinetId())); return new ComputerDto(computerService.addComputer(computerDto.getModelName(), computerDto.getSerialNum(), computerDto.getMonitorId()));
}
@PostMapping("/{id}/cabinet")
public CabinetDto setCabinetComputer(@PathVariable Long id,
@RequestParam("cabinetId") Long cabinetId) {
return new CabinetDto(computerService.setCabinet(cabinetId, id));
} }
@PostMapping("/{id}/monitor") @PostMapping("/{id}/monitor")
public MonitorDto setMonitorComputer(@PathVariable Long id, public MonitorDto setMonitorComputer(@PathVariable Long id,

View File

@ -2,12 +2,8 @@ package com.kalyshev.yan.computer.model;
import com.kalyshev.yan.cabinet.model.Cabinet; import com.kalyshev.yan.cabinet.model.Cabinet;
import com.kalyshev.yan.monitor.model.Monitor; import com.kalyshev.yan.monitor.model.Monitor;
import jakarta.annotation.Nullable;
import jakarta.persistence.*; import jakarta.persistence.*;
import jakarta.validation.constraints.Null;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects; import java.util.Objects;
@Entity @Entity
@ -21,7 +17,7 @@ public class Computer {
@ManyToOne( cascade = {CascadeType.MERGE}, fetch = FetchType.EAGER) @ManyToOne( cascade = {CascadeType.MERGE}, fetch = FetchType.EAGER)
@JoinColumn(name = "cabinet", nullable = true) @JoinColumn(name = "cabinet", nullable = true)
private Cabinet cabinet; private Cabinet cabinet;
@OneToOne() @OneToOne(cascade = {CascadeType.MERGE})
@JoinColumn(name = "monitor_id") @JoinColumn(name = "monitor_id")
private Monitor monitor; private Monitor monitor;
@ -61,13 +57,14 @@ public class Computer {
this.monitor = null; this.monitor = null;
return temp; return temp;
} }
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) return true; if (this == o)
if (o == null || getClass() != o.getClass()) return false; return true;
if (!(o instanceof Computer))
return false;
Computer computer = (Computer) o; Computer computer = (Computer) o;
return Objects.equals(id, computer.id); return Objects.equals(id, computer.id) && Objects.equals(this.modelName, computer.modelName) && Objects.equals(this.monitor, computer.monitor) && Objects.equals(this.cabinet, computer.cabinet);
} }
@Override @Override
public int hashCode() { public int hashCode() {

View File

@ -1,7 +1,34 @@
package com.kalyshev.yan.computer.repository; package com.kalyshev.yan.computer.repository;
import com.kalyshev.yan.computer.model.Computer; import com.kalyshev.yan.computer.model.Computer;
import com.kalyshev.yan.monitor.model.Monitor;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.Collection;
import java.util.List;
public interface ComputerRepository extends JpaRepository<Computer, Long> { public interface ComputerRepository extends JpaRepository<Computer, Long> {
@Query(value = "select * from Computer where (\"ID\" = :id or :id is Null) and " +
"(\"MODEL_NAME\" = :modelName or :modelName is Null) and " +
"(\"SERIAL_NUM\" = :serialNum or :serialNum is Null) and " +
"(\"MONITOR_ID\" = :monitorId or :monitorId is Null) and " +
"(\"CABINET\" = :cabinetId or :cabinetId is Null)", nativeQuery = true)
public List<Computer> findFilteredComputers(@Param("id") Long id,
@Param("modelName") String modelName,
@Param("serialNum") String serialNum,
@Param("monitorId") Long monitorId,
@Param("cabinetId") Long cabinetId);
@Query(value = "select * from Computer where \"MONITOR_ID\" = :monitorId", nativeQuery = true)
public Computer findComputerByMonitor(@Param("monitorId") Long monitorId);
@Modifying
@Query(value = "update Computer set \"MONITOR_ID\" = null", nativeQuery = true)
public void removeAllComputerMonitorRelations();
// @Query(value = "update Computer where id in :computerIds set cabinet_id = null")
// public void deleteRelationsWithCabinets(@Param("computerIds") Collection<Long> computerIds);
} }

View File

@ -1,44 +1,33 @@
package com.kalyshev.yan.computer.service; package com.kalyshev.yan.computer.service;
import com.kalyshev.yan.cabinet.model.Cabinet; import com.kalyshev.yan.cabinet.model.Cabinet;
import com.kalyshev.yan.cabinet.repository.CabinetNotFoundException; import com.kalyshev.yan.computer.model.Computer;
import com.kalyshev.yan.cabinet.repository.CabinetRepository;
import com.kalyshev.yan.computer.repository.ComputerNotFoundException; import com.kalyshev.yan.computer.repository.ComputerNotFoundException;
import com.kalyshev.yan.computer.repository.ComputerRepository; import com.kalyshev.yan.computer.repository.ComputerRepository;
import com.kalyshev.yan.monitor.model.Monitor; import com.kalyshev.yan.monitor.model.Monitor;
import com.kalyshev.yan.monitor.repository.MonitorNotFoundException; import com.kalyshev.yan.monitor.service.MonitorService;
import com.kalyshev.yan.monitor.repository.MonitorRepository;
import com.kalyshev.yan.util.validation.ValidatorUtil; import com.kalyshev.yan.util.validation.ValidatorUtil;
import jakarta.annotation.Nullable; import jakarta.annotation.Nullable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import com.kalyshev.yan.computer.model.Computer;
import jakarta.persistence.EntityNotFoundException; import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
@Service @Service
public class ComputerService { public class ComputerService {
private final CabinetRepository cabinetRepository;
private final ComputerRepository computerRepository; private final ComputerRepository computerRepository;
private final MonitorRepository monitorRepository; private final MonitorService monitorService;
private final ValidatorUtil validatorUtil; private final ValidatorUtil validatorUtil;
public ComputerService(CabinetRepository cabinetRepository, public ComputerService(ComputerRepository computerRepository,
ComputerRepository computerRepository, MonitorService monitorService,
MonitorRepository monitorRepository,
ValidatorUtil validatorUtil) { ValidatorUtil validatorUtil) {
this.cabinetRepository = cabinetRepository;
this.computerRepository = computerRepository; this.computerRepository = computerRepository;
this.monitorRepository = monitorRepository; this.monitorService = monitorService;
this.validatorUtil = validatorUtil; this.validatorUtil = validatorUtil;
} }
@Transactional @Transactional
public Computer addComputer(String modelName, String serialNum, @Nullable Long monitorId, @Nullable Long cabinetId) { public Computer addComputer(String modelName, String serialNum, @Nullable Long monitorId) {
if (!StringUtils.hasText(modelName)) { if (!StringUtils.hasText(modelName)) {
throw new IllegalArgumentException("Computer model name is null or empty"); throw new IllegalArgumentException("Computer model name is null or empty");
} }
@ -47,15 +36,9 @@ public class ComputerService {
} }
final Computer computer = new Computer(modelName, serialNum); final Computer computer = new Computer(modelName, serialNum);
if (monitorId != null) { if (monitorId != null) {
final Monitor monitor = monitorRepository.findById(monitorId) final Monitor monitor = monitorService.findMonitor(monitorId);
.orElseThrow(() -> new ComputerNotFoundException(monitorId));
computer.setMonitor(monitor); computer.setMonitor(monitor);
} }
if (cabinetId != null) {
final Cabinet cabinet = cabinetRepository.findById(cabinetId)
.orElseThrow(() -> new CabinetNotFoundException(cabinetId));
computer.setCabinet(cabinet);
}
validatorUtil.validate(computer); validatorUtil.validate(computer);
return computerRepository.save(computer); return computerRepository.save(computer);
} }
@ -70,30 +53,7 @@ public class ComputerService {
} }
@Transactional(readOnly = true) @Transactional(readOnly = true)
public List<Computer> findFilteredComputers(Long id, String modelName, String serialNum, Long monitorId, Long cabinetId) { public List<Computer> findFilteredComputers(Long id, String modelName, String serialNum, Long monitorId, Long cabinetId) {
List<Computer> allComputers = computerRepository.findAll(); return computerRepository.findFilteredComputers(id, modelName, serialNum, monitorId, cabinetId);
List<Computer> result = new ArrayList<>();
for (Computer computer : allComputers) {
boolean flag = true;
if (id != null && !Objects.equals(computer.getId(), id)) {
flag = false;
}
if (modelName != null && !Objects.equals(computer.getModelName(), modelName)) {
flag = false;
}
if (serialNum != null && !Objects.equals(computer.getSerialNum(), serialNum)) {
flag = false;
}
if (monitorId != null && computer.getMonitor() != null && !Objects.equals(computer.getMonitor().getId(), monitorId)) {
flag = false;
}
if (cabinetId != null && computer.getCabinet() != null && !Objects.equals(computer.getCabinet().getId(), cabinetId)) {
flag = false;
}
if (flag) {
result.add(computer);
}
}
return result;
} }
@Transactional @Transactional
public Computer updateComputer(Long id, String modelName, String serialNum, Long monitorId, Long cabinetId) { public Computer updateComputer(Long id, String modelName, String serialNum, Long monitorId, Long cabinetId) {
@ -108,15 +68,9 @@ public class ComputerService {
currentComputer.setSerialNum(serialNum); currentComputer.setSerialNum(serialNum);
} }
if (monitorId != null) { if (monitorId != null) {
Monitor monitor = monitorRepository.findById(monitorId) final Monitor monitor = monitorService.findMonitor(monitorId);
.orElseThrow(() -> new MonitorNotFoundException(id));
currentComputer.setMonitor(monitor); currentComputer.setMonitor(monitor);
} }
if (cabinetId != null) {
Cabinet cabinet = cabinetRepository.findById(cabinetId)
.orElseThrow(() -> new CabinetNotFoundException(cabinetId));
currentComputer.setCabinet(cabinet);
}
validatorUtil.validate(currentComputer); validatorUtil.validate(currentComputer);
return computerRepository.save(currentComputer); return computerRepository.save(currentComputer);
} }
@ -138,28 +92,6 @@ public class ComputerService {
} }
} }
@Transactional @Transactional
public Cabinet getCabinet(Long id) {
if ((Object)id == null) {
throw new IllegalArgumentException("Computer id is null or empty");
}
final Computer computer = findComputer(id);
return computer.getCabinet();
}
@Transactional
public Cabinet setCabinet(Long cabinetId, Long computerId) {
if ((Object)computerId == null) {
throw new IllegalArgumentException("Computer id is null or empty");
}
if ((Object)cabinetId == null) {
throw new IllegalArgumentException("Cabinet id is null or empty");
}
final Computer computer = findComputer(computerId);
final Cabinet cabinet = cabinetRepository.findById(cabinetId)
.orElseThrow(() -> new CabinetNotFoundException(cabinetId));
computer.setCabinet(cabinet);
return cabinet;
}
@Transactional
public Monitor setMonitor(Long monitorId, Long computerId) { public Monitor setMonitor(Long monitorId, Long computerId) {
if ((Object)computerId == null) { if ((Object)computerId == null) {
throw new IllegalArgumentException("Computer id is null or empty"); throw new IllegalArgumentException("Computer id is null or empty");
@ -168,9 +100,36 @@ public class ComputerService {
throw new IllegalArgumentException("Monitor id is null or empty"); throw new IllegalArgumentException("Monitor id is null or empty");
} }
final Computer computer = findComputer(computerId); final Computer computer = findComputer(computerId);
final Monitor monitor = monitorRepository.findById(monitorId) final Monitor monitor = monitorService.findMonitor(monitorId);
.orElseThrow(() -> new MonitorNotFoundException(monitorId));
computer.setMonitor(monitor); computer.setMonitor(monitor);
return monitor; return monitor;
} }
@Transactional
public void deleteRelationsWithCabinets(List<Computer> computers) {
for (Computer computer: computers) {
computer.setCabinet(null);
}
}
@Transactional
public Computer findComputerByMonitor(Monitor monitor) {
if (monitor.getId() == null) {
return null;
}
return computerRepository.findComputerByMonitor(monitor.getId());
}
@Transactional
public Monitor deleteMonitorWithRelation(Long id) {
final Monitor currentMonitor = monitorService.findMonitor(id);
Computer computer = findComputerByMonitor(currentMonitor);
if (computer != null) {
computer.removeMonitor();
}
monitorService.deleteMonitor(currentMonitor);
return currentMonitor;
}
@Transactional
public void deleteAllMonitorsWithRelations() {
computerRepository.removeAllComputerMonitorRelations();
monitorService.deleteAllMonitors();
}
} }

View File

@ -1,8 +1,7 @@
package com.kalyshev.yan.monitor.controller; package com.kalyshev.yan.monitor.controller;
import com.kalyshev.yan.WebConfiguration; import com.kalyshev.yan.WebConfiguration;
import com.kalyshev.yan.computer.controller.ComputerDto; import com.kalyshev.yan.computer.service.ComputerService;
import com.kalyshev.yan.monitor.model.Monitor;
import com.kalyshev.yan.monitor.service.MonitorService; import com.kalyshev.yan.monitor.service.MonitorService;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -13,8 +12,11 @@ import java.util.List;
@RequestMapping(WebConfiguration.REST_API + "/monitor") @RequestMapping(WebConfiguration.REST_API + "/monitor")
public class MonitorController { public class MonitorController {
private final MonitorService monitorService; private final MonitorService monitorService;
public MonitorController(MonitorService monitorService) { private final ComputerService computerService;
public MonitorController(MonitorService monitorService,
ComputerService computerService) {
this.monitorService = monitorService; this.monitorService = monitorService;
this.computerService = computerService;
} }
@GetMapping("/{id}") @GetMapping("/{id}")
public MonitorDto getMonitor(@PathVariable Long id) { public MonitorDto getMonitor(@PathVariable Long id) {
@ -44,6 +46,6 @@ public class MonitorController {
} }
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public MonitorDto deleteMonitor(@PathVariable Long id) { public MonitorDto deleteMonitor(@PathVariable Long id) {
return new MonitorDto(monitorService.deleteMonitor(id)); return new MonitorDto(computerService.deleteMonitorWithRelation(id));
} }
} }

View File

@ -1,9 +1,10 @@
package com.kalyshev.yan.monitor.model; package com.kalyshev.yan.monitor.model;
import com.kalyshev.yan.computer.model.Computer; import jakarta.persistence.Entity;
import jakarta.persistence.*; import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import java.util.List;
import java.util.Objects; import java.util.Objects;
@Entity @Entity
@ -29,10 +30,12 @@ public class Monitor {
} }
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) return true; if (this == o)
if (o == null || getClass() != o.getClass()) return false; return true;
Monitor computer = (Monitor) o; if (!(o instanceof Monitor))
return Objects.equals(id, computer.id); return false;
Monitor monitor = (Monitor) o;
return Objects.equals(id, monitor.id) && Objects.equals(this.modelName, monitor.modelName);
} }
@Override @Override
public int hashCode() { public int hashCode() {

View File

@ -2,6 +2,14 @@ package com.kalyshev.yan.monitor.repository;
import com.kalyshev.yan.monitor.model.Monitor; import com.kalyshev.yan.monitor.model.Monitor;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
public interface MonitorRepository extends JpaRepository<Monitor, Long> { public interface MonitorRepository extends JpaRepository<Monitor, Long> {
@Query(value = "select * from Monitor where (\"ID\" = :id or :id is Null) and " +
"(\"MODEL_NAME\" = :modelName or :modelName is Null)", nativeQuery = true)
public List<Monitor> findFilteredMonitors(@Param("id") Long id,
@Param("modelName") String modelName);
} }

View File

@ -1,25 +1,12 @@
package com.kalyshev.yan.monitor.service; package com.kalyshev.yan.monitor.service;
import com.kalyshev.yan.cabinet.model.Cabinet; import com.kalyshev.yan.monitor.model.Monitor;
import com.kalyshev.yan.cabinet.repository.CabinetNotFoundException;
import com.kalyshev.yan.cabinet.repository.CabinetRepository;
import com.kalyshev.yan.computer.model.Computer;
import com.kalyshev.yan.computer.repository.ComputerRepository;
import com.kalyshev.yan.monitor.controller.MonitorController;
import com.kalyshev.yan.monitor.repository.MonitorNotFoundException; import com.kalyshev.yan.monitor.repository.MonitorNotFoundException;
import com.kalyshev.yan.monitor.repository.MonitorRepository; import com.kalyshev.yan.monitor.repository.MonitorRepository;
import com.kalyshev.yan.util.validation.ValidatorUtil; import com.kalyshev.yan.util.validation.ValidatorUtil;
import jakarta.persistence.TypedQuery;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import com.kalyshev.yan.monitor.model.Monitor;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityNotFoundException;
import jakarta.persistence.PersistenceContext;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -29,13 +16,10 @@ import java.util.Optional;
@Service @Service
public class MonitorService { public class MonitorService {
private final MonitorRepository monitorRepository; private final MonitorRepository monitorRepository;
private final ComputerRepository computerRepository;
private final ValidatorUtil validatorUtil; private final ValidatorUtil validatorUtil;
public MonitorService(MonitorRepository monitorRepository, public MonitorService(MonitorRepository monitorRepository,
ComputerRepository computerRepository,
ValidatorUtil validatorUtil) { ValidatorUtil validatorUtil) {
this.monitorRepository = monitorRepository; this.monitorRepository = monitorRepository;
this.computerRepository = computerRepository;
this.validatorUtil = validatorUtil; this.validatorUtil = validatorUtil;
} }
@Transactional @Transactional
@ -58,21 +42,7 @@ public class MonitorService {
} }
@Transactional(readOnly = true) @Transactional(readOnly = true)
public List<Monitor> findFilteredMonitors(Long id, String modelName) { public List<Monitor> findFilteredMonitors(Long id, String modelName) {
List<Monitor> allMonitors = monitorRepository.findAll(); return monitorRepository.findFilteredMonitors(id, modelName);
List<Monitor> result = new ArrayList<>();
for (Monitor monitor : allMonitors) {
boolean flag = true;
if (id != null && !Objects.equals(monitor.getId(), id)) {
flag = false;
}
if (modelName != null && !Objects.equals(monitor.getModelName(), modelName)) {
flag = false;
}
if (flag) {
result.add(monitor);
}
}
return result;
} }
@Transactional @Transactional
public Monitor updateMonitor(Long id, String modelName) { public Monitor updateMonitor(Long id, String modelName) {
@ -85,33 +55,9 @@ public class MonitorService {
return monitorRepository.save(currentMonitor); return monitorRepository.save(currentMonitor);
} }
@Transactional @Transactional
public Monitor deleteMonitor(Long id) { public void deleteMonitor(Monitor monitor) {
final Monitor currentMonitor = findMonitor(id); monitorRepository.delete(monitor);
Computer computer = getComputer(id);
if (computer != null) {
computer.removeMonitor();
}
monitorRepository.delete(currentMonitor);
return currentMonitor;
} }
@Transactional @Transactional
public void deleteAllMonitors() { public void deleteAllMonitors() { monitorRepository.deleteAll(); }
List<Computer> computers = computerRepository.findAll();
for (Computer computer : computers) {
computer.removeMonitor();
}
monitorRepository.deleteAll();
}
@Transactional
public Computer getComputer(Long id) {
List<Computer> computers = computerRepository.findAll();
for (Computer computer : computers) {
if (computer.getMonitor() != null) {
if (Objects.equals(computer.getMonitor().getId(), id)) {
return computer;
}
}
}
return null;
}
} }

View File

@ -5,7 +5,6 @@ import com.kalyshev.yan.cabinet.repository.CabinetNotFoundException;
import com.kalyshev.yan.cabinet.service.CabinetService; import com.kalyshev.yan.cabinet.service.CabinetService;
import com.kalyshev.yan.computer.service.ComputerService; import com.kalyshev.yan.computer.service.ComputerService;
import com.kalyshev.yan.monitor.service.MonitorService; import com.kalyshev.yan.monitor.service.MonitorService;
import jakarta.persistence.EntityNotFoundException;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.slf4j.Logger; import org.slf4j.Logger;

View File

@ -27,10 +27,10 @@ public class JpaComputerCabinetTests {
void testCabinetAddOneToMany() { void testCabinetAddOneToMany() {
cabinetService.deleteAllCabinets(); cabinetService.deleteAllCabinets();
computerService.deleteAllComputers(); computerService.deleteAllComputers();
monitorService.deleteAllMonitors(); computerService.deleteAllMonitorsWithRelations();
final Cabinet cabinet = cabinetService.addCabinet("18"); final Cabinet cabinet = cabinetService.addCabinet("18");
final Monitor monitor = monitorService.addMonitor("Asus"); final Monitor monitor = monitorService.addMonitor("Asus");
final Computer computer = computerService.addComputer("PC", "78457h", monitor.getId(), null); final Computer computer = computerService.addComputer("PC", "78457h", monitor.getId());
cabinet.addComputer(computer); cabinet.addComputer(computer);
log.info(cabinet.toString()); log.info(cabinet.toString());
log.info(computer.toString()); log.info(computer.toString());
@ -41,10 +41,10 @@ public class JpaComputerCabinetTests {
void testCabinetDeleteOneToMany() { void testCabinetDeleteOneToMany() {
cabinetService.deleteAllCabinets(); cabinetService.deleteAllCabinets();
computerService.deleteAllComputers(); computerService.deleteAllComputers();
monitorService.deleteAllMonitors(); computerService.deleteAllMonitorsWithRelations();
final Cabinet cabinet = cabinetService.addCabinet("18"); final Cabinet cabinet = cabinetService.addCabinet("18");
final Monitor monitor = monitorService.addMonitor("Asus"); final Monitor monitor = monitorService.addMonitor("Asus");
final Computer computer = computerService.addComputer("PC", "78457h", monitor.getId(), null); final Computer computer = computerService.addComputer("PC", "78457h", monitor.getId());
cabinet.addComputer(computer); cabinet.addComputer(computer);
log.info(cabinet.toString()); log.info(cabinet.toString());
log.info(computer.toString()); log.info(computer.toString());
@ -57,10 +57,10 @@ public class JpaComputerCabinetTests {
void testComputerAddManyToMany() { void testComputerAddManyToMany() {
cabinetService.deleteAllCabinets(); cabinetService.deleteAllCabinets();
computerService.deleteAllComputers(); computerService.deleteAllComputers();
monitorService.deleteAllMonitors(); computerService.deleteAllMonitorsWithRelations();
final Cabinet cabinet = cabinetService.addCabinet("18"); final Cabinet cabinet = cabinetService.addCabinet("18");
final Monitor monitor = monitorService.addMonitor("Asus"); final Monitor monitor = monitorService.addMonitor("Asus");
final Computer computer = computerService.addComputer("PC", "78457h", monitor.getId(), null); final Computer computer = computerService.addComputer("PC", "78457h", monitor.getId());
computer.setCabinet(cabinet); computer.setCabinet(cabinet);
log.info(cabinet.toString()); log.info(cabinet.toString());
log.info(computer.toString()); log.info(computer.toString());
@ -71,10 +71,10 @@ public class JpaComputerCabinetTests {
void testComputerDeleteManyToMany() { void testComputerDeleteManyToMany() {
cabinetService.deleteAllCabinets(); cabinetService.deleteAllCabinets();
computerService.deleteAllComputers(); computerService.deleteAllComputers();
monitorService.deleteAllMonitors(); computerService.deleteAllMonitorsWithRelations();
final Cabinet cabinet = cabinetService.addCabinet("18"); final Cabinet cabinet = cabinetService.addCabinet("18");
final Monitor monitor = monitorService.addMonitor("Asus"); final Monitor monitor = monitorService.addMonitor("Asus");
final Computer computer = computerService.addComputer("PC", "78457h", monitor.getId(), null); final Computer computer = computerService.addComputer("PC", "78457h", monitor.getId());
computer.setCabinet(cabinet); computer.setCabinet(cabinet);
log.info(cabinet.toString()); log.info(cabinet.toString());
log.info(computer.toString()); log.info(computer.toString());

View File

@ -7,7 +7,6 @@ import com.kalyshev.yan.computer.repository.ComputerNotFoundException;
import com.kalyshev.yan.computer.service.ComputerService; import com.kalyshev.yan.computer.service.ComputerService;
import com.kalyshev.yan.monitor.model.Monitor; import com.kalyshev.yan.monitor.model.Monitor;
import com.kalyshev.yan.monitor.service.MonitorService; import com.kalyshev.yan.monitor.service.MonitorService;
import jakarta.persistence.EntityNotFoundException;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -31,7 +30,7 @@ public class JpaComputerTests {
void testComputerPartialCreate() { void testComputerPartialCreate() {
computerService.deleteAllComputers(); computerService.deleteAllComputers();
final Monitor monitor = monitorService.addMonitor("Asus"); final Monitor monitor = monitorService.addMonitor("Asus");
final Computer computer = computerService.addComputer("Computer", "w7894572", monitor.getId(), null); final Computer computer = computerService.addComputer("Computer", "w7894572", monitor.getId());
log.info(computer.toString()); log.info(computer.toString());
Assertions.assertNotNull(computer.getId()); Assertions.assertNotNull(computer.getId());
Assertions.assertNull(computer.getCabinet()); Assertions.assertNull(computer.getCabinet());
@ -41,7 +40,8 @@ public class JpaComputerTests {
computerService.deleteAllComputers(); computerService.deleteAllComputers();
final Monitor monitor = monitorService.addMonitor("Asus"); final Monitor monitor = monitorService.addMonitor("Asus");
final Cabinet cabinet = cabinetService.addCabinet("18a"); final Cabinet cabinet = cabinetService.addCabinet("18a");
final Computer computer = computerService.addComputer("Computer", "w7894572", monitor.getId(), cabinet.getId()); final Computer computer = computerService.addComputer("Computer", "w7894572", monitor.getId());
computer.setCabinet(cabinet);
log.info(computer.toString()); log.info(computer.toString());
Assertions.assertNotNull(computer.getId()); Assertions.assertNotNull(computer.getId());
Assertions.assertEquals(cabinet, computer.getCabinet()); Assertions.assertEquals(cabinet, computer.getCabinet());
@ -50,7 +50,7 @@ public class JpaComputerTests {
void testComputerDelete() { void testComputerDelete() {
computerService.deleteAllComputers(); computerService.deleteAllComputers();
final Monitor monitor = monitorService.addMonitor("Asus"); final Monitor monitor = monitorService.addMonitor("Asus");
final Computer computer = computerService.addComputer("Computer", "w7894572", null, null); final Computer computer = computerService.addComputer("Computer", "w7894572", null);
log.info(computer.toString()); log.info(computer.toString());
computerService.deleteComputer(computer.getId()); computerService.deleteComputer(computer.getId());
Assertions.assertThrows(ComputerNotFoundException.class, () -> computerService.findComputer(computer.getId())); Assertions.assertThrows(ComputerNotFoundException.class, () -> computerService.findComputer(computer.getId()));
@ -58,7 +58,7 @@ public class JpaComputerTests {
@Test @Test
void testComputerRead() { void testComputerRead() {
computerService.deleteAllComputers(); computerService.deleteAllComputers();
final Computer computer = computerService.addComputer("Computer", "w7894572", null, null); final Computer computer = computerService.addComputer("Computer", "w7894572", null);
log.info(computer.toString()); log.info(computer.toString());
final Computer findComputer = computerService.findComputer(computer.getId()); final Computer findComputer = computerService.findComputer(computer.getId());
log.info(findComputer.toString()); log.info(findComputer.toString());
@ -73,8 +73,8 @@ public class JpaComputerTests {
void testComputerReadAll() { void testComputerReadAll() {
computerService.deleteAllComputers(); computerService.deleteAllComputers();
final Monitor monitor = monitorService.addMonitor("Asus"); final Monitor monitor = monitorService.addMonitor("Asus");
computerService.addComputer("Computer", "w7894572", null, null); computerService.addComputer("Computer", "w7894572", null);
computerService.addComputer("Another comp", "3453s", null, null); computerService.addComputer("Another comp", "3453s", null);
final List<Computer> computers = computerService.findAllComputers(); final List<Computer> computers = computerService.findAllComputers();
log.info(computers.toString()); log.info(computers.toString());
Assertions.assertEquals(computers.size(), 2); Assertions.assertEquals(computers.size(), 2);

View File

@ -1,15 +1,12 @@
package com.kalyshev.yan; package com.kalyshev.yan;
import com.kalyshev.yan.cabinet.service.CabinetService;
import com.kalyshev.yan.computer.model.Computer; import com.kalyshev.yan.computer.model.Computer;
import com.kalyshev.yan.computer.service.ComputerService; import com.kalyshev.yan.computer.service.ComputerService;
import com.kalyshev.yan.monitor.model.Monitor; import com.kalyshev.yan.monitor.model.Monitor;
import com.kalyshev.yan.monitor.repository.MonitorNotFoundException; import com.kalyshev.yan.monitor.repository.MonitorNotFoundException;
import com.kalyshev.yan.monitor.service.MonitorService; import com.kalyshev.yan.monitor.service.MonitorService;
import jakarta.persistence.EntityNotFoundException;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.function.Executable;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -25,14 +22,14 @@ public class JpaMonitorTests {
private ComputerService computerService; private ComputerService computerService;
@Test @Test
void testMonitorCreate() { void testMonitorCreate() {
monitorService.deleteAllMonitors(); computerService.deleteAllMonitorsWithRelations();
final Monitor monitor = monitorService.addMonitor("Asus"); final Monitor monitor = monitorService.addMonitor("Asus");
log.info(monitor.toString()); log.info(monitor.toString());
Assertions.assertNotNull(monitor.getId()); Assertions.assertNotNull(monitor.getId());
} }
@Test @Test
void testMonitorRead() { void testMonitorRead() {
monitorService.deleteAllMonitors(); computerService.deleteAllMonitorsWithRelations();
final Monitor monitor = monitorService.addMonitor("Asus"); final Monitor monitor = monitorService.addMonitor("Asus");
log.info(monitor.toString()); log.info(monitor.toString());
final Monitor findMonitor = monitorService.findMonitor(monitor.getId()); final Monitor findMonitor = monitorService.findMonitor(monitor.getId());
@ -41,20 +38,20 @@ public class JpaMonitorTests {
} }
@Test @Test
void testMonitorDelete() { void testMonitorDelete() {
monitorService.deleteAllMonitors(); computerService.deleteAllMonitorsWithRelations();
final Monitor monitor = monitorService.addMonitor("Asus"); final Monitor monitor = monitorService.addMonitor("Asus");
log.info(monitor.toString()); log.info(monitor.toString());
monitorService.deleteMonitor(monitor.getId()); computerService.deleteMonitorWithRelation(monitor.getId());
Assertions.assertThrows(MonitorNotFoundException.class, () -> monitorService.findMonitor(monitor.getId())); Assertions.assertThrows(MonitorNotFoundException.class, () -> monitorService.findMonitor(monitor.getId()));
} }
@Test @Test
void testMonitorReadNotFound() { void testMonitorReadNotFound() {
monitorService.deleteAllMonitors(); computerService.deleteAllMonitorsWithRelations();
Assertions.assertThrows(MonitorNotFoundException.class, () -> monitorService.findMonitor(-1L)); Assertions.assertThrows(MonitorNotFoundException.class, () -> monitorService.findMonitor(-1L));
} }
@Test @Test
void testMonitorReadAll() { void testMonitorReadAll() {
monitorService.deleteAllMonitors(); computerService.deleteAllMonitorsWithRelations();
monitorService.addMonitor("Asus"); monitorService.addMonitor("Asus");
monitorService.addMonitor("HP"); monitorService.addMonitor("HP");
final List<Monitor> monitors = monitorService.findAllMonitors(); final List<Monitor> monitors = monitorService.findAllMonitors();
@ -63,19 +60,19 @@ public class JpaMonitorTests {
} }
@Test @Test
void testMonitorReadAllEmpty() { void testMonitorReadAllEmpty() {
monitorService.deleteAllMonitors(); computerService.deleteAllMonitorsWithRelations();
final List<Monitor> monitors = monitorService.findAllMonitors(); final List<Monitor> monitors = monitorService.findAllMonitors();
log.info(monitors.toString()); log.info(monitors.toString());
Assertions.assertEquals(monitors.size(), 0); Assertions.assertEquals(monitors.size(), 0);
} }
@Test @Test
void testMonitorGetComputer() { void testMonitorGetComputer() {
monitorService.deleteAllMonitors(); computerService.deleteAllMonitorsWithRelations();
computerService.deleteAllComputers(); computerService.deleteAllComputers();
Monitor monitor = monitorService.addMonitor("Asus"); Monitor monitor = monitorService.addMonitor("Asus");
Computer computer = computerService.addComputer("Model", "6sfv4", monitor.getId(), null); Computer computer = computerService.addComputer("Model", "6sfv4", monitor.getId());
log.info(computer.toString()); log.info(computer.toString());
Computer fetchedComputer = monitorService.getComputer(monitor.getId()); Computer fetchedComputer = computerService.findComputerByMonitor(monitor);
Assertions.assertEquals(computer, fetchedComputer); Assertions.assertEquals(computer, fetchedComputer);
} }
} }