improve and fix JpaUserDaoTest

This commit is contained in:
van-vanich 2022-02-03 11:35:28 +02:00
parent adb062a562
commit ff1fa2d2ca
2 changed files with 50 additions and 54 deletions

View File

@ -21,15 +21,7 @@ import org.junit.runner.RunWith;
@RunWith(ClasspathSuite.class)
@ClassnameFilters({
"org.thingsboard.server.dao.sql.tenant.*Test",
"org.thingsboard.server.dao.sql.component.*Test",
"org.thingsboard.server.dao.sql.customer.*Test",
"org.thingsboard.server.dao.sql.dashboard.*Test",
"org.thingsboard.server.dao.sql.query.*Test",
"org.thingsboard.server.dao.sql.device.*Test",
"org.thingsboard.server.dao.sql.widget.*Test",
"org.thingsboard.server.dao.sql.event.*Test",
"org.thingsboard.server.dao.sql.user.*JpaUserCredentialsDaoTest"
"org.thingsboard.server.dao.sql.*"
})
public class JpaDaoTestSuite {

View File

@ -16,9 +16,11 @@
package org.thingsboard.server.dao.sql.user;
import com.datastax.oss.driver.api.core.uuid.Uuids;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.springtestdbunit.annotation.DatabaseSetup;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.thingsboard.server.common.data.User;
@ -32,7 +34,6 @@ import org.thingsboard.server.dao.AbstractJpaDaoTest;
import org.thingsboard.server.dao.service.AbstractServiceTest;
import org.thingsboard.server.dao.user.UserDao;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
@ -45,35 +46,54 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
*/
public class JpaUserDaoTest extends AbstractJpaDaoTest {
// add to count user sysadmin@thingsboard.org
final int COUNT_CREATED_USER = 1;
final int COUNT_SYSADMIN_USER = 90;
UUID tenantId;
UUID customerId;
@Autowired
private UserDao userDao;
@Before
public void setUp() {
tenantId = Uuids.timeBased();
customerId = Uuids.timeBased();
create30TenantAdminsAnd60CustomerUsers(tenantId, customerId);
}
@After
public void tearDown() {
delete30TenantAdminsAnd60CustomerUsers(tenantId, customerId);
}
@Test
@DatabaseSetup("classpath:dbunit/user.xml")
public void testFindAll() {
List<User> users = userDao.find(AbstractServiceTest.SYSTEM_TENANT_ID);
assertEquals(users.size(), 5);
assertEquals(users.size(), COUNT_CREATED_USER + COUNT_SYSADMIN_USER);
}
@Test
@DatabaseSetup("classpath:dbunit/user.xml")
public void testFindByEmail() {
User user = userDao.findByEmail(AbstractServiceTest.SYSTEM_TENANT_ID,"sysadm@thingsboard.org");
assertNotNull("User is expected to be not null", user);
assertEquals("9cb58ba0-27c1-11e7-93ae-92361f002671", user.getId().toString());
assertEquals("c97ea14e-27c1-11e7-93ae-92361f002671", user.getTenantId().toString());
assertEquals("cdf9c79e-27c1-11e7-93ae-92361f002671", user.getCustomerId().toString());
assertEquals(Authority.SYS_ADMIN, user.getAuthority());
assertEquals("John", user.getFirstName());
assertEquals("Doe", user.getLastName());
public void testFindByEmail() throws JsonProcessingException {
User user = new User();
user.setId(new UserId(UUID.fromString("cd481534-27cc-11e7-93ae-92361f002671")));
user.setTenantId(TenantId.fromUUID(UUID.fromString("1edcb2c6-27cb-11e7-93ae-92361f002671")));
user.setCustomerId(new CustomerId(UUID.fromString("51477cb4-27cb-11e7-93ae-92361f002671")));
user.setEmail("user@thingsboard.org");
user.setFirstName("Jackson");
user.setLastName("Roberts");
ObjectMapper mapper = new ObjectMapper();
String additionalInfo = "{\"key\":\"value-100\"}";
JsonNode jsonNode = mapper.readTree(additionalInfo);
user.setAdditionalInfo(jsonNode);
userDao.save(AbstractServiceTest.SYSTEM_TENANT_ID, user);
assertEquals(1 + COUNT_SYSADMIN_USER + COUNT_CREATED_USER, userDao.find(AbstractServiceTest.SYSTEM_TENANT_ID).size());
User savedUser = userDao.findByEmail(AbstractServiceTest.SYSTEM_TENANT_ID, "user@thingsboard.org");
assertNotNull(savedUser);
assertEquals(additionalInfo, savedUser.getAdditionalInfo().toString());
}
@Test
@DatabaseSetup("classpath:dbunit/empty_dataset.xml")
public void testFindTenantAdmins() {
UUID tenantId = Uuids.timeBased();
UUID customerId = Uuids.timeBased();
create30Adminsand60Users(tenantId, customerId);
PageLink pageLink = new PageLink(20);
PageData<User> tenantAdmins1 = userDao.findTenantAdmins(tenantId, pageLink);
assertEquals(20, tenantAdmins1.getData().size());
@ -88,11 +108,7 @@ public class JpaUserDaoTest extends AbstractJpaDaoTest {
}
@Test
@DatabaseSetup("classpath:dbunit/empty_dataset.xml")
public void testFindCustomerUsers() {
UUID tenantId = Uuids.timeBased();
UUID customerId = Uuids.timeBased();
create30Adminsand60Users(tenantId, customerId);
PageLink pageLink = new PageLink(40);
PageData<User> customerUsers1 = userDao.findCustomerUsers(tenantId, customerId, pageLink);
assertEquals(40, customerUsers1.getData().size());
@ -104,30 +120,10 @@ public class JpaUserDaoTest extends AbstractJpaDaoTest {
PageData<User> customerUsers3 = userDao.findCustomerUsers(tenantId, customerId,
pageLink);
assertEquals(0, customerUsers3.getData().size());
delete30TenantAdminsAnd60CustomerUsers(tenantId, customerId);
}
@Test
@DatabaseSetup("classpath:dbunit/user.xml")
public void testSave() throws IOException {
User user = new User();
user.setId(new UserId(UUID.fromString("cd481534-27cc-11e7-93ae-92361f002671")));
user.setTenantId(TenantId.fromUUID(UUID.fromString("1edcb2c6-27cb-11e7-93ae-92361f002671")));
user.setCustomerId(new CustomerId(UUID.fromString("51477cb4-27cb-11e7-93ae-92361f002671")));
user.setEmail("user@thingsboard.org");
user.setFirstName("Jackson");
user.setLastName("Roberts");
ObjectMapper mapper = new ObjectMapper();
String additionalInfo = "{\"key\":\"value-100\"}";
JsonNode jsonNode = mapper.readTree(additionalInfo);
user.setAdditionalInfo(jsonNode);
userDao.save(AbstractServiceTest.SYSTEM_TENANT_ID,user);
assertEquals(6, userDao.find(AbstractServiceTest.SYSTEM_TENANT_ID).size());
User savedUser = userDao.findByEmail(AbstractServiceTest.SYSTEM_TENANT_ID,"user@thingsboard.org");
assertNotNull(savedUser);
assertEquals(additionalInfo, savedUser.getAdditionalInfo().toString());
}
private void create30Adminsand60Users(UUID tenantId, UUID customerId) {
private void create30TenantAdminsAnd60CustomerUsers(UUID tenantId, UUID customerId) {
// Create 30 tenant admins and 60 customer users
for (int i = 0; i < 30; i++) {
saveUser(tenantId, NULL_UUID);
@ -150,6 +146,14 @@ public class JpaUserDaoTest extends AbstractJpaDaoTest {
String idString = id.toString();
String email = idString.substring(0, idString.indexOf('-')) + "@thingsboard.org";
user.setEmail(email);
userDao.save(AbstractServiceTest.SYSTEM_TENANT_ID,user);
userDao.save(AbstractServiceTest.SYSTEM_TENANT_ID, user);
}
private void delete30TenantAdminsAnd60CustomerUsers(UUID tenantId, UUID customerId) {
List<User> data = userDao.findCustomerUsers(tenantId, customerId, new PageLink(60)).getData();
data.addAll(userDao.findTenantAdmins(tenantId, new PageLink(30)).getData());
for (User user : data) {
userDao.removeById(user.getTenantId(), user.getUuidId());
}
}
}