Skip to content

Commit

Permalink
fix: Fix user controller tests
Browse files Browse the repository at this point in the history
  • Loading branch information
SteveGT96 committed Aug 13, 2024
1 parent a88aa16 commit 42380dd
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 89 deletions.
35 changes: 15 additions & 20 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,6 @@
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
Expand Down Expand Up @@ -246,21 +241,21 @@
<plugin>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>integration-test</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<apiDocsUrl>http://localhost:8080/v3/api-docs.yaml</apiDocsUrl>
<outputFileName>${springdoc.outputFileName}</outputFileName>
<outputDir>openapi/</outputDir>
</configuration>
</plugin>
<version>1.4</version>
<executions>
<execution>
<phase>integration-test</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<apiDocsUrl>http://localhost:8080/v3/api-docs.yaml</apiDocsUrl>
<outputFileName>${springdoc.outputFileName}</outputFileName>
<outputDir>openapi/</outputDir>
</configuration>
</plugin>
</plugins>
</build>

Expand Down
81 changes: 12 additions & 69 deletions src/test/java/org/isf/users/rest/UserControllerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,108 +11,51 @@

import java.util.List;

import org.isf.OpenHospitalApiApplication;
import org.isf.menu.manager.UserBrowsingManager;
import org.isf.menu.manager.UserGroupManager;
import org.isf.menu.manager.UserSettingManager;
import org.isf.menu.mapper.UserGroupMapper;
import org.isf.menu.mapper.UserMapper;
import org.isf.menu.mapper.UserSettingMapper;
import org.isf.menu.model.User;
import org.isf.menu.model.UserGroup;
import org.isf.menu.rest.UserController;
import org.isf.permissions.manager.PermissionManager;
import org.isf.permissions.mapper.LitePermissionMapper;
import org.isf.permissions.mapper.PermissionMapper;
import org.isf.permissions.model.Permission;
import org.isf.shared.exceptions.OHResponseEntityExceptionHandler;
import org.isf.shared.mapper.converter.BlobToByteArrayConverter;
import org.isf.shared.mapper.converter.ByteArrayToBlobConverter;
import org.isf.utils.exception.OHServiceException;
import org.isf.vaccine.rest.VaccineController;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.modelmapper.ModelMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.security.test.context.support.WithMockUser;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;

