From 323321350e20f39dabe22d968320bbcc97168be1 Mon Sep 17 00:00:00 2001 From: Mirna Gama Date: Fri, 12 Jan 2024 14:39:41 -0300 Subject: [PATCH] [R9] Unit test for add method in user service class --- .../application/service/UserServiceTest.java | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/test/java/com/mirna/hospitalmanagementapi/unit/application/service/UserServiceTest.java diff --git a/src/test/java/com/mirna/hospitalmanagementapi/unit/application/service/UserServiceTest.java b/src/test/java/com/mirna/hospitalmanagementapi/unit/application/service/UserServiceTest.java new file mode 100644 index 0000000..cfaef26 --- /dev/null +++ b/src/test/java/com/mirna/hospitalmanagementapi/unit/application/service/UserServiceTest.java @@ -0,0 +1,68 @@ +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.AfterAll; +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 org.springframework.test.context.ActiveProfiles; + +import com.mirna.hospitalmanagementapi.HospitalManagementApiApplication; +import com.mirna.hospitalmanagementapi.application.services.UserServiceImpl; +import com.mirna.hospitalmanagementapi.domain.dtos.auth.UserDTO; +import com.mirna.hospitalmanagementapi.domain.entities.auth.User; +import com.mirna.hospitalmanagementapi.domain.repositories.auth.UserRepository; + +import jakarta.validation.ConstraintViolationException; + +/** + * + * @author Mirna Gama + * @version 1.0 + */ +@SpringBootTest(classes = HospitalManagementApiApplication.class) +@TestInstance(Lifecycle.PER_CLASS) +@ActiveProfiles("test") +public class UserServiceTest { + + @Autowired + private UserServiceImpl userService; + + @Autowired + private UserRepository userRepository; + + @AfterAll + public void terminate() { + userRepository.deleteAll(); + } + + /** + * Create a valid doctor. + */ + @Test + @DisplayName("Should add valid user") + public void testAddValidUser() { + UserDTO userDTO = new UserDTO("test", "password"); + + User user = userService.addUser(userDTO); + + assertNotNull(user.getId()); + } + + /** + * Avoid creating a user with invalid parameter. Example: login being blank + */ + @Test + @DisplayName("Should not add user with invalid parameter") + public void testAddInvalidUser() { + UserDTO userDTO = new UserDTO("", "password"); + + assertThrows(ConstraintViolationException.class, () -> userService.addUser(userDTO)); + } + +}