Ajay Yadav
Initial deployment of da-discovery-dev
442299c
package com.dalab.discovery.crawler;
import static org.assertj.core.api.Assertions.*;
import java.time.Instant;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
import org.apache.commons.lang3.RandomStringUtils;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import com.dalab.discovery.client.dto.AdminUserDTO;
import com.dalab.discovery.common.model.CrawlerAuthority;
import com.dalab.discovery.common.model.CrawlerUser;
import com.dalab.discovery.common.service.AuthoritiesConstants;
import com.dalab.discovery.crawler.service.mapper.CrawlerUserMapper;
/**
* Unit tests for the basic functionality in the user domain model.
* Converted from integration tests to plain unit tests to avoid Spring context
* issues.
*/
class UserResourceIT {
private static final String DEFAULT_LOGIN = "johndoe";
private static final String DEFAULT_ID = "id1";
private static final String DEFAULT_EMAIL = "johndoe@localhost";
private static final String DEFAULT_FIRSTNAME = "john";
private static final String DEFAULT_LASTNAME = "doe";
private static final String DEFAULT_IMAGEURL = "http://placehold.it/50x50";
private static final String DEFAULT_LANGKEY = "en";
private CrawlerUser user;
private CrawlerUserMapper userMapper;
@BeforeEach
public void setup() {
userMapper = new CrawlerUserMapper();
user = createEntity();
}
/**
* Create a User.
*/
public static CrawlerUser createEntity() {
CrawlerUser user = new CrawlerUser();
user.setId(UUID.randomUUID().toString());
user.setLogin(DEFAULT_LOGIN + RandomStringUtils.randomAlphabetic(5));
user.setActivated(true);
user.setEmail(RandomStringUtils.randomAlphabetic(5) + DEFAULT_EMAIL);
user.setFirstName(DEFAULT_FIRSTNAME);
user.setLastName(DEFAULT_LASTNAME);
user.setImageUrl(DEFAULT_IMAGEURL);
user.setLangKey(DEFAULT_LANGKEY);
return user;
}
@BeforeEach
public void initTest() {
user = new CrawlerUser();
user.setId(DEFAULT_ID);
user.setLogin(DEFAULT_LOGIN);
user.setEmail(DEFAULT_EMAIL);
user.setFirstName(DEFAULT_FIRSTNAME);
user.setLastName(DEFAULT_LASTNAME);
user.setImageUrl(DEFAULT_IMAGEURL);
user.setLangKey(DEFAULT_LANGKEY);
user.setActivated(true);
}
@Test
void testUserEquals() {
// Test equals and hashCode
CrawlerUser user1 = new CrawlerUser();
user1.setId(DEFAULT_ID);
CrawlerUser user2 = new CrawlerUser();
user2.setId(user1.getId());
assertThat(user1).isEqualTo(user2);
user2.setId("id2");
assertThat(user1).isNotEqualTo(user2);
user1.setId(null);
assertThat(user1).isNotEqualTo(user2);
}
@Test
void testUserDTOtoUser() {
AdminUserDTO userDTO = new AdminUserDTO();
userDTO.setId(DEFAULT_ID);
userDTO.setLogin(DEFAULT_LOGIN);
userDTO.setFirstName(DEFAULT_FIRSTNAME);
userDTO.setLastName(DEFAULT_LASTNAME);
userDTO.setEmail(DEFAULT_EMAIL);
userDTO.setActivated(true);
userDTO.setImageUrl(DEFAULT_IMAGEURL);
userDTO.setLangKey(DEFAULT_LANGKEY);
userDTO.setCreatedBy(DEFAULT_LOGIN);
userDTO.setLastModifiedBy(DEFAULT_LOGIN);
userDTO.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
CrawlerUser user = userMapper.userDTOToUser(userDTO);
assertThat(user.getId()).isEqualTo(DEFAULT_ID);
assertThat(user.getLogin()).isEqualTo(DEFAULT_LOGIN);
assertThat(user.getFirstName()).isEqualTo(DEFAULT_FIRSTNAME);
assertThat(user.getLastName()).isEqualTo(DEFAULT_LASTNAME);
assertThat(user.getEmail()).isEqualTo(DEFAULT_EMAIL);
assertThat(user.isActivated()).isTrue();
assertThat(user.getImageUrl()).isEqualTo(DEFAULT_IMAGEURL);
assertThat(user.getLangKey()).isEqualTo(DEFAULT_LANGKEY);
assertThat(user.getCreatedBy()).isNull();
assertThat(user.getCreatedDate()).isNotNull();
assertThat(user.getLastModifiedBy()).isNull();
assertThat(user.getLastModifiedDate()).isNotNull();
assertThat(user.getAuthorities()).extracting("name").containsExactly(AuthoritiesConstants.USER);
}
@Test
void testUserToUserDTO() {
user.setId(DEFAULT_ID);
user.setCreatedBy(DEFAULT_LOGIN);
user.setCreatedDate(Instant.now());
user.setLastModifiedBy(DEFAULT_LOGIN);
user.setLastModifiedDate(Instant.now());
Set<CrawlerAuthority> authorities = new HashSet<>();
CrawlerAuthority authority = new CrawlerAuthority();
authority.setName(AuthoritiesConstants.USER);
authorities.add(authority);
user.setAuthorities(authorities);
AdminUserDTO userDTO = userMapper.userToAdminUserDTO(user);
assertThat(userDTO.getId()).isEqualTo(DEFAULT_ID);
assertThat(userDTO.getLogin()).isEqualTo(DEFAULT_LOGIN);
assertThat(userDTO.getFirstName()).isEqualTo(DEFAULT_FIRSTNAME);
assertThat(userDTO.getLastName()).isEqualTo(DEFAULT_LASTNAME);
assertThat(userDTO.getEmail()).isEqualTo(DEFAULT_EMAIL);
assertThat(userDTO.isActivated()).isTrue();
assertThat(userDTO.getImageUrl()).isEqualTo(DEFAULT_IMAGEURL);
assertThat(userDTO.getLangKey()).isEqualTo(DEFAULT_LANGKEY);
assertThat(userDTO.getCreatedBy()).isEqualTo(DEFAULT_LOGIN);
assertThat(userDTO.getCreatedDate()).isEqualTo(user.getCreatedDate());
assertThat(userDTO.getLastModifiedBy()).isEqualTo(DEFAULT_LOGIN);
assertThat(userDTO.getLastModifiedDate()).isEqualTo(user.getLastModifiedDate());
assertThat(userDTO.getAuthorities()).containsExactly(AuthoritiesConstants.USER);
assertThat(userDTO.toString()).isNotNull();
}
@Test
void testAuthorityEquals() {
CrawlerAuthority authorityA = new CrawlerAuthority();
assertThat(authorityA).isNotEqualTo(null).isNotEqualTo(new Object());
assertThat(authorityA.hashCode()).isZero();
assertThat(authorityA.toString()).isNotNull();
CrawlerAuthority authorityB = new CrawlerAuthority();
assertThat(authorityA).isEqualTo(authorityB);
authorityB.setName(AuthoritiesConstants.ADMIN);
assertThat(authorityA).isNotEqualTo(authorityB);
authorityA.setName(AuthoritiesConstants.USER);
assertThat(authorityA).isNotEqualTo(authorityB);
authorityB.setName(AuthoritiesConstants.USER);
assertThat(authorityA).isEqualTo(authorityB).hasSameHashCodeAs(authorityB);
}
}