From fc805ee54788a38cf66f153819cda3487ce4d7f4 Mon Sep 17 00:00:00 2001 From: Mirna Gama Date: Thu, 4 Jan 2024 12:33:56 -0300 Subject: [PATCH] [R1] Unit test class for Doctor Service add method --- .../service/DoctorServiceTest.java | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/test/java/com/mirna/hospitalmanagementapi/unit/application/service/DoctorServiceTest.java diff --git a/src/test/java/com/mirna/hospitalmanagementapi/unit/application/service/DoctorServiceTest.java b/src/test/java/com/mirna/hospitalmanagementapi/unit/application/service/DoctorServiceTest.java new file mode 100644 index 0000000..5def3a9 --- /dev/null +++ b/src/test/java/com/mirna/hospitalmanagementapi/unit/application/service/DoctorServiceTest.java @@ -0,0 +1,59 @@ +package com.mirna.hospitalmanagementapi.unit.application.service; + +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import com.mirna.hospitalmanagementapi.HospitalManagementApiApplication; +import com.mirna.hospitalmanagementapi.application.services.DoctorServiceImpl; +import com.mirna.hospitalmanagementapi.domain.dtos.AddressDTO; +import com.mirna.hospitalmanagementapi.domain.dtos.DoctorDTO; +import com.mirna.hospitalmanagementapi.domain.entities.Doctor; +import com.mirna.hospitalmanagementapi.domain.enums.Specialty; + +import jakarta.validation.ConstraintViolationException; + +/** + * + * @author Mirna Gama + * @version 1.0 + */ +@SpringBootTest(classes = HospitalManagementApiApplication.class) +@TestInstance(Lifecycle.PER_CLASS) +public class DoctorServiceTest { + + @Autowired + private DoctorServiceImpl doctorService; + + /** + * Create a valid doctor. + */ + @Test + @DisplayName("Should add valid doctor") + public void testAddValidDoctor() throws Exception { + DoctorDTO doctorDTO = new DoctorDTO("test", "test@gmail.com", "123456", "99999999", Specialty.ORTHOPEDICS, + new AddressDTO("TEST STREET", "NEIGHBORHOOD", "12345678", "CITY", "ST", null, null)); + + Doctor doctor = doctorService.addDoctor(doctorDTO); + + assertNotNull(doctor.getId()); + } + + /** + * Avoid creating a doctor with invalid parameter. Example: name being blank + */ + @Test + @DisplayName("Should not add doctor with invalid parameter") + public void testAddInvalidDoctor() throws Exception { + DoctorDTO doctorDTO = new DoctorDTO("", "test@gmail.com", "123456", "99999999", Specialty.ORTHOPEDICS, + new AddressDTO("TEST STREET", "NEIGHBORHOOD", "12345678", "CITY", "ST", null, null)); + + assertThrows(ConstraintViolationException.class, () -> doctorService.addDoctor(doctorDTO)); + } +}