@SpringBootTest(classes = OpenHospitalApiApplication.class)
@AutoConfigureMockMvc
public class UserControllerTest {

private final Logger LOGGER = LoggerFactory.getLogger(UserControllerTest.class);

@Autowired
private MockMvc mvc;

final private ObjectMapper objectMapper = new ObjectMapper()
.registerModule(new ParameterNamesModule())
.registerModule(new Jdk8Module())
.registerModule(new JavaTimeModule());
;
@Autowired
private ObjectMapper objectMapper;

final private UserMapper userMapper = new UserMapper();
@Autowired
private UserMapper userMapper;

final private LitePermissionMapper litePermissionMapper = new LitePermissionMapper();

final private UserGroupMapper userGroupMapper = new UserGroupMapper();

final private UserSettingMapper userSettingMapper = new UserSettingMapper();

@Mock
@MockBean
private UserBrowsingManager userManager;

@Mock
@MockBean
private PermissionManager permissionManager;

@Mock
private UserSettingManager userSettingManager;

@Mock
private UserGroupManager userGroupManager;

private AutoCloseable closeable;

@BeforeEach
public void setup() {
closeable = MockitoAnnotations.openMocks(this);
this.mvc = MockMvcBuilders
.standaloneSetup(
new UserController(permissionManager, litePermissionMapper, userMapper, userGroupMapper, userManager, userSettingManager, userSettingMapper))
.setControllerAdvice(new OHResponseEntityExceptionHandler())
.build();
ModelMapper modelMapper = new ModelMapper();
modelMapper.addConverter(new BlobToByteArrayConverter());
modelMapper.addConverter(new ByteArrayToBlobConverter());
List.of(userMapper, litePermissionMapper, userGroupMapper, userSettingMapper).forEach((item) -> {
ReflectionTestUtils.setField(item, "modelMapper", modelMapper);
});
}

@AfterEach
void closeService() throws Exception {
closeable.close();
}

@Nested
@DisplayName("Update user")
class UpdateUserTests {
Expand Down
3 changes: 3 additions & 0 deletions src/test/resources/application.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
spring.main.allow-bean-definition-overriding=true
### Security token secret (JWT)
jwt.token.secret=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJkb2N0b3IiLCJhdXRoIjoiYWRtaXNzaW9ucy5jcmVhdGUsYWRtaXNzaW9ucy5kZWxldGUsYWRtaXNzaW9ucy5yZWFkLGFkbWlzc2lvbnMudXBkYXRlLGFkbWlzc2lvbnR5cGVzLnJlYWQsYWdldHlwZXMucmVhZCxkYXNoYm9hcmQuYWNjZXNzLGRlbGl2ZXJ5cmVzdWx0dHlwZXMucmVhZCxkZWxpdmVyeXR5cGVzLnJlYWQsZGlzY2hhcmdldHlwZXMucmVhZCxkaXNlYXNlcy5yZWFkLGRpc2Vhc2V0eXBlcy5yZWFkLGV4YW1pbmF0aW9ucy5jcmVhdGUsZXhhbWluYXRpb25zLmRlbGV0ZSxleGFtaW5hdGlvbnMucmVhZCxleGFtaW5hdGlvbnMudXBkYXRlLGV4YW1yb3dzLmNyZWF0ZSxleGFtcm93cy5yZWFkLGV4YW1zLnJlYWQsZXhhbXR5cGVzLnJlYWQsZ3JvdXBwZXJtaXNzaW9uLnJlYWQsaG9zcGl0YWxzLnJlYWQsbGFib3JhdG9yaWVzLmNyZWF0ZSxsYWJvcmF0b3JpZXMuZGVsZXRlLGxhYm9yYXRvcmllcy5yZWFkLGxhYm9yYXRvcmllcy51cGRhdGUsbWFsbnV0cml0aW9ucy5jcmVhdGUsbWFsbnV0cml0aW9ucy5kZWxldGUsbWFsbnV0cml0aW9ucy5yZWFkLG1hbG51dHJpdGlvbnMudXBkYXRlLG1lZGljYWxzLnJlYWQsbWVkaWNhbHN0b2NrbW92ZW1lbnRzLnJlYWQsbWVkaWNhbHN0b2Nrd2FyZC5yZWFkLG1lZGljYWx0eXBlcy5yZWFkLG1lZHN0b2NrbW92ZW1lbnR0eXBlcy5yZWFkLG9wZHMuYWNjZXNzLG9wZHMuY3JlYXRlLG9wZHMucmVhZCxvcGRzLnVwZGF0ZSxvcGVyYXRpb25zLmNyZWF0ZSxvcGVyYXRpb25zLnJlYWQsb3BlcmF0aW9ucy51cGRhdGUsb3BlcmF0aW9udHlwZXMucmVhZCxwYXRpZW50Y29uc2Vuc3VzLmNyZWF0ZSxwYXRpZW50Y29uc2Vuc3VzLnJlYWQscGF0aWVudGNvbnNlbnN1cy51cGRhdGUscGF0aWVudHMuYWNjZXNzLHBhdGllbnRzLmNyZWF0ZSxwYXRpZW50cy5yZWFkLHBhdGllbnRzLnVwZGF0ZSxwYXRpZW50dmFjY2luZXMuY3JlYXRlLHBhdGllbnR2YWNjaW5lcy5kZWxldGUscGF0aWVudHZhY2NpbmVzLnJlYWQscGF0aWVudHZhY2NpbmVzLnVwZGF0ZSxwZXJtaXNzaW9ucy5yZWFkLHByZWduYW50dHJlYXRtZW50dHlwZXMucmVhZCxwcmVnbmFudHRyZWF0bWVudHR5cGVzLnVwZGF0ZSxwcmljZWxpc3RzLnJlYWQscHJpY2Vzb3RoZXJzLnJlYWQscmVwb3J0cy5yZWFkLHNtcy5jcmVhdGUsc21zLmRlbGV0ZSxzbXMucmVhZCxzbXMudXBkYXRlLHN1cHBsaWVycy5yZWFkLHRoZXJhcGllcy5jcmVhdGUsdGhlcmFwaWVzLmRlbGV0ZSx0aGVyYXBpZXMucmVhZCx0aGVyYXBpZXMudXBkYXRlLHVzZXJzLnJlYWQsdXNlcnMudXBkYXRlLHVzZXJzZXR0aW5ncy5jcmVhdGUsdXNlcnNldHRpbmdzLnJlYWQsdXNlcnNldHRpbmdzLnVwZGF0ZSx2YWNjaW5lcy5yZWFkLHZhY2NpbmV0eXBlcy5yZWFkLHZpc2l0cy5jcmVhdGUsdmlzaXRzLmRlbGV0ZSx2aXNpdHMucmVhZCx2aXNpdHMudXBkYXRlLHdhcmRzLnJlYWQiLCJleHAiOjE3MjMxMTQyNDV9.Rdqbu8fabUOYdGCwZJrgA-fbHXHdji5H3ddMZnuool5bNns7RizJOB7wO7BQ1TsxIRbN2X8k8_Ef4Kp54nQMR

0 comments on commit 42380dd

Please sign in to comment.