diff --git a/slp-backend/pom.xml b/slp-backend/pom.xml
index da5f948..ca99b5a 100644
--- a/slp-backend/pom.xml
+++ b/slp-backend/pom.xml
@@ -136,6 +136,11 @@
6.2.2
test
+
+ junit
+ junit
+ test
+
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/AddressController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/AddressController.java
index 56029c6..99d1618 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/AddressController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/AddressController.java
@@ -4,7 +4,6 @@
import agh.edu.pl.slpbackend.dto.AddressDto;
import agh.edu.pl.slpbackend.service.AddressService;
import lombok.AllArgsConstructor;
-import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
@@ -15,7 +14,7 @@
@RestController
@AllArgsConstructor
-@RequestMapping("/address") //TODO odpowiedni rooting jeszcze nie wiem XDD
+@RequestMapping("/address")
@CrossOrigin(origins = "http://localhost:3000")
public class AddressController extends AbstractController {
@@ -23,15 +22,6 @@ public class AddressController extends AbstractController {
@GetMapping("/list")
public ResponseEntity> list() {
- try {
- List list = addressService.selectAll();
-
- if (list.isEmpty()) {
- return new ResponseEntity<>(HttpStatus.NO_CONTENT);
- }
- return new ResponseEntity<>(list, HttpStatus.OK);
- } catch (Exception e) {
- return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
- }
+ return ResponseEntity.ok(addressService.selectAll());
}
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/DataController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/DataController.java
index 016cd5a..4f8df90 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/DataController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/DataController.java
@@ -20,6 +20,6 @@ public class DataController {
@GetMapping("/filters")
public ResponseEntity getFilters() {
- return new ResponseEntity<>(dataService.getFilters(), HttpStatus.OK);
+ return ResponseEntity.ok(dataService.getFilters());
}
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ExaminationController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ExaminationController.java
similarity index 89%
rename from slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ExaminationController.java
rename to slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ExaminationController.java
index e9ee50b..0bcf3bb 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ExaminationController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ExaminationController.java
@@ -1,4 +1,4 @@
-package agh.edu.pl.slpbackend.controller.dictionary;
+package agh.edu.pl.slpbackend.controller;
import agh.edu.pl.slpbackend.controller.iface.AbstractController;
import agh.edu.pl.slpbackend.dto.ExaminationDto;
@@ -19,7 +19,7 @@ public class ExaminationController extends AbstractController {
private final ExaminationService examinationService;
@PostMapping("/save")
- public ResponseEntity add(@RequestBody ExaminationDto examinationDto) throws Exception {
+ public ResponseEntity add(@RequestBody ExaminationDto examinationDto) {
return add(examinationDto, examinationService);
}
@@ -36,12 +36,12 @@ public ResponseEntity> getExaminationForSample(@PathVariabl
}
@PutMapping("/update")
- public ResponseEntity insertExaminationResults(@RequestBody ExaminationDto updatedExaminationDto) throws Exception {
+ public ResponseEntity insertExaminationResults(@RequestBody ExaminationDto updatedExaminationDto) {
return edit(updatedExaminationDto, examinationService);
}
@DeleteMapping("/delete/{examinationId}")
- public ResponseEntity deleteExamination(@PathVariable final Long examinationId) throws Exception {
+ public ResponseEntity deleteExamination(@PathVariable final Long examinationId) {
return delete(ExaminationDto.builder().id(examinationId).build(), examinationService);
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ReportDataController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ReportDataController.java
index b9bc535..8824459 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ReportDataController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ReportDataController.java
@@ -2,9 +2,6 @@
import agh.edu.pl.slpbackend.controller.iface.AbstractController;
import agh.edu.pl.slpbackend.dto.ReportDataDto;
-import agh.edu.pl.slpbackend.dto.SampleDto;
-import agh.edu.pl.slpbackend.model.ReportData;
-import agh.edu.pl.slpbackend.model.Sample;
import agh.edu.pl.slpbackend.service.ReportDataService;
import lombok.AllArgsConstructor;
import org.springframework.http.HttpStatus;
@@ -15,7 +12,7 @@
@RestController
@AllArgsConstructor
-@RequestMapping("/report-data") //TODO odpowiedni rooting jeszcze nie wiem XDD
+@RequestMapping("/report-data")
@CrossOrigin(origins = "http://localhost:3000")
public class ReportDataController extends AbstractController {
@@ -23,34 +20,25 @@ public class ReportDataController extends AbstractController {
@GetMapping("/list")
public ResponseEntity> list() {
- try {
- List list = reportDataService.selectAll();
-
- if (list.isEmpty()) {
- return new ResponseEntity<>(HttpStatus.NO_CONTENT);
- }
- return new ResponseEntity<>(list, HttpStatus.OK);
- } catch (Exception e) {
- return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
- }
+ return ResponseEntity.ok(reportDataService.selectAll());
}
@PostMapping("/save")
- public ResponseEntity add(@RequestBody final ReportDataDto reportData) throws Exception {
+ public ResponseEntity add(@RequestBody final ReportDataDto reportData) {
return add(reportData, reportDataService);
}
@DeleteMapping("/{reportDataId}")
- public ResponseEntity delete(@PathVariable final Long reportDataId) throws Exception {
+ public ResponseEntity delete(@PathVariable final Long reportDataId) {
return delete(ReportDataDto.builder().id(reportDataId).build(), reportDataService);
}
@PutMapping("/")
- public ResponseEntity update(@RequestBody ReportDataDto reportDataDto) throws Exception {
+ public ResponseEntity update(@RequestBody ReportDataDto reportDataDto) {
return edit(reportDataDto, reportDataService);
}
@GetMapping("/sample/{sampleId}")
- public ResponseEntity getReportBySampleId(@PathVariable final Long sampleId) throws Exception {
+ public ResponseEntity getReportBySampleId(@PathVariable final Long sampleId) {
return new ResponseEntity<>(reportDataService.selectBySampleId(sampleId), HttpStatus.OK);
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/SampleController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/SampleController.java
index 49245d0..a16c116 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/SampleController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/SampleController.java
@@ -8,7 +8,6 @@
import agh.edu.pl.slpbackend.model.Sample;
import agh.edu.pl.slpbackend.service.SampleService;
import lombok.AllArgsConstructor;
-import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -16,7 +15,7 @@
@RestController
@AllArgsConstructor
-@RequestMapping("/sample") //TODO odpowiedni rooting jeszcze nie wiem XDD
+@RequestMapping("/sample")
@CrossOrigin(origins = "http://localhost:3000")
public class SampleController extends AbstractController {
@@ -24,52 +23,42 @@ public class SampleController extends AbstractController {
@GetMapping("/list")
public ResponseEntity> list() {
- try {
- List list = sampleService.selectAll();
-
- if (list.isEmpty()) {
- return new ResponseEntity<>(HttpStatus.NO_CONTENT);
- }
- return new ResponseEntity<>(list, HttpStatus.OK);
- } catch (Exception e) {
- return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
- }
+ return ResponseEntity.ok(sampleService.selectAll());
}
@GetMapping("/count")
public ResponseEntity count() {
- return new ResponseEntity<>(sampleService.count(), HttpStatus.OK);
+ return ResponseEntity.ok(sampleService.count());
}
@GetMapping("/{sampleId}")
public ResponseEntity getOne(@PathVariable final Long sampleId) {
- SampleDto sampleDto = sampleService.selectOne(sampleId);
- return new ResponseEntity<>(sampleDto, HttpStatus.OK);
+ return ResponseEntity.ok(sampleService.selectOne(sampleId));
}
@PutMapping("status/{sampleId}/{status}")
public ResponseEntity updateStatus(@PathVariable final Long sampleId, @PathVariable final String status) {
- return new ResponseEntity<>(sampleService.updateStatus(sampleId, ProgressStatusEnum.convertEnum(status)), HttpStatus.OK);
+ return ResponseEntity.ok(sampleService.updateStatus(sampleId, ProgressStatusEnum.convertEnum(status)));
}
@PostMapping("/save")
- public ResponseEntity add(@RequestBody SampleDto sampleDto) throws Exception {
+ public ResponseEntity add(@RequestBody SampleDto sampleDto) {
return add(sampleDto, sampleService);
}
@DeleteMapping("/{sampleId}")
- public ResponseEntity delete(@PathVariable final Long sampleId) throws Exception {
+ public ResponseEntity delete(@PathVariable final Long sampleId) {
return delete(SampleDto.builder().id(sampleId).build(), sampleService);
}
@PutMapping("/{sampleId}")
- public ResponseEntity update(@PathVariable final Long sampleId, @RequestBody SampleDto sampleDto) throws Exception {
+ public ResponseEntity update(@PathVariable final Long sampleId, @RequestBody SampleDto sampleDto) {
return edit(sampleDto, sampleService);
}
@PutMapping("list/filtered")
public ResponseEntity filter(@RequestBody FilterRequest request) {
- return new ResponseEntity<>(sampleService.filter(request), HttpStatus.OK);
+ return ResponseEntity.ok(sampleService.filter(request));
}
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/UserController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/UserController.java
index 1737f95..a60a7cf 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/UserController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/UserController.java
@@ -38,8 +38,8 @@ public ResponseEntity login(@RequestBody LoginRequest request) {
@PreAuthorize("hasRole('ADMIN')")
@PostMapping("/change-password/{email}")
- public ResponseEntity changePasswordForAdmin(@RequestBody ChangePasswordRequest request, @PathVariable String email) {
- userService.changePasswordForAdmin(request, email);
+ public ResponseEntity changePasswordByAdmin(@RequestBody ChangePasswordRequest request, @PathVariable String email) {
+ userService.changePasswordByAdmin(request, email);
return ResponseEntity.ok().build();
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/AssortmentController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/AssortmentController.java
index a874192..c0ac246 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/AssortmentController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/AssortmentController.java
@@ -4,7 +4,6 @@
import agh.edu.pl.slpbackend.dto.AssortmentDto;
import agh.edu.pl.slpbackend.service.dictionary.AssortmentService;
import lombok.AllArgsConstructor;
-import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -20,30 +19,21 @@ public class AssortmentController extends AbstractController {
@GetMapping("/list")
public ResponseEntity> list() {
- try {
- List list = assortmentService.selectAll();
-
- if (list.isEmpty()) {
- return new ResponseEntity<>(HttpStatus.NO_CONTENT);
- }
- return new ResponseEntity<>(list, HttpStatus.OK);
- } catch (Exception e) {
- return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
- }
+ return ResponseEntity.ok(assortmentService.selectAll());
}
@PostMapping("/save")
- public ResponseEntity add(@RequestBody AssortmentDto assortmentDto) throws Exception {
+ public ResponseEntity add(@RequestBody AssortmentDto assortmentDto) {
return add(assortmentDto, assortmentService);
}
@PutMapping("/update")
- public ResponseEntity edit(@RequestBody AssortmentDto assortmentDto) throws Exception {
+ public ResponseEntity edit(@RequestBody AssortmentDto assortmentDto) {
return edit(assortmentDto, assortmentService);
}
@DeleteMapping("/delete/{id}")
- public ResponseEntity delete(@PathVariable Long id) throws Exception {
+ public ResponseEntity delete(@PathVariable Long id) {
return delete(AssortmentDto.builder().id(id).build(), assortmentService);
}
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ClientController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ClientController.java
index 86905ca..9f2c725 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ClientController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ClientController.java
@@ -4,7 +4,6 @@
import agh.edu.pl.slpbackend.dto.ClientDto;
import agh.edu.pl.slpbackend.service.dictionary.ClientService;
import lombok.AllArgsConstructor;
-import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -12,7 +11,7 @@
@RestController
@AllArgsConstructor
-@RequestMapping("/client") //TODO odpowiedni rooting jeszcze nie wiem XDD
+@RequestMapping("/client")
@CrossOrigin(origins = "http://localhost:3000")
public class ClientController extends AbstractController {
@@ -20,30 +19,21 @@ public class ClientController extends AbstractController {
@GetMapping("/list")
public ResponseEntity> list() {
- try {
- List list = clientService.selectAll();
-
- if (list.isEmpty()) {
- return new ResponseEntity<>(HttpStatus.NO_CONTENT);
- }
- return new ResponseEntity<>(list, HttpStatus.OK);
- } catch (Exception e) {
- return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
- }
+ return ResponseEntity.ok(clientService.selectAll());
}
@PostMapping("/save")
- public ResponseEntity add(@RequestBody ClientDto clientDto) throws Exception {
+ public ResponseEntity add(@RequestBody ClientDto clientDto) {
return add(clientDto, clientService);
}
@PutMapping("/update")
- public ResponseEntity edit(@RequestBody ClientDto clientDto) throws Exception {
+ public ResponseEntity edit(@RequestBody ClientDto clientDto) {
return edit(clientDto, clientService);
}
@DeleteMapping("/delete/{id}")
- public ResponseEntity delete(@PathVariable Long id) throws Exception {
+ public ResponseEntity delete(@PathVariable Long id) {
return delete(ClientDto.builder().id(id).build(), clientService);
}
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/CodeController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/CodeController.java
index 01ee94f..0ab5484 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/CodeController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/CodeController.java
@@ -4,7 +4,6 @@
import agh.edu.pl.slpbackend.dto.CodeDto;
import agh.edu.pl.slpbackend.service.dictionary.CodeService;
import lombok.AllArgsConstructor;
-import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -20,30 +19,21 @@ public class CodeController extends AbstractController {
@GetMapping("/list")
public ResponseEntity> list() {
- try {
- List list = codeService.selectAll();
-
- if (list.isEmpty()) {
- return new ResponseEntity<>(HttpStatus.NO_CONTENT);
- }
- return new ResponseEntity<>(list, HttpStatus.OK);
- } catch (Exception e) {
- return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
- }
+ return ResponseEntity.ok(codeService.selectAll());
}
@PostMapping("/save")
- public ResponseEntity add(@RequestBody CodeDto codeDto) throws Exception {
+ public ResponseEntity add(@RequestBody CodeDto codeDto) {
return add(codeDto, codeService);
}
@PutMapping("/update")
- public ResponseEntity edit(@RequestBody CodeDto codeDto) throws Exception {
+ public ResponseEntity edit(@RequestBody CodeDto codeDto) {
return edit(codeDto, codeService);
}
@DeleteMapping("/delete/{id}")
- public ResponseEntity delete(@PathVariable String id) throws Exception {
+ public ResponseEntity delete(@PathVariable String id) {
return delete(CodeDto.builder().id(id).build(), codeService);
}
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/IndicationController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/IndicationController.java
index feaa54c..bf81567 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/IndicationController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/IndicationController.java
@@ -21,16 +21,7 @@ public class IndicationController extends AbstractController {
@GetMapping("/list")
public ResponseEntity> list() {
- try {
- List list = indicationService.selectAll();
-
- if (list.isEmpty()) {
- return new ResponseEntity<>(HttpStatus.NO_CONTENT);
- }
- return new ResponseEntity<>(list, HttpStatus.OK);
- } catch (Exception e) {
- return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
- }
+ return ResponseEntity.ok(indicationService.selectAll());
}
@GetMapping("/{indicationId}")
@@ -46,17 +37,17 @@ public ResponseEntity> getIndicationsForSample(@PathVariable
}
@PostMapping("/save")
- public ResponseEntity add(@RequestBody IndicationDto indicationDto) throws Exception {
+ public ResponseEntity add(@RequestBody IndicationDto indicationDto) {
return add(indicationDto, indicationService);
}
@PutMapping("/update")
- public ResponseEntity edit(@RequestBody IndicationDto indicationDto) throws Exception {
+ public ResponseEntity edit(@RequestBody IndicationDto indicationDto) {
return edit(indicationDto, indicationService);
}
@DeleteMapping("/delete/{id}")
- public ResponseEntity delete(@PathVariable Long id) throws Exception {
+ public ResponseEntity delete(@PathVariable Long id) {
return delete(IndicationDto.builder().id(id).build(), indicationService);
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/InspectionController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/InspectionController.java
index 1c1f622..48ac756 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/InspectionController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/InspectionController.java
@@ -2,10 +2,8 @@
import agh.edu.pl.slpbackend.controller.iface.AbstractController;
import agh.edu.pl.slpbackend.dto.InspectionDto;
-import agh.edu.pl.slpbackend.model.Inspection;
import agh.edu.pl.slpbackend.service.dictionary.InspectionService;
import lombok.AllArgsConstructor;
-import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -13,7 +11,7 @@
@RestController
@AllArgsConstructor
-@RequestMapping("/inspection") //TODO odpowiedni rooting jeszcze nie wiem XDD
+@RequestMapping("/inspection")
@CrossOrigin(origins = "http://localhost:3000")
public class InspectionController extends AbstractController {
@@ -21,30 +19,21 @@ public class InspectionController extends AbstractController {
@GetMapping("/list")
public ResponseEntity> list() {
- try {
- List list = inspectionService.selectAll();
-
- if (list.isEmpty()) {
- return new ResponseEntity<>(HttpStatus.NO_CONTENT);
- }
- return new ResponseEntity<>(list, HttpStatus.OK);
- } catch (Exception e) {
- return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
- }
+ return ResponseEntity.ok(inspectionService.selectAll());
}
@PostMapping("/save")
- public ResponseEntity add(@RequestBody InspectionDto inspectionDto) throws Exception {
- return new ResponseEntity<>(add(inspectionDto, inspectionService).getStatusCode()); //TODO nie wiem, trzeba przetestować
+ public ResponseEntity add(@RequestBody InspectionDto inspectionDto) {
+ return add(inspectionDto, inspectionService);
}
@PutMapping("/update")
- public ResponseEntity edit(@RequestBody InspectionDto inspectionDto) throws Exception {
+ public ResponseEntity edit(@RequestBody InspectionDto inspectionDto) {
return edit(inspectionDto, inspectionService);
}
@DeleteMapping("/delete/{id}")
- public ResponseEntity delete(@PathVariable Long id) throws Exception {
+ public ResponseEntity delete(@PathVariable Long id) {
return delete(InspectionDto.builder().id(id).build(), inspectionService);
}
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ProductGroupController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ProductGroupController.java
index 8529250..4c99c5d 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ProductGroupController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ProductGroupController.java
@@ -5,7 +5,6 @@
import agh.edu.pl.slpbackend.dto.productGroup.ProductGroupSaveDto;
import agh.edu.pl.slpbackend.service.dictionary.ProductGroupService;
import lombok.AllArgsConstructor;
-import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -21,30 +20,21 @@ public class ProductGroupController extends AbstractController {
@GetMapping("/list")
public ResponseEntity> list() {
- try {
- List list = productGroupService.selectAll();
-
- if (list.isEmpty()) {
- return new ResponseEntity<>(HttpStatus.NO_CONTENT);
- }
- return new ResponseEntity<>(list, HttpStatus.OK);
- } catch (Exception e) {
- return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
- }
+ return ResponseEntity.ok(productGroupService.selectAll());
}
@PostMapping("/save")
- public ResponseEntity add(@RequestBody ProductGroupSaveDto productGroupSaveDto) throws Exception {
+ public ResponseEntity add(@RequestBody ProductGroupSaveDto productGroupSaveDto) {
return add(productGroupSaveDto, productGroupService);
}
@PutMapping("/update")
- public ResponseEntity edit(@RequestBody ProductGroupSaveDto productGroupSaveDto) throws Exception {
+ public ResponseEntity edit(@RequestBody ProductGroupSaveDto productGroupSaveDto) {
return edit(productGroupSaveDto, productGroupService);
}
@DeleteMapping("/delete/{id}")
- public ResponseEntity delete(@PathVariable Long id) throws Exception {
+ public ResponseEntity delete(@PathVariable Long id) {
return delete(ProductGroupDto.builder().id(id).build(), productGroupService);
}
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/SamplingStandardController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/SamplingStandardController.java
index d1a4fc0..6fcb351 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/SamplingStandardController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/SamplingStandardController.java
@@ -4,7 +4,6 @@
import agh.edu.pl.slpbackend.dto.SamplingStandardDto;
import agh.edu.pl.slpbackend.service.dictionary.SamplingStandardService;
import lombok.AllArgsConstructor;
-import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -12,7 +11,7 @@
@RestController
@AllArgsConstructor
-@RequestMapping("/sampling-standard") //TODO odpowiedni rooting jeszcze nie wiem XDD
+@RequestMapping("/sampling-standard")
@CrossOrigin(origins = "http://localhost:3000")
public class SamplingStandardController extends AbstractController {
@@ -20,31 +19,22 @@ public class SamplingStandardController extends AbstractController {
@GetMapping("/list")
public ResponseEntity> list() {
- try {
- List list = samplingStandardService.selectAll();
-
- if (list.isEmpty()) {
- return new ResponseEntity<>(HttpStatus.NO_CONTENT);
- }
- return new ResponseEntity<>(list, HttpStatus.OK);
- } catch (Exception e) {
- return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
- }
+ return ResponseEntity.ok(samplingStandardService.selectAll());
}
@PostMapping("/save")
- public ResponseEntity add(@RequestBody SamplingStandardDto samplingStandardDto) throws Exception {
+ public ResponseEntity add(@RequestBody SamplingStandardDto samplingStandardDto) {
return add(samplingStandardDto, samplingStandardService);
}
@PutMapping("/update")
- public ResponseEntity edit(@RequestBody SamplingStandardDto samplingStandardDto) throws Exception {
+ public ResponseEntity edit(@RequestBody SamplingStandardDto samplingStandardDto) {
return edit(samplingStandardDto, samplingStandardService);
}
@DeleteMapping("/delete/{id}")
- public ResponseEntity delete(@PathVariable Long id) throws Exception {
+ public ResponseEntity delete(@PathVariable Long id) {
return delete(SamplingStandardDto.builder().id(id).build(), samplingStandardService);
}
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/iface/AbstractController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/iface/AbstractController.java
index 79fa1e1..7e079bf 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/iface/AbstractController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/iface/AbstractController.java
@@ -2,35 +2,22 @@
import agh.edu.pl.slpbackend.service.iface.AbstractService;
import agh.edu.pl.slpbackend.service.iface.IModel;
-import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
public abstract class AbstractController {
- protected ResponseEntity add(final IModel model, final AbstractService service) throws Exception {
- try {
- service.insert(model);
- return ResponseEntity.status(HttpStatus.OK).build();
- } catch (Exception e) {
- throw new Exception(e);
- }
+ protected ResponseEntity add(final IModel model, final AbstractService service) {
+ service.insert(model);
+ return ResponseEntity.ok().build();
}
- protected ResponseEntity edit(final IModel model, final AbstractService service) throws Exception {
- try {
- service.update(model);
- return ResponseEntity.status(HttpStatus.OK).build();
- } catch (Exception e) {
- throw new Exception(e);
- }
+ protected ResponseEntity edit(final IModel model, final AbstractService service) {
+ service.update(model);
+ return ResponseEntity.ok().build();
}
- protected ResponseEntity delete(final IModel model, final AbstractService service) throws Exception {
- try {
- service.delete(model);
- return ResponseEntity.status(HttpStatus.OK).build();
- } catch (Exception e) {
- throw new Exception(e);
- }
+ protected ResponseEntity delete(final IModel model, final AbstractService service) {
+ service.delete(model);
+ return ResponseEntity.ok().build();
}
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/converter/PasswordConverter.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/converter/PasswordConverter.java
index 141c2d9..e98eef9 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/converter/PasswordConverter.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/converter/PasswordConverter.java
@@ -13,17 +13,11 @@ public class PasswordConverter implements AttributeConverter {
@Override
public String convertToDatabaseColumn(String password) {
- if (password == null || password.isEmpty()) {
- return null;
- }
return textEncryptor.encrypt(password);
}
@Override
public String convertToEntityAttribute(String password) {
- if (password == null || password.isEmpty()) {
- return null;
- }
return textEncryptor.decrypt(password);
}
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/database/backup/BackupController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/database/backup/BackupController.java
index 459f35a..deeb3dc 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/database/backup/BackupController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/database/backup/BackupController.java
@@ -3,7 +3,6 @@
import lombok.AllArgsConstructor;
import org.springframework.core.io.InputStreamResource;
-import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
@@ -11,6 +10,8 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.io.IOException;
+
@RestController
@AllArgsConstructor
@RequestMapping("/backup")
@@ -20,14 +21,9 @@ public class BackupController {
private BackupService backupService;
@GetMapping("/")
- public ResponseEntity backup() {
- try {
- return ResponseEntity.ok()
- .contentType(MediaType.APPLICATION_OCTET_STREAM)
- .body(backupService.backupExecutor());
-
- } catch (Exception e) {
- return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
- }
+ public ResponseEntity backup() throws IOException {
+ return ResponseEntity.ok()
+ .contentType(MediaType.APPLICATION_OCTET_STREAM)
+ .body(backupService.backupExecutor());
}
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/database/backup/BackupService.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/database/backup/BackupService.java
index 8bb19fa..ab69f32 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/database/backup/BackupService.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/database/backup/BackupService.java
@@ -111,9 +111,8 @@ private static void exportTableToCSVInMemory(Connection conn, String tableName,
}
- public InputStreamResource backupExecutor() throws IOException, InterruptedException {
+ public InputStreamResource backupExecutor() throws IOException {
return exportDatabaseToCSV();
-
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/AddressService.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/AddressService.java
index 9c27083..d5d2107 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/AddressService.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/AddressService.java
@@ -4,8 +4,6 @@
import agh.edu.pl.slpbackend.mapper.AddressMapper;
import agh.edu.pl.slpbackend.model.Address;
import agh.edu.pl.slpbackend.repository.AddressRepository;
-import agh.edu.pl.slpbackend.service.iface.AbstractService;
-import agh.edu.pl.slpbackend.service.iface.IModel;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -16,28 +14,12 @@
@Service
@Slf4j
@AllArgsConstructor
-public class AddressService extends AbstractService implements AddressMapper {
+public class AddressService implements AddressMapper {
+
private final AddressRepository addressRepository;
public List selectAll() {
List addressesList = addressRepository.findAll();
return addressesList.stream().map(this::toDto).collect(Collectors.toList());
}
-
- @Override
- public Object insert(IModel model) {
- final AddressDto addressDto = (AddressDto) model;
- final Address address = toModel(addressDto);
- return addressRepository.save(address);
- }
-
- @Override
- public Object update(IModel model) {
- return null;
- }
-
-
- @Override
- public void delete(IModel model) {
- }
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/ExaminationService.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/ExaminationService.java
index 21dba6e..5d4db0e 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/ExaminationService.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/ExaminationService.java
@@ -24,26 +24,6 @@ public class ExaminationService extends AbstractService implements ExaminationMa
private final ExaminationRepository examinationRepository;
private final SampleRepository sampleRepository;
- public List selectAll() {
- List examinationList = examinationRepository.findAll();
- return examinationList.stream().map(this::toDto).collect(Collectors.toList());
- }
-
- public void insertExaminationResults(Long examinationId, ExaminationDto updatedExaminationDto) {
- final Examination updatedExamination = toModel(updatedExaminationDto);
-
- Examination existingExamination = examinationRepository.getReferenceById(examinationId);
- existingExamination.setResult(updatedExamination.getResult());
- existingExamination.setStartDate(updatedExamination.getStartDate());
- existingExamination.setEndDate(updatedExamination.getEndDate());
- existingExamination.setMethodStatus(updatedExamination.getMethodStatus());
- existingExamination.setUncertainty(updatedExamination.getUncertainty());
- existingExamination.setLod(updatedExaminationDto.getLod());
- existingExamination.setLoq(updatedExaminationDto.getLoq());
-
- examinationRepository.save(existingExamination);
- }
-
public List selectExaminationsForSample(final Long sampleId) {
List examinations = examinationRepository.findBySampleId(sampleId);
return examinations.stream().map(this::toDto).collect(Collectors.toList());
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/ReportDataService.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/ReportDataService.java
index 8f47cc2..d522e4b 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/ReportDataService.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/ReportDataService.java
@@ -40,14 +40,6 @@ public ReportDataDto selectBySampleId(Long sampleId) {
}
return toDto(reportData);
}
-// @Override
-// public ResponseEntity> insert(IModel model) {
-// final ReportDataDto reportDataDto = (ReportDataDto) model;
-// final ReportData reportData = toModel(reportDataDto);
-// final ReportData saveResult = reportDataRepository.save(reportData);
-//
-// return new ResponseEntity<>(saveResult, HttpStatus.CREATED);
-// }
@Override
public Object insert(IModel model) {
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/UserService.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/UserService.java
index 5593ac4..7d441bd 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/UserService.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/UserService.java
@@ -2,7 +2,6 @@
import agh.edu.pl.slpbackend.auth.JwtUtil;
import agh.edu.pl.slpbackend.dto.UserDto;
-import agh.edu.pl.slpbackend.dto.users.ChangePasswordForAdminRequest;
import agh.edu.pl.slpbackend.dto.users.ChangePasswordRequest;
import agh.edu.pl.slpbackend.dto.users.LoginRequest;
import agh.edu.pl.slpbackend.dto.users.LoginResponse;
@@ -75,7 +74,7 @@ public void changePassword(ChangePasswordRequest request, String email) {
userRepository.save(user);
}
- public void changePasswordForAdmin(ChangePasswordRequest request, String email) {
+ public void changePasswordByAdmin(ChangePasswordRequest request, String email) {
User user = userRepository.findByEmail(email)
.orElseThrow(UserNotFoundException::new);
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/dictionary/IndicationService.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/dictionary/IndicationService.java
index 61af767..a1abbcf 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/dictionary/IndicationService.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/service/dictionary/IndicationService.java
@@ -1,6 +1,8 @@
package agh.edu.pl.slpbackend.service.dictionary;
+import agh.edu.pl.slpbackend.dto.AssortmentDto;
import agh.edu.pl.slpbackend.dto.IndicationDto;
+import agh.edu.pl.slpbackend.exception.DataDependencyException;
import agh.edu.pl.slpbackend.exception.SampleNotFoundException;
import agh.edu.pl.slpbackend.mapper.IndicationMapper;
import agh.edu.pl.slpbackend.model.Indication;
@@ -11,6 +13,7 @@
import agh.edu.pl.slpbackend.service.iface.IModel;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -61,7 +64,10 @@ public Object update(IModel model) {
@Override
public void delete(IModel model) {
final IndicationDto indicationDto = (IndicationDto) model;
- indicationRepository.deleteById(indicationDto.getId());
+ try {
+ indicationRepository.deleteById(indicationDto.getId());
+ } catch (DataIntegrityViolationException e) {
+ throw new DataDependencyException();
+ }
}
-
}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/auth/JwtAuthFilterTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/auth/JwtAuthFilterTest.java
new file mode 100644
index 0000000..0795e3d
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/auth/JwtAuthFilterTest.java
@@ -0,0 +1,108 @@
+package agh.edu.pl.slpbackend.auth;
+
+import agh.edu.pl.slpbackend.auth.JwtAuthFilter;
+import agh.edu.pl.slpbackend.auth.JwtUtil;
+import agh.edu.pl.slpbackend.auth.MyUserDetailsService;
+import agh.edu.pl.slpbackend.repository.UserRepository;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.io.IOException;
+import java.util.Date;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.*;
+
+@ExtendWith(MockitoExtension.class)
+@SpringBootTest
+public class JwtAuthFilterTest {
+
+ @Autowired
+ private UserRepository userRepository;
+
+ @Mock
+ private HttpServletRequest request;
+ @Mock
+ private HttpServletResponse response;
+ @Mock
+ private FilterChain filterChain;
+
+
+ private final JwtUtil jwtUtil = new JwtUtil();
+
+ private MyUserDetailsService myUserDetailsService;
+
+ @BeforeEach
+ void setUp() {
+ myUserDetailsService = new MyUserDetailsService(userRepository);
+ }
+
+ @Test
+ void should_not_filter() {
+ JwtAuthFilter jwtAuthFilter = new JwtAuthFilter(jwtUtil, myUserDetailsService);
+
+ when(request.getServletPath()).thenReturn("/users/login");
+
+ assertThat(jwtAuthFilter.shouldNotFilter(request)).isTrue();
+ }
+
+ @Test
+ void should_filter() {
+ JwtAuthFilter jwtAuthFilter = new JwtAuthFilter(jwtUtil, myUserDetailsService);
+
+ when(request.getServletPath()).thenReturn("/sample");
+
+ assertThat(jwtAuthFilter.shouldNotFilter(request)).isFalse();
+ }
+
+ @Test
+ void do_filter_internal() throws ServletException, IOException {
+ String email = "worker@gmail.com";
+ String token = jwtUtil.generateToken(email);
+ when(request.getHeader("Authorization")).thenReturn("Bearer " + token);
+
+ JwtAuthFilter jwtAuthFilter = new JwtAuthFilter(jwtUtil, myUserDetailsService);
+ jwtAuthFilter.doFilterInternal(request, response, filterChain);
+
+ verify(filterChain).doFilter(request, response);
+ }
+
+ @Test
+ void permission_denied() throws ServletException, IOException {
+ String email = "unauthorized";
+ String token = jwtUtil.generateToken(email);
+ when(request.getHeader("Authorization")).thenReturn("Bearer " + token);
+
+ JwtAuthFilter jwtAuthFilter = new JwtAuthFilter(jwtUtil, myUserDetailsService);
+ jwtAuthFilter.doFilterInternal(request, response, filterChain);
+
+ verify(response).sendError(403, "Permission denied");
+ }
+
+ @Test
+ void token_expired() throws ServletException, IOException {
+ String email = "worker@gmail.com";
+ String token = Jwts.builder()
+ .setSubject(email)
+ .setExpiration(new Date(System.currentTimeMillis() - 1000))
+ .signWith(SignatureAlgorithm.HS512, "SecretKey")
+ .compact();
+ when(request.getHeader("Authorization")).thenReturn("Bearer " + token);
+
+ JwtAuthFilter jwtAuthFilter = new JwtAuthFilter(jwtUtil, myUserDetailsService);
+ jwtAuthFilter.doFilterInternal(request, response, filterChain);
+
+ verify(response).sendError(401, "Token expired");
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/AssortmentControllerTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/AssortmentControllerTest.java
new file mode 100644
index 0000000..68f10de
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/AssortmentControllerTest.java
@@ -0,0 +1,30 @@
+package agh.edu.pl.slpbackend.controller;
+
+import agh.edu.pl.slpbackend.controller.dictionary.AssortmentController;
+import agh.edu.pl.slpbackend.dto.AssortmentDto;
+import agh.edu.pl.slpbackend.service.dictionary.AssortmentService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class AssortmentControllerTest {
+
+ @Mock
+ private AssortmentService service;
+
+ @Test
+ void delete() {
+ var controller = new AssortmentController(service);
+ Long id = 1L;
+ var response = controller.delete(id);
+
+ verify(service).delete(AssortmentDto.builder().id(id).build());
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/ClientControllerTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/ClientControllerTest.java
new file mode 100644
index 0000000..99d3d47
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/ClientControllerTest.java
@@ -0,0 +1,30 @@
+package agh.edu.pl.slpbackend.controller;
+
+import agh.edu.pl.slpbackend.controller.dictionary.ClientController;
+import agh.edu.pl.slpbackend.dto.ClientDto;
+import agh.edu.pl.slpbackend.service.dictionary.ClientService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class ClientControllerTest {
+
+ @Mock
+ private ClientService service;
+
+ @Test
+ void delete() {
+ var controller = new ClientController(service);
+ Long id = 1L;
+ var response = controller.delete(id);
+
+ verify(service).delete(ClientDto.builder().id(id).build());
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/CodeControllerTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/CodeControllerTest.java
new file mode 100644
index 0000000..16f00ee
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/CodeControllerTest.java
@@ -0,0 +1,30 @@
+package agh.edu.pl.slpbackend.controller;
+
+import agh.edu.pl.slpbackend.controller.dictionary.CodeController;
+import agh.edu.pl.slpbackend.dto.CodeDto;
+import agh.edu.pl.slpbackend.service.dictionary.CodeService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class CodeControllerTest {
+
+ @Mock
+ private CodeService service;
+
+ @Test
+ void delete() {
+ var controller = new CodeController(service);
+ String id = "Kp";
+ var response = controller.delete(id);
+
+ verify(service).delete(CodeDto.builder().id(id).build());
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/IndicationControllerTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/IndicationControllerTest.java
new file mode 100644
index 0000000..033577c
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/IndicationControllerTest.java
@@ -0,0 +1,30 @@
+package agh.edu.pl.slpbackend.controller;
+
+import agh.edu.pl.slpbackend.controller.dictionary.IndicationController;
+import agh.edu.pl.slpbackend.dto.IndicationDto;
+import agh.edu.pl.slpbackend.service.dictionary.IndicationService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class IndicationControllerTest {
+
+ @Mock
+ private IndicationService service;
+
+ @Test
+ void delete() {
+ var controller = new IndicationController(service);
+ Long id = 1L;
+ var response = controller.delete(id);
+
+ verify(service).delete(IndicationDto.builder().id(id).build());
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/InspectionControllerTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/InspectionControllerTest.java
new file mode 100644
index 0000000..2095771
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/InspectionControllerTest.java
@@ -0,0 +1,30 @@
+package agh.edu.pl.slpbackend.controller;
+
+import agh.edu.pl.slpbackend.controller.dictionary.InspectionController;
+import agh.edu.pl.slpbackend.dto.InspectionDto;
+import agh.edu.pl.slpbackend.service.dictionary.InspectionService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class InspectionControllerTest {
+
+ @Mock
+ private InspectionService service;
+
+ @Test
+ void delete() {
+ var controller = new InspectionController(service);
+ Long id = 1L;
+ var response = controller.delete(id);
+
+ verify(service).delete(InspectionDto.builder().id(id).build());
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/MethodControllerTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/MethodControllerTest.java
new file mode 100644
index 0000000..0375679
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/MethodControllerTest.java
@@ -0,0 +1,52 @@
+package agh.edu.pl.slpbackend.controller;
+
+import agh.edu.pl.slpbackend.service.MethodService;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.*;
+
+@ExtendWith(MockitoExtension.class)
+public class MethodControllerTest {
+
+ @Mock
+ private MethodService service;
+
+ @Mock
+ private MultipartFile file;
+
+ @Mock
+ private InputStream inputStream;
+
+ @BeforeEach
+ void setUp() throws IOException {
+ when(file.getInputStream()).thenReturn(inputStream);
+ }
+
+ @Test
+ void import_methods() throws IOException {
+ var controller = new MethodController(service);
+ var response = controller.importMethods(file);
+
+ verify(service).importMethods(inputStream);
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+
+ @Test
+ void import_methods_fails_when_exception() throws IOException {
+ var controller = new MethodController(service);
+ doThrow(IOException.class).when(service).importMethods(inputStream);
+ var response = controller.importMethods(file);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/ProductGroupControllerTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/ProductGroupControllerTest.java
new file mode 100644
index 0000000..ca316a5
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/ProductGroupControllerTest.java
@@ -0,0 +1,30 @@
+package agh.edu.pl.slpbackend.controller;
+
+import agh.edu.pl.slpbackend.controller.dictionary.ProductGroupController;
+import agh.edu.pl.slpbackend.dto.productGroup.ProductGroupDto;
+import agh.edu.pl.slpbackend.service.dictionary.ProductGroupService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class ProductGroupControllerTest {
+
+ @Mock
+ private ProductGroupService service;
+
+ @Test
+ void delete() {
+ var controller = new ProductGroupController(service);
+ Long id = 1L;
+ var response = controller.delete(id);
+
+ verify(service).delete(ProductGroupDto.builder().id(id).build());
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/SampleControllerTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/SampleControllerTest.java
deleted file mode 100644
index f3428da..0000000
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/SampleControllerTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package agh.edu.pl.slpbackend.controller;
-
-import agh.edu.pl.slpbackend.dto.SampleDto;
-import jakarta.transaction.Transactional;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-
-import java.time.LocalDate;
-import java.util.List;
-import java.util.Objects;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-
-@Transactional
-@SpringBootTest
-public class SampleControllerTest {
-
- @Autowired
- private SampleController sampleController;
-
- private SampleDto getSaveExample() {
- //@formatter:off
- return SampleDto.builder()
- .code(null)
- .client(null)
- .assortment(null)
- .admissionDate(LocalDate.now())
- .expirationComment("test")
- .examinationExpectedEndDate(LocalDate.now())
- .size("test")
- .state("test")
- .analysis(Boolean.TRUE)
- .inspection(null)
- .samplingStandard(null)
- .reportData(null)
- .build();
- //@formatter:on
- }
-
- @Test
- public void add() throws Exception {
- final ResponseEntity response = this.sampleController.add(getSaveExample());
- assertEquals(HttpStatus.OK, response.getStatusCode());
- }
-
- @Test
- public void list() {
- final ResponseEntity> list = this.sampleController.list();
- assertEquals(HttpStatus.OK, list.getStatusCode());
- assertFalse(Objects.requireNonNull(list.getBody()).isEmpty());
- }
-}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/SamplingStandardControllerTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/SamplingStandardControllerTest.java
new file mode 100644
index 0000000..55d1f60
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/controller/SamplingStandardControllerTest.java
@@ -0,0 +1,30 @@
+package agh.edu.pl.slpbackend.controller;
+
+import agh.edu.pl.slpbackend.controller.dictionary.SamplingStandardController;
+import agh.edu.pl.slpbackend.dto.SamplingStandardDto;
+import agh.edu.pl.slpbackend.service.dictionary.SamplingStandardService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class SamplingStandardControllerTest {
+
+ @Mock
+ private SamplingStandardService service;
+
+ @Test
+ void delete() {
+ var controller = new SamplingStandardController(service);
+ Long id = 1L;
+ var response = controller.delete(id);
+
+ verify(service).delete(SamplingStandardDto.builder().id(id).build());
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/AddressTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/AddressTest.java
new file mode 100644
index 0000000..5f0274a
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/AddressTest.java
@@ -0,0 +1,33 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.controller.AddressController;
+import agh.edu.pl.slpbackend.repository.AddressRepository;
+import jakarta.transaction.Transactional;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@Transactional
+@SpringBootTest
+public class AddressTest {
+
+ @Autowired
+ private AddressController controller;
+
+ @Autowired
+ private AddressRepository repository;
+
+ @Test
+ void get_all() {
+ var response = controller.list();
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+
+ var addresses = response.getBody();
+ assertThat(addresses).isNotNull();
+ assertThat(addresses.size()).isEqualTo(repository.count());
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/AssortmentTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/AssortmentTest.java
new file mode 100644
index 0000000..7bd0512
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/AssortmentTest.java
@@ -0,0 +1,61 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.controller.dictionary.AssortmentController;
+import agh.edu.pl.slpbackend.dto.AssortmentDto;
+import agh.edu.pl.slpbackend.mapper.AssortmentMapper;
+import agh.edu.pl.slpbackend.repository.AssortmentRepository;
+import jakarta.transaction.Transactional;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@Transactional
+@SpringBootTest
+public class AssortmentTest implements AssortmentMapper {
+
+ @Autowired
+ private AssortmentController controller;
+
+ @Autowired
+ private AssortmentRepository repository;
+
+ @Test
+ void get_all() {
+ var response = controller.list();
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+
+ var assortments = response.getBody();
+ assertThat(assortments).isNotNull();
+ assertThat(assortments.size()).isEqualTo(repository.count());
+ }
+
+ @Test
+ void add() {
+ var count = repository.count();
+
+ var assortment = AssortmentDto.builder()
+ .name("test")
+ .build();
+ var response = controller.add(assortment);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.count()).isEqualTo(count + 1);
+ }
+
+ @Test
+ void update() {
+ var assortment = repository.findAll().get(0);
+ var request = toDto(assortment);
+ String name = "test";
+ request.setName(name);
+
+ var response = controller.edit(request);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(assortment.getName()).isEqualTo(name);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/BackupTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/BackupTest.java
new file mode 100644
index 0000000..52b66bb
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/BackupTest.java
@@ -0,0 +1,25 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.database.backup.BackupController;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import java.io.IOException;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@SpringBootTest
+public class BackupTest {
+
+ @Autowired
+ private BackupController controller;
+
+ @Test
+ void csv_backup() throws IOException {
+ var response = controller.backup();
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ClientTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ClientTest.java
new file mode 100644
index 0000000..a72f734
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ClientTest.java
@@ -0,0 +1,61 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.controller.dictionary.ClientController;
+import agh.edu.pl.slpbackend.dto.ClientDto;
+import agh.edu.pl.slpbackend.mapper.ClientMapper;
+import agh.edu.pl.slpbackend.repository.ClientRepository;
+import jakarta.transaction.Transactional;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@Transactional
+@SpringBootTest
+public class ClientTest implements ClientMapper {
+
+ @Autowired
+ private ClientController controller;
+
+ @Autowired
+ private ClientRepository repository;
+
+ @Test
+ void get_all() {
+ var response = controller.list();
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+
+ var clients = response.getBody();
+ assertThat(clients).isNotNull();
+ assertThat(clients.size()).isEqualTo(repository.count());
+ }
+
+ @Test
+ void add() {
+ var count = repository.count();
+
+ var client = ClientDto.builder()
+ .name("test")
+ .build();
+ var response = controller.add(client);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.count()).isEqualTo(count + 1);
+ }
+
+ @Test
+ void update() {
+ var client = repository.findAll().get(0);
+ var request = toDto(client);
+ String name = "test";
+ request.setName(name);
+
+ var response = controller.edit(request);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(client.getName()).isEqualTo(name);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/CodeTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/CodeTest.java
new file mode 100644
index 0000000..55829b7
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/CodeTest.java
@@ -0,0 +1,59 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.controller.dictionary.CodeController;
+import agh.edu.pl.slpbackend.dto.CodeDto;
+import agh.edu.pl.slpbackend.mapper.CodeMapper;
+import agh.edu.pl.slpbackend.repository.CodeRepository;
+import jakarta.transaction.Transactional;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@Transactional
+@SpringBootTest
+public class CodeTest implements CodeMapper {
+
+ @Autowired
+ private CodeController controller;
+
+ @Autowired
+ private CodeRepository repository;
+
+ @Test
+ void get_all() {
+ var response = controller.list();
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+
+ var codes = response.getBody();
+ assertThat(codes).isNotNull();
+ assertThat(codes.size()).isEqualTo(repository.count());
+ }
+
+ @Test
+ void add() {
+ var code = CodeDto.builder()
+ .id("test")
+ .build();
+ var response = controller.add(code);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.existsById(code.getId())).isTrue();
+ }
+
+ @Test
+ void update() {
+ var code = repository.findAll().get(0);
+ var request = toDto(code);
+ String name = "test";
+ request.setName(name);
+
+ var response = controller.edit(request);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(code.getName()).isEqualTo(name);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ExaminationTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ExaminationTest.java
new file mode 100644
index 0000000..0b9c677
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ExaminationTest.java
@@ -0,0 +1,86 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.controller.ExaminationController;
+import agh.edu.pl.slpbackend.dto.ExaminationDto;
+import agh.edu.pl.slpbackend.mapper.ExaminationMapper;
+import agh.edu.pl.slpbackend.repository.ExaminationRepository;
+import agh.edu.pl.slpbackend.repository.SampleRepository;
+import jakarta.transaction.Transactional;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@Transactional
+@SpringBootTest
+public class ExaminationTest implements ExaminationMapper {
+
+ @Autowired
+ private ExaminationController controller;
+
+ @Autowired
+ private ExaminationRepository repository;
+
+ @Autowired
+ private SampleRepository sampleRepository;
+
+
+ @Test
+ void add() {
+ var count = repository.count();
+ var sample = sampleRepository.findAll().get(0);
+ var examination = ExaminationDto.builder()
+ .sample(sample)
+ .build();
+ var response = controller.add(examination);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.count()).isEqualTo(count + 1);
+ }
+
+ @Test
+ void update() {
+ var examination = repository.findAll().get(0);
+ var request = toDto(examination);
+ String result = "test";
+ request.setResult(result);
+
+ var response = controller.insertExaminationResults(request);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(examination.getResult()).isEqualTo(result);
+ }
+
+ @Test
+ void delete() {
+ var examination = repository.findAll().get(0);
+ var response = controller.deleteExamination(examination.getId());
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.existsById(examination.getId())).isFalse();
+ }
+
+ @Test
+ void get_one() {
+ var examination = repository.findAll().get(0);
+ var response = controller.getExaminationById(examination.getId());
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(response.getBody()).isEqualTo(toDto(examination));
+ }
+
+ @Test
+ void get_for_sample() {
+ var sample = sampleRepository.findAll().get(0);
+
+ var response = controller.getExaminationForSample(sample.getId());
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+
+ var examinations = response.getBody();
+ assertThat(examinations).isNotNull();
+ assertThat(examinations.size()).isEqualTo(sample.getAssortment().getIndications().size());
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/IndicationTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/IndicationTest.java
new file mode 100644
index 0000000..51bb0dc
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/IndicationTest.java
@@ -0,0 +1,96 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.controller.dictionary.IndicationController;
+import agh.edu.pl.slpbackend.dto.IndicationDto;
+import agh.edu.pl.slpbackend.exception.SampleNotFoundException;
+import agh.edu.pl.slpbackend.mapper.IndicationMapper;
+import agh.edu.pl.slpbackend.repository.IndicationRepository;
+import agh.edu.pl.slpbackend.repository.SampleRepository;
+import jakarta.transaction.Transactional;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+@Transactional
+@SpringBootTest
+public class IndicationTest implements IndicationMapper {
+
+ @Autowired
+ private IndicationController controller;
+
+ @Autowired
+ private IndicationRepository repository;
+
+ @Autowired
+ private SampleRepository sampleRepository;
+
+ @Test
+ void get_all() {
+ var response = controller.list();
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+
+ var indications = response.getBody();
+ assertThat(indications).isNotNull();
+ assertThat(indications.size()).isEqualTo(repository.count());
+ }
+
+ @Test
+ void add() {
+ var count = repository.count();
+
+ var indication = IndicationDto.builder()
+ .name("test")
+ .build();
+ var response = controller.add(indication);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.count()).isEqualTo(count + 1);
+ }
+
+ @Test
+ void update() {
+ var indication = repository.findAll().get(0);
+ var request = toDto(indication);
+ String name = "test";
+ request.setName(name);
+
+ var response = controller.edit(request);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(indication.getName()).isEqualTo(name);
+ }
+
+ @Test
+ void get_one() {
+ var indication = repository.findAll().get(0);
+
+ var response = controller.getIndicationById(indication.getId());
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(response.getBody()).isEqualTo(toDto(indication));
+ }
+
+ @Test
+ void get_for_sample() {
+ var sample = sampleRepository.findAll().get(0);
+
+ var response = controller.getIndicationsForSample(sample.getId());
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+
+ var indications = response.getBody();
+ assertThat(indications).isNotNull();
+ assertThat(indications.size()).isEqualTo(sample.getAssortment().getIndications().size());
+ }
+
+ @Test
+ void get_for_sample_fails_when_sample_not_found() {
+ assertThatThrownBy(() -> controller.getIndicationsForSample(8634685L))
+ .isInstanceOf(SampleNotFoundException.class);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/InspectionTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/InspectionTest.java
new file mode 100644
index 0000000..f0d45f6
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/InspectionTest.java
@@ -0,0 +1,61 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.controller.dictionary.InspectionController;
+import agh.edu.pl.slpbackend.dto.InspectionDto;
+import agh.edu.pl.slpbackend.mapper.InspectionMapper;
+import agh.edu.pl.slpbackend.repository.InspectionRepository;
+import jakarta.transaction.Transactional;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@Transactional
+@SpringBootTest
+public class InspectionTest implements InspectionMapper {
+
+ @Autowired
+ private InspectionController controller;
+
+ @Autowired
+ private InspectionRepository repository;
+
+ @Test
+ void get_all() {
+ var response = controller.list();
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+
+ var inspections = response.getBody();
+ assertThat(inspections).isNotNull();
+ assertThat(inspections.size()).isEqualTo(repository.count());
+ }
+
+ @Test
+ void add() {
+ var count = repository.count();
+
+ var inspection = InspectionDto.builder()
+ .name("test")
+ .build();
+ var response = controller.add(inspection);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.count()).isEqualTo(count + 1);
+ }
+
+ @Test
+ void update() {
+ var inspection = repository.findAll().get(0);
+ var request = toDto(inspection);
+ String name = "test";
+ request.setName(name);
+
+ var response = controller.edit(request);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(inspection.getName()).isEqualTo(name);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ProductGroupTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ProductGroupTest.java
new file mode 100644
index 0000000..52cd782
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ProductGroupTest.java
@@ -0,0 +1,67 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.controller.dictionary.ProductGroupController;
+import agh.edu.pl.slpbackend.dto.productGroup.ProductGroupSaveDto;
+import agh.edu.pl.slpbackend.mapper.ProductGroupMapper;
+import agh.edu.pl.slpbackend.repository.ProductGroupRepository;
+import jakarta.transaction.Transactional;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@Transactional
+@SpringBootTest
+public class ProductGroupTest implements ProductGroupMapper {
+
+ @Autowired
+ private ProductGroupController controller;
+
+ @Autowired
+ private ProductGroupRepository repository;
+
+ @Test
+ void get_all() {
+ var response = controller.list();
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+
+ var groups = response.getBody();
+ assertThat(groups).isNotNull();
+ assertThat(groups.size()).isEqualTo(repository.count());
+ }
+
+ @Test
+ void add() {
+ var count = repository.count();
+
+ var group = ProductGroupSaveDto.builder()
+ .samplingStandards(List.of())
+ .name("test")
+ .build();
+ var response = controller.add(group);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.count()).isEqualTo(count + 1);
+ }
+
+ @Test
+ void update() {
+ var group = repository.findAll().get(0);
+ String name = "test";
+ var request = ProductGroupSaveDto.builder()
+ .id(group.getId())
+ .name(name)
+ .samplingStandards(List.of())
+ .build();
+
+ var response = controller.edit(request);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(group.getName()).isEqualTo(name);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportDataTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportDataTest.java
new file mode 100644
index 0000000..91d0b18
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportDataTest.java
@@ -0,0 +1,87 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.controller.ReportDataController;
+import agh.edu.pl.slpbackend.dto.ReportDataDto;
+import agh.edu.pl.slpbackend.mapper.ReportDataMapper;
+import agh.edu.pl.slpbackend.model.Sample;
+import agh.edu.pl.slpbackend.repository.ReportDataRepository;
+import agh.edu.pl.slpbackend.repository.SampleRepository;
+import jakarta.transaction.Transactional;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@Transactional
+@SpringBootTest
+public class ReportDataTest implements ReportDataMapper {
+
+ @Autowired
+ private ReportDataController controller;
+
+ @Autowired
+ private ReportDataRepository repository;
+
+ @Autowired
+ private SampleRepository sampleRepository;
+
+ @Test
+ void get_all() {
+ var response = controller.list();
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+
+ var reportData = response.getBody();
+ assertThat(reportData).isNotNull();
+ assertThat(reportData.size()).isEqualTo(repository.count());
+ }
+
+ @Test
+ void add() {
+ var count = repository.count();
+
+ Sample sample = sampleRepository.findAll().get(0);
+ var request = ReportDataDto.builder()
+ .sampleId(sample.getId())
+ .build();
+ var response = controller.add(request);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.count()).isEqualTo(count + 1);
+ }
+
+ @Test
+ void update() {
+ var reportData = repository.findAll().get(0);
+ var request = toDto(reportData);
+ String mechanism = "test";
+ request.setMechanism(mechanism);
+
+ var response = controller.update(request);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(reportData.getMechanism()).isEqualTo(mechanism);
+ }
+
+ @Test
+ void delete() {
+ var reportData = repository.findAll().get(0);
+ var response = controller.delete(reportData.getId());
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.existsById(reportData.getId())).isFalse();
+ }
+
+ @Test
+ void get_by_sample_id() {
+ var sample = sampleRepository.findAll().get(0);
+ var response = controller.getReportBySampleId(sample.getId());
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ var reportData = response.getBody();
+ assertThat(reportData).isNotNull();
+ assertThat(toModel(reportData)).isEqualTo(sample.getReportData());
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportTest.java
new file mode 100644
index 0000000..b4f3128
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportTest.java
@@ -0,0 +1,111 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.exception.SampleNotFoundException;
+import agh.edu.pl.slpbackend.reports.kzwa.KZWAReportGeneratorController;
+import agh.edu.pl.slpbackend.reports.samplereport.SampleReportGeneratorController;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+@SpringBootTest
+public class ReportTest {
+
+ @Autowired
+ private KZWAReportGeneratorController KZWAReportController;
+
+ @Autowired
+ private SampleReportGeneratorController sampleReportController;
+
+ @Test
+ void generate_KZWA_report() {
+ var response = KZWAReportController.generate(1L);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+
+ @Test
+ void generate_KZWA_report_fails_when_unknown_sample_id() {
+ assertThatThrownBy(() -> KZWAReportController.generate(34895L))
+ .isInstanceOf(SampleNotFoundException.class);
+ }
+
+ @Test
+ void generate_sample_report_fails_when_unknown_sample_id() {
+ assertThatThrownBy(() -> sampleReportController.generate(34895L, ""))
+ .isInstanceOf(SampleNotFoundException.class);
+ }
+
+ @Test
+ void generate_F4_report0() {
+ var response = sampleReportController.generate(1L, "F4");
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+
+ @Test
+ void generate_F5_report0() {
+ var response = sampleReportController.generate(1L, "F5");
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+
+ @Test
+ void generate_F4_report1() {
+ var response = sampleReportController.generate(4L, "F4");
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+
+ @Test
+ void generate_F4_report2() {
+ var response = sampleReportController.generate(5L, "F4");
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+
+ @Test
+ void generate_F4_report3() {
+ var response = sampleReportController.generate(6L, "F4");
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+
+ @Test
+ void generate_F4_report4() {
+ var response = sampleReportController.generate(7L, "F4");
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+
+ @Test
+ void generate_F5_report1() {
+ var response = sampleReportController.generate(4L, "F5");
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+
+ @Test
+ void generate_F5_report2() {
+ var response = sampleReportController.generate(5L, "F5");
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+
+ @Test
+ void generate_F5_report3() {
+ var response = sampleReportController.generate(6L, "F5");
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+
+ @Test
+ void generate_F5_report4() {
+ var response = sampleReportController.generate(7L, "F5");
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SampleTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SampleTest.java
new file mode 100644
index 0000000..9f8a3b1
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SampleTest.java
@@ -0,0 +1,127 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.controller.SampleController;
+import agh.edu.pl.slpbackend.dto.SampleDto;
+import agh.edu.pl.slpbackend.dto.filters.FilterRequest;
+import agh.edu.pl.slpbackend.dto.filters.Filters;
+import agh.edu.pl.slpbackend.dto.filters.SummarySample;
+import agh.edu.pl.slpbackend.enums.ProgressStatusEnum;
+import agh.edu.pl.slpbackend.mapper.SampleMapper;
+import agh.edu.pl.slpbackend.repository.SampleRepository;
+import jakarta.transaction.Transactional;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@Transactional
+@SpringBootTest
+public class SampleTest implements SampleMapper {
+
+ @Autowired
+ private SampleController controller;
+
+ @Autowired
+ private SampleRepository repository;
+
+ @Test
+ void get_all() {
+ var response = controller.list();
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+
+ var samples = response.getBody();
+ assertThat(samples).isNotNull();
+ assertThat(samples.size()).isEqualTo(repository.count());
+ }
+
+ @Test
+ void add() {
+ var count = repository.count();
+
+ var sample = SampleDto.builder()
+ .state("")
+ .expirationComment("")
+ .build();
+ var response = controller.add(sample);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.count()).isEqualTo(count + 1);
+ }
+
+ @Test
+ void update() {
+ var sample = repository.findAll().get(0);
+ var request = toDto(sample);
+ String state = "test";
+ request.setState(state);
+
+ var response = controller.update(sample.getId(), request);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(sample.getState()).isEqualTo(state);
+ }
+
+ @Test
+ void count() {
+ var response = controller.count();
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(response.getBody()).isEqualTo(repository.count());
+ }
+
+ @Test
+ void get_one() {
+ var sample = repository.findAll().get(0);
+ var response = controller.getOne(sample.getId());
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(response.getBody()).isEqualTo(toDto(sample));
+ }
+
+ @Test
+ void update_status() {
+ var sample = repository.findAll().get(0);
+ var response = controller.updateStatus(sample.getId(), "IN_PROGRESS");
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(sample.getProgressStatus()).isEqualTo(ProgressStatusEnum.IN_PROGRESS);
+
+ response = controller.updateStatus(sample.getId(), "DONE");
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(sample.getProgressStatus()).isEqualTo(ProgressStatusEnum.DONE);
+ }
+
+ @Test
+ void delete() {
+ var sample = repository.findAll().get(0);
+ var response = controller.delete(sample.getId());
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.existsById(sample.getId())).isFalse();
+ }
+
+ @Test
+ void filter() {
+ var filters = new Filters(List.of("Kd", "O"), List.of("WIJHARS Kraków"), List.of(), List.of());
+ var request = new FilterRequest("id", true, 1, 1, filters, "");
+ var response = controller.filter(request);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ var filterResult = response.getBody();
+ assertThat(filterResult).isNotNull();
+ assertThat(filterResult.totalPages()).isEqualTo(2);
+ var sample = repository.findById(3L)
+ .orElseThrow();
+ assertThat(filterResult.samples()).isEqualTo(List.of(
+ new SummarySample(sample.getId(), sample.getCode().getId(), sample.getAssortment().getGroup().getName(),
+ sample.getAssortment().getName(), sample.getClient().getName(), sample.getAdmissionDate(),
+ sample.getProgressStatus())
+ ));
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SamplingStandardTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SamplingStandardTest.java
new file mode 100644
index 0000000..a3e6700
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SamplingStandardTest.java
@@ -0,0 +1,61 @@
+package agh.edu.pl.slpbackend.integration;
+
+import agh.edu.pl.slpbackend.controller.dictionary.SamplingStandardController;
+import agh.edu.pl.slpbackend.dto.SamplingStandardDto;
+import agh.edu.pl.slpbackend.mapper.SamplingStandardMapper;
+import agh.edu.pl.slpbackend.repository.SamplingStandardRepository;
+import jakarta.transaction.Transactional;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@Transactional
+@SpringBootTest
+public class SamplingStandardTest implements SamplingStandardMapper {
+
+ @Autowired
+ private SamplingStandardController controller;
+
+ @Autowired
+ private SamplingStandardRepository repository;
+
+ @Test
+ void get_all() {
+ var response = controller.list();
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+
+ var samplingStandards = response.getBody();
+ assertThat(samplingStandards).isNotNull();
+ assertThat(samplingStandards.size()).isEqualTo(repository.count());
+ }
+
+ @Test
+ void add() {
+ var count = repository.count();
+
+ var samplingStandard = SamplingStandardDto.builder()
+ .name("test")
+ .build();
+ var response = controller.add(samplingStandard);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.count()).isEqualTo(count + 1);
+ }
+
+ @Test
+ void update() {
+ var samplingStandard = repository.findAll().get(0);
+ var request = toDto(samplingStandard);
+ String name = "test";
+ request.setName(name);
+
+ var response = controller.edit(request);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(samplingStandard.getName()).isEqualTo(name);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/UserTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/UserTest.java
index 589136b..b134829 100644
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/UserTest.java
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/UserTest.java
@@ -2,6 +2,7 @@
import agh.edu.pl.slpbackend.controller.UserController;
import agh.edu.pl.slpbackend.dto.UserDto;
+import agh.edu.pl.slpbackend.dto.users.ChangePasswordRequest;
import agh.edu.pl.slpbackend.dto.users.LoginRequest;
import agh.edu.pl.slpbackend.enums.RoleEnum;
import agh.edu.pl.slpbackend.exception.AccountAlreadyExistsException;
@@ -28,6 +29,8 @@ public class UserTest {
@Autowired
private UserRepository repository;
+ private static final String WORKER_EMAIL = "worker@gmail.com";
+
@Test
@WithMockUser(roles = "ADMIN")
void register() {
@@ -59,7 +62,7 @@ void register_fails_when_email_taken() {
var userCount = repository.count();
var userDto = UserDto.builder()
.name("Adam Nowak")
- .email("worker@gmail.com")
+ .email(WORKER_EMAIL)
.role(RoleEnum.WORKER)
.build();
@@ -70,7 +73,7 @@ void register_fails_when_email_taken() {
@Test
void login() {
- var loginRequest = new LoginRequest("worker@gmail.com", "worker");
+ var loginRequest = new LoginRequest(WORKER_EMAIL, "worker");
var response = controller.login(loginRequest);
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
@@ -95,7 +98,7 @@ void login_fails_when_unknown_email() {
@Test
void login_fails_when_wrong_password() {
- var loginRequest = new LoginRequest("worker@gmail.com", "");
+ var loginRequest = new LoginRequest(WORKER_EMAIL, "");
assertThatThrownBy(() -> controller.login(loginRequest))
.isInstanceOf(WrongPasswordException.class);
@@ -103,7 +106,7 @@ void login_fails_when_wrong_password() {
@Test
@WithMockUser(roles = "ADMIN")
- void getAll() {
+ void get_all() {
var response = controller.getUsers();
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
@@ -115,13 +118,13 @@ void getAll() {
@Test
@WithMockUser(roles = "ADMIN")
void delete() {
- var email = "worker@gmail.com";
- assertThat(repository.existsByEmail(email)).isTrue();
+ assertThat(repository.existsByEmail(WORKER_EMAIL)).isTrue();
var count = repository.count();
- controller.deleteUser(email);
+ var response = controller.deleteUser(WORKER_EMAIL);
- assertThat(repository.existsByEmail(email)).isFalse();
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(repository.existsByEmail(WORKER_EMAIL)).isFalse();
assertThat(repository.count()).isEqualTo(count - 1);
}
@@ -131,4 +134,61 @@ void delete_fails_when_unknown_email() {
assertThatThrownBy(() -> controller.deleteUser(""))
.isInstanceOf(UserNotFoundException.class);
}
+
+ @Test
+ void change_password() {
+ var user = repository.findByEmail(WORKER_EMAIL)
+ .orElseThrow();
+ var newPassword = "test";
+ var request = new ChangePasswordRequest(user.getPassword(), newPassword);
+
+ var response = controller.changePassword(request, WORKER_EMAIL);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(user.getPassword()).isEqualTo(newPassword);
+ }
+
+ @Test
+ void change_password_fails_when_unknown_email() {
+ var user = repository.findByEmail(WORKER_EMAIL)
+ .orElseThrow();
+ var newPassword = "test";
+ var request = new ChangePasswordRequest(user.getPassword(), newPassword);
+
+ assertThatThrownBy(() -> controller.changePassword(request, ""))
+ .isInstanceOf(UserNotFoundException.class);
+ }
+
+ @Test
+ void change_password_fails_when_wrong_password() {
+ var newPassword = "test";
+ var request = new ChangePasswordRequest("", newPassword);
+
+ assertThatThrownBy(() -> controller.changePassword(request, WORKER_EMAIL))
+ .isInstanceOf(WrongPasswordException.class);
+ }
+
+ @Test
+ @WithMockUser(roles = "ADMIN")
+ void change_password_by_admin() {
+ var user = repository.findByEmail(WORKER_EMAIL)
+ .orElseThrow();
+ var newPassword = "test";
+ var request = new ChangePasswordRequest("", newPassword);
+
+ var response = controller.changePasswordByAdmin(request, WORKER_EMAIL);
+
+ assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(user.getPassword()).isEqualTo(newPassword);
+ }
+
+ @Test
+ @WithMockUser(roles = "ADMIN")
+ void change_password_by_admin_fails_when_unknown_email() {
+ var newPassword = "test";
+ var request = new ChangePasswordRequest("", newPassword);
+
+ assertThatThrownBy(() -> controller.changePasswordByAdmin(request, ""))
+ .isInstanceOf(UserNotFoundException.class);
+ }
}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/repository/SampleRepositoryTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/repository/SampleRepositoryTest.java
deleted file mode 100644
index f8a4618..0000000
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/repository/SampleRepositoryTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package agh.edu.pl.slpbackend.repository;
-
-import agh.edu.pl.slpbackend.model.Sample;
-import jakarta.transaction.Transactional;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-
-import java.time.LocalDate;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-
-@Transactional
-@SpringBootTest
-public class SampleRepositoryTest {
-
- @Autowired
- private SampleRepository sampleRepository;
-
- private Sample getSaveExample() {
- //@formatter:off
- return Sample.builder()
- .code(null)
- .client(null)
- .assortment(null)
- .admissionDate(LocalDate.now())
- .expirationComment("test")
- .examinationExpectedEndDate(LocalDate.now())
- .size("test")
- .state("test")
- .analysis(Boolean.TRUE)
- .inspection(null)
- .samplingStandard(null)
- .reportData(null)
- .build();
- //@formatter:on
- }
-
-
- @Test
- public void findAll() {
- final List list = sampleRepository.findAll();
- assertFalse(list.isEmpty());
- }
-
- @Test
- public void save() {
-
- final long count1 = this.sampleRepository.count();
-
- final Sample response = this.sampleRepository.save(getSaveExample());
-
- final long count2 = this.sampleRepository.count();
- assertEquals(count1 + 1, count2);
-
- }
-
-}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/AssortmentServiceTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/AssortmentServiceTest.java
new file mode 100644
index 0000000..f868135
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/AssortmentServiceTest.java
@@ -0,0 +1,44 @@
+package agh.edu.pl.slpbackend.service;
+
+import agh.edu.pl.slpbackend.dto.AssortmentDto;
+import agh.edu.pl.slpbackend.exception.DataDependencyException;
+import agh.edu.pl.slpbackend.repository.AssortmentRepository;
+import agh.edu.pl.slpbackend.service.dictionary.AssortmentService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.dao.DataIntegrityViolationException;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class AssortmentServiceTest {
+
+ @Mock
+ private AssortmentRepository repository;
+
+ @Test
+ void delete() {
+ var service = new AssortmentService(repository);
+ Long id = 1L;
+
+ service.delete(AssortmentDto.builder().id(id).build());
+
+ verify(repository).deleteById(id);
+ }
+
+ @Test
+ void delete_fails_when_data_integrity_violation_exception() {
+ var service = new AssortmentService(repository);
+ Long id = 1L;
+
+ doThrow(DataIntegrityViolationException.class)
+ .when(repository).deleteById(id);
+
+ assertThatThrownBy(() -> service.delete(AssortmentDto.builder().id(id).build()))
+ .isInstanceOf(DataDependencyException.class);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/ClientServiceTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/ClientServiceTest.java
new file mode 100644
index 0000000..5e3c666
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/ClientServiceTest.java
@@ -0,0 +1,44 @@
+package agh.edu.pl.slpbackend.service;
+
+import agh.edu.pl.slpbackend.dto.ClientDto;
+import agh.edu.pl.slpbackend.exception.DataDependencyException;
+import agh.edu.pl.slpbackend.repository.ClientRepository;
+import agh.edu.pl.slpbackend.service.dictionary.ClientService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.dao.DataIntegrityViolationException;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class ClientServiceTest {
+
+ @Mock
+ private ClientRepository repository;
+
+ @Test
+ void delete() {
+ var service = new ClientService(repository);
+ Long id = 1L;
+
+ service.delete(ClientDto.builder().id(id).build());
+
+ verify(repository).deleteById(id);
+ }
+
+ @Test
+ void delete_fails_when_data_integrity_violation_exception() {
+ var service = new ClientService(repository);
+ Long id = 1L;
+
+ doThrow(DataIntegrityViolationException.class)
+ .when(repository).deleteById(id);
+
+ assertThatThrownBy(() -> service.delete(ClientDto.builder().id(id).build()))
+ .isInstanceOf(DataDependencyException.class);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/CodeServiceTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/CodeServiceTest.java
new file mode 100644
index 0000000..ba9e33f
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/CodeServiceTest.java
@@ -0,0 +1,44 @@
+package agh.edu.pl.slpbackend.service;
+
+import agh.edu.pl.slpbackend.dto.CodeDto;
+import agh.edu.pl.slpbackend.exception.DataDependencyException;
+import agh.edu.pl.slpbackend.repository.CodeRepository;
+import agh.edu.pl.slpbackend.service.dictionary.CodeService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.dao.DataIntegrityViolationException;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class CodeServiceTest {
+
+ @Mock
+ private CodeRepository repository;
+
+ @Test
+ void delete() {
+ var service = new CodeService(repository);
+ String id = "Kp";
+
+ service.delete(CodeDto.builder().id(id).build());
+
+ verify(repository).deleteById(id);
+ }
+
+ @Test
+ void delete_fails_when_data_integrity_violation_exception() {
+ var service = new CodeService(repository);
+ String id = "Kp";
+
+ doThrow(DataIntegrityViolationException.class)
+ .when(repository).deleteById(id);
+
+ assertThatThrownBy(() -> service.delete(CodeDto.builder().id(id).build()))
+ .isInstanceOf(DataDependencyException.class);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/IndicationServiceTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/IndicationServiceTest.java
new file mode 100644
index 0000000..5482e41
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/IndicationServiceTest.java
@@ -0,0 +1,48 @@
+package agh.edu.pl.slpbackend.service;
+
+import agh.edu.pl.slpbackend.dto.IndicationDto;
+import agh.edu.pl.slpbackend.exception.DataDependencyException;
+import agh.edu.pl.slpbackend.repository.IndicationRepository;
+import agh.edu.pl.slpbackend.repository.SampleRepository;
+import agh.edu.pl.slpbackend.service.dictionary.IndicationService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.dao.DataIntegrityViolationException;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class IndicationServiceTest {
+
+ @Mock
+ private IndicationRepository repository;
+
+ @Mock
+ private SampleRepository sampleRepository;
+
+ @Test
+ void delete() {
+ var service = new IndicationService(repository, sampleRepository);
+ Long id = 1L;
+
+ service.delete(IndicationDto.builder().id(id).build());
+
+ verify(repository).deleteById(id);
+ }
+
+ @Test
+ void delete_fails_when_data_integrity_violation_exception() {
+ var service = new IndicationService(repository, sampleRepository);
+ Long id = 1L;
+
+ doThrow(DataIntegrityViolationException.class)
+ .when(repository).deleteById(id);
+
+ assertThatThrownBy(() -> service.delete(IndicationDto.builder().id(id).build()))
+ .isInstanceOf(DataDependencyException.class);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/InspectionServiceTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/InspectionServiceTest.java
new file mode 100644
index 0000000..e9fe569
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/InspectionServiceTest.java
@@ -0,0 +1,44 @@
+package agh.edu.pl.slpbackend.service;
+
+import agh.edu.pl.slpbackend.dto.InspectionDto;
+import agh.edu.pl.slpbackend.exception.DataDependencyException;
+import agh.edu.pl.slpbackend.repository.InspectionRepository;
+import agh.edu.pl.slpbackend.service.dictionary.InspectionService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.dao.DataIntegrityViolationException;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class InspectionServiceTest {
+
+ @Mock
+ private InspectionRepository repository;
+
+ @Test
+ void delete() {
+ var service = new InspectionService(repository);
+ Long id = 1L;
+
+ service.delete(InspectionDto.builder().id(id).build());
+
+ verify(repository).deleteById(id);
+ }
+
+ @Test
+ void delete_fails_when_data_integrity_violation_exception() {
+ var service = new InspectionService(repository);
+ Long id = 1L;
+
+ doThrow(DataIntegrityViolationException.class)
+ .when(repository).deleteById(id);
+
+ assertThatThrownBy(() -> service.delete(InspectionDto.builder().id(id).build()))
+ .isInstanceOf(DataDependencyException.class);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/ProductGroupServiceTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/ProductGroupServiceTest.java
new file mode 100644
index 0000000..40e339a
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/ProductGroupServiceTest.java
@@ -0,0 +1,48 @@
+package agh.edu.pl.slpbackend.service;
+
+import agh.edu.pl.slpbackend.dto.productGroup.ProductGroupDto;
+import agh.edu.pl.slpbackend.exception.DataDependencyException;
+import agh.edu.pl.slpbackend.repository.ProductGroupRepository;
+import agh.edu.pl.slpbackend.repository.SamplingStandardRepository;
+import agh.edu.pl.slpbackend.service.dictionary.ProductGroupService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.dao.DataIntegrityViolationException;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+public class ProductGroupServiceTest {
+
+ @Mock
+ private ProductGroupRepository repository;
+
+ @Mock
+ private SamplingStandardRepository samplingStandardRepository;
+
+ @Test
+ void delete() {
+ var service = new ProductGroupService(repository, samplingStandardRepository);
+ Long id = 1L;
+
+ service.delete(ProductGroupDto.builder().id(id).build());
+
+ verify(repository).deleteById(id);
+ }
+
+ @Test
+ void delete_fails_when_data_integrity_violation_exception() {
+ var service = new ProductGroupService(repository, samplingStandardRepository);
+ Long id = 1L;
+
+ doThrow(DataIntegrityViolationException.class)
+ .when(repository).deleteById(id);
+
+ assertThatThrownBy(() -> service.delete(ProductGroupDto.builder().id(id).build()))
+ .isInstanceOf(DataDependencyException.class);
+ }
+}
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/SamplingStandardServiceTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/SamplingStandardServiceTest.java
new file mode 100644
index 0000000..137d897
--- /dev/null
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/service/SamplingStandardServiceTest.java
@@ -0,0 +1,67 @@
+package agh.edu.pl.slpbackend.service;
+
+import agh.edu.pl.slpbackend.dto.SamplingStandardDto;
+import agh.edu.pl.slpbackend.exception.DataDependencyException;
+import agh.edu.pl.slpbackend.model.ProductGroup;
+import agh.edu.pl.slpbackend.model.SamplingStandard;
+import agh.edu.pl.slpbackend.repository.ProductGroupRepository;
+import agh.edu.pl.slpbackend.repository.SamplingStandardRepository;
+import agh.edu.pl.slpbackend.service.dictionary.SamplingStandardService;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.dao.DataIntegrityViolationException;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.mockito.Mockito.*;
+
+@ExtendWith(MockitoExtension.class)
+public class SamplingStandardServiceTest {
+
+ @Mock
+ private SamplingStandardRepository repository;
+
+ @Mock
+ private ProductGroupRepository groupRepository;
+
+ @Test
+ void delete() {
+ var service = new SamplingStandardService(repository, groupRepository);
+ Long id = 1L;
+
+ var group = new ProductGroup(id, "name", List.of(), List.of());
+ var samplingStandard = new SamplingStandard(id, "name", new ArrayList<>(List.of(group)));
+ group.setSamplingStandards(new ArrayList<>(List.of(samplingStandard)));
+
+ when(repository.findById(id))
+ .thenReturn(Optional.of(samplingStandard));
+
+ service.delete(SamplingStandardDto.builder().id(id).build());
+
+ verify(groupRepository).save(group);
+ verify(repository).save(samplingStandard);
+ verify(repository).deleteById(id);
+ }
+
+ @Test
+ void delete_fails_when_data_integrity_violation_exception() {
+ var service = new SamplingStandardService(repository, groupRepository);
+ Long id = 1L;
+
+ var samplingStandard = new SamplingStandard(id, "name", new ArrayList<>());
+
+ when(repository.findById(id))
+ .thenReturn(Optional.of(samplingStandard));
+
+ doThrow(DataIntegrityViolationException.class)
+ .when(repository).deleteById(id);
+
+ assertThatThrownBy(() -> service.delete(SamplingStandardDto.builder().id(id).build()))
+ .isInstanceOf(DataDependencyException.class);
+ }
+}