add integration test to find by id user controller with not found

This commit is contained in:
rayankonecny 2025-12-13 14:09:20 +00:00
parent f106857e17
commit b32dc77734

View file

@ -6,6 +6,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.web.servlet.MockMvc;
@ -32,15 +33,23 @@ public class UserControllerImpTest {
final var entity = generateMock(User.class);
final var userId = userRepository.save(entity).getId();
mockMvc.perform(get("/api/users/{id}", userId))
.andExpect(status().isOk())
.andExpect(jsonPath("$.id").value(userId))
.andExpect(jsonPath("$.name").value(entity.getName()))
.andExpect(jsonPath("$.email").value(entity.getEmail()))
.andExpect(jsonPath("$.password").value(entity.getPassword()))
.andExpect(jsonPath("$.profiles").isArray());
mockMvc.perform(get("/api/users/{id}", userId)).andExpect(status().isOk()).andExpect(jsonPath("$.id").value(userId))
.andExpect(jsonPath("$.name").value(entity.getName())).andExpect(jsonPath("$.email").value(entity.getEmail()))
.andExpect(jsonPath("$.password").value(entity.getPassword())).andExpect(jsonPath("$.profiles").isArray());
userRepository.deleteById(userId);
}
@Test
void testFindByIdWithNotFoundException() throws Exception {
mockMvc.perform(get("/api/users/{id}", "123")).andExpect(status().isNotFound())
.andExpect(jsonPath("$.message").value("Object not found! Id: 123, Type: UserResponse"))
.andExpect(jsonPath("$.error").value(HttpStatus.NOT_FOUND.getReasonPhrase()))
.andExpect(jsonPath("$.path").value("/api/users/123"))
.andExpect(jsonPath("$.status").value(HttpStatus.NOT_FOUND.value()))
.andExpect(jsonPath("$.timestamp").isNotEmpty());
// testando
}
}