Merge remote-tracking branch 'upstream/dao-refactoring-vs' into dao-refactoring-vs
This commit is contained in:
commit
e559107704
@ -25,7 +25,7 @@ import java.util.Arrays;
|
|||||||
@RunWith(ClasspathSuite.class)
|
@RunWith(ClasspathSuite.class)
|
||||||
@ClassnameFilters({
|
@ClassnameFilters({
|
||||||
// "org.thingsboard.server.dao.sql.alarm.",
|
// "org.thingsboard.server.dao.sql.alarm.",
|
||||||
"org.thingsboard.server.dao.sql.alarm.JpaAlarmDaoTest"
|
"org.thingsboard.server.dao.sql.*Test",
|
||||||
})
|
})
|
||||||
public class JpaDaoTestSuite {
|
public class JpaDaoTestSuite {
|
||||||
|
|
||||||
|
|||||||
@ -37,6 +37,7 @@ import java.util.Optional;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
import static org.thingsboard.server.common.data.DataConstants.ALARM;
|
||||||
import static org.thingsboard.server.common.data.DataConstants.STATS;
|
import static org.thingsboard.server.common.data.DataConstants.STATS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -50,7 +51,6 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
|
|||||||
private EventDao eventDao;
|
private EventDao eventDao;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DatabaseSetup("classpath:dbunit/empty_dataset.xml")
|
|
||||||
public void testSaveIfNotExists() {
|
public void testSaveIfNotExists() {
|
||||||
UUID eventId = UUIDs.timeBased();
|
UUID eventId = UUIDs.timeBased();
|
||||||
UUID tenantId = UUIDs.timeBased();
|
UUID tenantId = UUIDs.timeBased();
|
||||||
@ -58,7 +58,7 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
|
|||||||
Event event = getEvent(eventId, tenantId, entityId);
|
Event event = getEvent(eventId, tenantId, entityId);
|
||||||
Optional<Event> optEvent1 = eventDao.saveIfNotExists(event);
|
Optional<Event> optEvent1 = eventDao.saveIfNotExists(event);
|
||||||
assertTrue("Optional is expected to be non-empty", optEvent1.isPresent());
|
assertTrue("Optional is expected to be non-empty", optEvent1.isPresent());
|
||||||
assertEquals(optEvent1.get(), event);
|
assertEquals(event, optEvent1.get());
|
||||||
Optional<Event> optEvent2 = eventDao.saveIfNotExists(event);
|
Optional<Event> optEvent2 = eventDao.saveIfNotExists(event);
|
||||||
assertFalse("Optional is expected to be empty", optEvent2.isPresent());
|
assertFalse("Optional is expected to be empty", optEvent2.isPresent());
|
||||||
}
|
}
|
||||||
@ -77,16 +77,12 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DatabaseSetup("classpath:dbunit/empty_dataset.xml")
|
|
||||||
public void findEventsByEntityIdAndPageLink() {
|
public void findEventsByEntityIdAndPageLink() {
|
||||||
UUID tenantId = UUIDs.timeBased();
|
UUID tenantId = UUIDs.timeBased();
|
||||||
UUID entityId1 = UUIDs.timeBased();
|
UUID entityId1 = UUIDs.timeBased();
|
||||||
UUID entityId2 = UUIDs.timeBased();
|
UUID entityId2 = UUIDs.timeBased();
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
long endTime = createEventsTwoEntities(tenantId, entityId1, entityId2, startTime, 20);
|
long endTime = createEventsTwoEntities(tenantId, entityId1, entityId2, startTime, 20);
|
||||||
List<Event> allEvents = eventDao.find();
|
|
||||||
|
|
||||||
assertEquals(20, allEvents.size());
|
|
||||||
|
|
||||||
TimePageLink pageLink1 = new TimePageLink(30, null, null, true);
|
TimePageLink pageLink1 = new TimePageLink(30, null, null, true);
|
||||||
List<Event> events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), pageLink1);
|
List<Event> events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), pageLink1);
|
||||||
@ -111,31 +107,65 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private long createEventsTwoEntities(UUID tenantId, UUID entityId1, UUID entityId2, long startTime, int count) {
|
@Test
|
||||||
// Generate #count events for two entities with timestamps from an hour ago till now
|
public void findEventsByEntityIdAndEventTypeAndPageLink() {
|
||||||
|
UUID tenantId = UUIDs.timeBased();
|
||||||
|
UUID entityId1 = UUIDs.timeBased();
|
||||||
|
UUID entityId2 = UUIDs.timeBased();
|
||||||
|
long startTime = System.currentTimeMillis();
|
||||||
|
long endTime = createEventsTwoEntitiesTwoTypes(tenantId, entityId1, entityId2, startTime, 20);
|
||||||
|
|
||||||
// Distribute events uniformly
|
TimePageLink pageLink1 = new TimePageLink(30, null, null, true);
|
||||||
long step = HOUR_MILLISECONDS / count;
|
List<Event> events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink1);
|
||||||
long timestamp = startTime;
|
assertEquals(5, events1.size());
|
||||||
|
|
||||||
|
TimePageLink pageLink2 = new TimePageLink(30, startTime, null, true);
|
||||||
|
List<Event> events2 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink2);
|
||||||
|
assertEquals(5, events2.size());
|
||||||
|
|
||||||
|
TimePageLink pageLink3 = new TimePageLink(30, startTime, endTime, true);
|
||||||
|
List<Event> events3 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink3);
|
||||||
|
assertEquals(5, events3.size());
|
||||||
|
|
||||||
|
TimePageLink pageLink4 = new TimePageLink(4, startTime, endTime, true);
|
||||||
|
List<Event> events4 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink4);
|
||||||
|
assertEquals(4, events4.size());
|
||||||
|
|
||||||
|
UUID idOffset = events3.get(2).getId().getId();
|
||||||
|
TimePageLink pageLink5 = new TimePageLink(10, startTime, endTime, true, idOffset);
|
||||||
|
List<Event> events5 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink5);
|
||||||
|
assertEquals(2, events5.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
private long createEventsTwoEntitiesTwoTypes(UUID tenantId, UUID entityId1, UUID entityId2, long startTime, int count) {
|
||||||
for (int i = 0; i < count / 2; i++) {
|
for (int i = 0; i < count / 2; i++) {
|
||||||
//UUID eventId1 = UUIDs.startOf(timestamp);
|
String type = i % 2 == 0 ? STATS : ALARM;
|
||||||
UUID eventId1 = UUIDs.timeBased();
|
UUID eventId1 = UUIDs.timeBased();
|
||||||
Event event1 = getEvent(eventId1, tenantId, entityId1);
|
Event event1 = getEvent(eventId1, tenantId, entityId1, type);
|
||||||
eventDao.save(event1);
|
eventDao.save(event1);
|
||||||
timestamp += step;
|
|
||||||
//UUID eventId2 = UUIDs.startOf(timestamp);
|
|
||||||
UUID eventId2 = UUIDs.timeBased();
|
UUID eventId2 = UUIDs.timeBased();
|
||||||
Event event2 = getEvent(eventId2, tenantId, entityId2);
|
Event event2 = getEvent(eventId2, tenantId, entityId2, type);
|
||||||
eventDao.save(event2);
|
eventDao.save(event2);
|
||||||
timestamp += step;
|
|
||||||
}
|
}
|
||||||
return System.currentTimeMillis();
|
return System.currentTimeMillis();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
private long createEventsTwoEntities(UUID tenantId, UUID entityId1, UUID entityId2, long startTime, int count) {
|
||||||
@DatabaseSetup("classpath:dbunit/empty_dataset.xml")
|
for (int i = 0; i < count / 2; i++) {
|
||||||
public void findEventsByEntityIdAndEventTypeAndPageLink() {
|
UUID eventId1 = UUIDs.timeBased();
|
||||||
|
Event event1 = getEvent(eventId1, tenantId, entityId1);
|
||||||
|
eventDao.save(event1);
|
||||||
|
UUID eventId2 = UUIDs.timeBased();
|
||||||
|
Event event2 = getEvent(eventId2, tenantId, entityId2);
|
||||||
|
eventDao.save(event2);
|
||||||
|
}
|
||||||
|
return System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Event getEvent(UUID eventId, UUID tenantId, UUID entityId, String type) {
|
||||||
|
Event event = getEvent(eventId, tenantId, entityId);
|
||||||
|
event.setType(type);
|
||||||
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Event getEvent(UUID eventId, UUID tenantId, UUID entityId) {
|
private Event getEvent(UUID eventId, UUID tenantId, UUID entityId) {
|
||||||
@ -144,7 +174,7 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
|
|||||||
event.setTenantId(new TenantId(tenantId));
|
event.setTenantId(new TenantId(tenantId));
|
||||||
EntityId deviceId = new DeviceId(entityId);
|
EntityId deviceId = new DeviceId(entityId);
|
||||||
event.setEntityId(deviceId);
|
event.setEntityId(deviceId);
|
||||||
event.setUid(entityId.toString());
|
event.setUid(event.getId().getId().toString());
|
||||||
event.setType(STATS);
|
event.setType(STATS);
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
try {
|
try {
|
||||||
|
|||||||
@ -132,10 +132,10 @@ public class JpaUserDaoTest extends AbstractJpaDaoTest {
|
|||||||
UUID id = UUIDs.timeBased();
|
UUID id = UUIDs.timeBased();
|
||||||
user.setId(new UserId(id));
|
user.setId(new UserId(id));
|
||||||
user.setTenantId(new TenantId(tenantId));
|
user.setTenantId(new TenantId(tenantId));
|
||||||
if (customerId == null) {
|
user.setCustomerId(new CustomerId(customerId));
|
||||||
|
if (customerId == NULL_UUID) {
|
||||||
user.setAuthority(Authority.TENANT_ADMIN);
|
user.setAuthority(Authority.TENANT_ADMIN);
|
||||||
} else {
|
} else {
|
||||||
user.setCustomerId(new CustomerId(customerId));
|
|
||||||
user.setAuthority(Authority.CUSTOMER_USER);
|
user.setAuthority(Authority.CUSTOMER_USER);
|
||||||
}
|
}
|
||||||
String idString = id.toString();
|
String idString = id.toString();
|
||||||
|
|||||||
@ -32,6 +32,7 @@ import java.util.List;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Valerii Sosliuk on 4/23/2017.
|
* Created by Valerii Sosliuk on 4/23/2017.
|
||||||
@ -160,6 +161,7 @@ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest {
|
|||||||
WidgetsBundle widgetsBundle = new WidgetsBundle();
|
WidgetsBundle widgetsBundle = new WidgetsBundle();
|
||||||
widgetsBundle.setAlias(prefix + i);
|
widgetsBundle.setAlias(prefix + i);
|
||||||
widgetsBundle.setTitle(prefix + i);
|
widgetsBundle.setTitle(prefix + i);
|
||||||
|
widgetsBundle.setTenantId(new TenantId(NULL_UUID));
|
||||||
widgetsBundle.setId(new WidgetsBundleId(UUIDs.timeBased()));
|
widgetsBundle.setId(new WidgetsBundleId(UUIDs.timeBased()));
|
||||||
widgetsBundleDao.save(widgetsBundle);
|
widgetsBundleDao.save(widgetsBundle);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,14 +15,4 @@
|
|||||||
activate_token="ACTIVATE_TOKEN_2"
|
activate_token="ACTIVATE_TOKEN_2"
|
||||||
reset_token="RESET_TOKEN_2"
|
reset_token="RESET_TOKEN_2"
|
||||||
/>
|
/>
|
||||||
<!--
|
|
||||||
<user_credentials
|
|
||||||
id=""
|
|
||||||
user_id=""
|
|
||||||
enabled="true"
|
|
||||||
password="password"
|
|
||||||
activate_token=""
|
|
||||||
reset_token=""
|
|
||||||
/>
|
|
||||||
-->
|
|
||||||
</dataset>
|
</dataset>
|
||||||
Loading…
x
Reference in New Issue
Block a user