add integration test to find by id user controller

This commit is contained in:
rayankonecny 2025-12-13 13:19:51 +00:00
parent 54f841dc83
commit f106857e17

View file

@ -0,0 +1,46 @@
package br.com.rayankonecny.userserviceapi.controller.impl;
import static br.com.rayankonecny.userserviceapi.creator.CreatorUtils.generateMock;
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.test.context.ActiveProfiles;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import br.com.rayankonecny.userserviceapi.entity.User;
import br.com.rayankonecny.userserviceapi.repository.UserRepository;
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("test")
public class UserControllerImpTest {
@Autowired
private MockMvc mockMvc;
@Autowired
private UserRepository userRepository;
@Test
void testFindByIdWithSucces() throws Exception {
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());
userRepository.deleteById(userId);
}
}