/
developer.bami
/
DFM
Обзор
Документация
Войти
/
developer.bami
/
DFM
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
v1/src/test/java/com/bami/dfm/security/DomainUserDetailsServiceIT.java
118 строк
5 KB
Michael
Initial version of dfm generated by generator-jhipster@8.0.0-beta.1
28 янв 2024, 15:02
28 янв 2024, 15:02
a03b62a
Код
Авторство
О чём код?
package com.bami.dfm.security; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import com.bami.dfm.IntegrationTest; import com.bami.dfm.config.Constants; import com.bami.dfm.domain.User; import com.bami.dfm.repository.UserRepository; import java.util.Locale; import org.apache.commons.lang3.RandomStringUtils; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.security.core.userdetails.ReactiveUserDetailsService; import org.springframework.security.core.userdetails.UserDetails; /** * Integrations tests for {@link DomainUserDetailsService}. */ @IntegrationTest class DomainUserDetailsServiceIT { private static final String USER_ONE_LOGIN = "test-user-one"; private static final String USER_ONE_EMAIL = "test-user-one@localhost"; private static final String USER_TWO_LOGIN = "test-user-two"; private static final String USER_TWO_EMAIL = "test-user-two@localhost"; private static final String USER_THREE_LOGIN = "test-user-three"; private static final String USER_THREE_EMAIL = "test-user-three@localhost"; @Autowired private UserRepository userRepository; @Autowired @Qualifier("userDetailsService") private ReactiveUserDetailsService domainUserDetailsService; @BeforeEach public void init() { userRepository.deleteAllUserAuthorities().block(); userRepository.deleteAll().block(); User userOne = new User(); userOne.setLogin(USER_ONE_LOGIN); userOne.setPassword(RandomStringUtils.randomAlphanumeric(60)); userOne.setActivated(true); userOne.setEmail(USER_ONE_EMAIL); userOne.setFirstName("userOne"); userOne.setLastName("doe"); userOne.setLangKey("en"); userOne.setCreatedBy(Constants.SYSTEM); userRepository.save(userOne).block(); User userTwo = new User(); userTwo.setLogin(USER_TWO_LOGIN); userTwo.setPassword(RandomStringUtils.randomAlphanumeric(60)); userTwo.setActivated(true); userTwo.setEmail(USER_TWO_EMAIL); userTwo.setFirstName("userTwo"); userTwo.setLastName("doe"); userTwo.setLangKey("en"); userTwo.setCreatedBy(Constants.SYSTEM); userRepository.save(userTwo).block(); User userThree = new User(); userThree.setLogin(USER_THREE_LOGIN); userThree.setPassword(RandomStringUtils.randomAlphanumeric(60)); userThree.setActivated(false); userThree.setEmail(USER_THREE_EMAIL); userThree.setFirstName("userThree"); userThree.setLastName("doe"); userThree.setLangKey("en"); userThree.setCreatedBy(Constants.SYSTEM); userRepository.save(userThree).block(); } @Test void assertThatUserCanBeFoundByLogin() { UserDetails userDetails = domainUserDetailsService.findByUsername(USER_ONE_LOGIN).block(); assertThat(userDetails).isNotNull(); assertThat(userDetails.getUsername()).isEqualTo(USER_ONE_LOGIN); } @Test void assertThatUserCanBeFoundByLoginIgnoreCase() { UserDetails userDetails = domainUserDetailsService.findByUsername(USER_ONE_LOGIN.toUpperCase(Locale.ENGLISH)).block(); assertThat(userDetails).isNotNull(); assertThat(userDetails.getUsername()).isEqualTo(USER_ONE_LOGIN); } @Test void assertThatUserCanBeFoundByEmail() { UserDetails userDetails = domainUserDetailsService.findByUsername(USER_TWO_EMAIL).block(); assertThat(userDetails).isNotNull(); assertThat(userDetails.getUsername()).isEqualTo(USER_TWO_LOGIN); } @Test void assertThatUserCanBeFoundByEmailIgnoreCase() { UserDetails userDetails = domainUserDetailsService.findByUsername(USER_TWO_EMAIL.toUpperCase(Locale.ENGLISH)).block(); assertThat(userDetails).isNotNull(); assertThat(userDetails.getUsername()).isEqualTo(USER_TWO_LOGIN); } @Test void assertThatEmailIsPrioritizedOverLogin() { UserDetails userDetails = domainUserDetailsService.findByUsername(USER_ONE_EMAIL).block(); assertThat(userDetails).isNotNull(); assertThat(userDetails.getUsername()).isEqualTo(USER_ONE_LOGIN); } @Test void assertThatUserNotActivatedExceptionIsThrownForNotActivatedUsers() { assertThatExceptionOfType(UserNotActivatedException.class) .isThrownBy(() -> domainUserDetailsService.findByUsername(USER_THREE_LOGIN).block()); } }