Enhance unit tests and use guice for injection

This commit is contained in:
René Pfeuffer
2018-05-29 10:47:15 +02:00
parent 933e610daf
commit 89b0c08f70
9 changed files with 112 additions and 36 deletions

View File

@@ -1,23 +1,46 @@
package sonia.scm.api.rest.resources;
import org.junit.Test;
import org.mapstruct.factory.Mappers;
import sonia.scm.user.User;
import javax.ws.rs.core.UriInfo;
import java.net.URI;
import java.net.URISyntaxException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class User2UserDtoMapperTest {
private final User2UserDtoMapper mapper = Mappers.getMapper(User2UserDtoMapper.class);
private final UriInfo uriInfo = mock(UriInfo.class);
@Test
public void shouldMapLinks() {
public void shouldMapLinks() throws URISyntaxException {
URI link = new URI("link");
when(uriInfo.getAbsolutePath()).thenReturn(link);
User user = new User();
user.setName("abc");
UserDto userDto = User2UserDtoMapper.INSTANCE.userToUserDto(user, mock(UriInfo.class));
assertEquals("abc" , userDto.getName());
assertNotNull("expected map with links", userDto.getLinks());
UserDto userDto = mapper.userToUserDto(user, uriInfo);
assertEquals("expected map with self links", link, userDto.getLinks().get("self").getHref());
}
@Test
public void shouldMapFields() {
User user = new User();
user.setName("abc");
UserDto userDto = mapper.userToUserDto(user, uriInfo);
assertEquals("abc" , userDto.getName());
}
@Test
public void shouldRemovePassword() {
User user = new User();
user.setPassword("password");
UserDto userDto = mapper.userToUserDto(user, uriInfo);
assertEquals(UserResource.DUMMY_PASSWORT , userDto.getPassword());
}
}

View File

@@ -0,0 +1,43 @@
package sonia.scm.api.rest.resources;
import org.apache.shiro.authc.credential.PasswordService;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import sonia.scm.user.User;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
public class UserDto2UserMapperTest {
@Mock
private PasswordService passwordService;
@InjectMocks
private UserDto2UserMapperImpl mapper;
@Test
public void shouldMapFields() {
UserDto dto = new UserDto();
dto.setName("abc");
User user = mapper.userDtoToUser(dto, "original password");
assertEquals("abc" , user.getName());
}
@Test
public void shouldEncodePassword() {
when(passwordService.encryptPassword("unencrypted")).thenReturn("encrypted");
UserDto dto = new UserDto();
dto.setPassword("unencrypted");
User user = mapper.userDtoToUser(dto, "original password");
assertEquals("encrypted" , user.getPassword());
}
@Before
public void init() {
initMocks(this);
}
}