You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
5.6 KiB
142 lines
5.6 KiB
package org.waterproofingdata.wpdauth.integrationtest;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
import com.google.gson.Gson;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.waterproofingdata.wpdauth.dto.UsersRequestDTO;
|
|
import org.waterproofingdata.wpdauth.exception.CustomException;
|
|
import org.waterproofingdata.wpdauth.model.EduCemadenOrganizations;
|
|
import org.waterproofingdata.wpdauth.model.Roles;
|
|
import org.waterproofingdata.wpdauth.model.Users;
|
|
import org.waterproofingdata.wpdauth.model.UsersEducemadenOrganizations;
|
|
import org.waterproofingdata.wpdauth.model.UsersProviderActivationKey;
|
|
import org.waterproofingdata.wpdauth.repository.EduCemadenOrganizationsRepository;
|
|
import org.waterproofingdata.wpdauth.repository.UsersEducemadenOrganizationsRepository;
|
|
import org.waterproofingdata.wpdauth.repository.UsersProviderActivationKeyRepository;
|
|
import org.waterproofingdata.wpdauth.service.UsersService;
|
|
|
|
@SpringBootTest
|
|
public class UsersServiceIntegrationTest {
|
|
@Autowired
|
|
private UsersService usersService;
|
|
|
|
@Autowired
|
|
private EduCemadenOrganizationsRepository eduCemadenOrganizationsRepository;
|
|
|
|
@Autowired
|
|
private UsersEducemadenOrganizationsRepository usersEducemadenOrganizationsRepository;
|
|
|
|
@Autowired
|
|
private UsersProviderActivationKeyRepository usersProviderActivationKeyRepository;
|
|
|
|
private Users setUpUserTest(String userNamePrefix, Roles role) {
|
|
Users u = new Users();
|
|
String uName = String.format("%s%s", userNamePrefix, UUID.randomUUID().toString());
|
|
u.setUsername(uName);
|
|
u.setNickname(uName);
|
|
u.setPassword(UUID.randomUUID().toString());
|
|
u.setState("SP");
|
|
u.setCity("São Paulo");
|
|
u.setTermsofusage(true);
|
|
u.setRoles(new ArrayList<Roles>(Arrays.asList(role)));
|
|
String uJson = new Gson().toJson(u);
|
|
|
|
UsersRequestDTO urDTO = new UsersRequestDTO();
|
|
urDTO.setUsername(uName);
|
|
urDTO.setNickname(uName);
|
|
urDTO.setPassword(UUID.randomUUID().toString());
|
|
urDTO.setState("SP");
|
|
urDTO.setCity("São Paulo");
|
|
urDTO.setTermsofusage(true);
|
|
urDTO.setRoles(new ArrayList<Roles>(Arrays.asList(role)));
|
|
String urDTOJson = new Gson().toJson(u);
|
|
|
|
return u;
|
|
}
|
|
|
|
@Test
|
|
public void testInvalidLogin() {
|
|
CustomException thrown = assertThrows(
|
|
CustomException.class,
|
|
() -> usersService.login("xpto", "xpto"),
|
|
"Expected usersService.login(xpto, xpto) to throw, but it didn't"
|
|
);
|
|
|
|
assertTrue(thrown.getMessage().contains("The user doesn't exist"));
|
|
assertEquals(HttpStatus.NOT_FOUND, thrown.getHttpStatus());
|
|
}
|
|
|
|
@Test
|
|
public void testAdmUserLogin() {
|
|
String login = usersService.login("admin", "admin");
|
|
assertNotNull(login, "Login token returned from usersService.login() should not be null");
|
|
}
|
|
|
|
@Test
|
|
public void testAdmUserSearch() {
|
|
Users u = usersService.search("admin");
|
|
assertEquals("admin", u.getUsername());
|
|
assertEquals("admin", u.getNickname());
|
|
assertEquals("SP", u.getState());
|
|
assertEquals("São Paulo", u.getCity());
|
|
assertEquals(true, u.getTermsofusage());
|
|
assertEquals(1, u.getActive());
|
|
assertEquals(Roles.ROLE_ADMIN, u.getRoles().get(0));
|
|
}
|
|
|
|
@Test
|
|
public void testAdmUserFindById() {
|
|
Users u = usersService.findById(1);
|
|
assertEquals("admin", u.getUsername());
|
|
assertEquals("admin", u.getNickname());
|
|
assertEquals("SP", u.getState());
|
|
assertEquals("São Paulo", u.getCity());
|
|
assertEquals(true, u.getTermsofusage());
|
|
assertEquals(1, u.getActive());
|
|
assertEquals(Roles.ROLE_ADMIN, u.getRoles().get(0));
|
|
}
|
|
|
|
@Test
|
|
public void testRandomUserSignup() {
|
|
Users u = setUpUserTest("user_", Roles.ROLE_CLIENT);
|
|
String signup = usersService.signup(u);
|
|
assertNotNull(signup, "Signup token returned from usersService.signup(user) should not be null");
|
|
assertEquals(true, usersService.existsByUsername(u.getUsername()));
|
|
assertEquals(true, usersService.existsByNickname(u.getNickname()));
|
|
}
|
|
|
|
// @Test
|
|
// public void testRandomUserInstitutionAndClientRegistration() {
|
|
// List<EduCemadenOrganizations> leco = eduCemadenOrganizationsRepository.findAll();
|
|
// assertTrue(leco.size() > 0, "List<EduCemadenOrganizations> should return rows.");
|
|
// UUID u_s = leco.get(0).getActivationkey();
|
|
// EduCemadenOrganizations eco = eduCemadenOrganizationsRepository.findByActivationkey(u_s);
|
|
// assertNotNull(eco, "EduCemadenOrganizations should be returned.");
|
|
|
|
// Users userInst = setUpUserTest("user_institution_", Roles.ROLE_INSTITUTION);
|
|
// String signup = usersService.signup(userInst);
|
|
// assertNotNull(signup, "Signup token returned from usersService.signup(userInst) should not be null");
|
|
// usersService.activate(userInst.getUsername(), eco.getActivationkey().toString());
|
|
// Users userInstUpdated = usersService.search(userInst.getUsername());
|
|
|
|
// UsersProviderActivationKey userInstUpdatedProviderKey = usersProviderActivationKeyRepository.findByUsersid(userInstUpdated.getId());
|
|
// String keyFromUserInstToUserClient = userInstUpdatedProviderKey.getActivationkey().toString();
|
|
// Users userClient = setUpUserTest("user_client_institution_", Roles.ROLE_CLIENT);
|
|
// String signup2 = usersService.signup(userClient);
|
|
// assertNotNull(signup2, "Signup token returned from usersService.signup(userClient) should not be null");
|
|
// usersService.activate(userClient.getUsername(), keyFromUserInstToUserClient);
|
|
// }
|
|
}
|