Merge remote-tracking branch 'upstream/dao-refactoring-vs' into dao-refactoring-vs

This commit is contained in:
Volodymyr Babak 2017-06-27 14:22:11 +03:00
commit e559107704
5 changed files with 56 additions and 34 deletions

View File

@ -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 {

View File

@ -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 {

View File

@ -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();

View File

@ -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);
} }

View File

@ -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>