Browse Source

improve and fix JpaBaseEventDaoTest

pull/6009/head
van-vanich 5 years ago
parent
commit
e5f05e7327
  1. 1
      dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
  2. 41
      dao/src/test/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDaoTest.java

1
dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java

@ -28,6 +28,7 @@ import org.junit.runner.RunWith;
"org.thingsboard.server.dao.sql.query.*Test", "org.thingsboard.server.dao.sql.query.*Test",
"org.thingsboard.server.dao.sql.device.*DeviceDaoTest", "org.thingsboard.server.dao.sql.device.*DeviceDaoTest",
"org.thingsboard.server.dao.sql.widget.*JpaWidgetsBundleDaoTest", "org.thingsboard.server.dao.sql.widget.*JpaWidgetsBundleDaoTest",
"org.thingsboard.server.dao.sql.event.*Test",
"org.thingsboard.server.dao.sql.user.*JpaUserCredentialsDaoTest" "org.thingsboard.server.dao.sql.user.*JpaUserCredentialsDaoTest"
}) })
public class JpaDaoTestSuite { public class JpaDaoTestSuite {

41
dao/src/test/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDaoTest.java

@ -18,10 +18,11 @@ package org.thingsboard.server.dao.sql.event;
import com.datastax.oss.driver.api.core.uuid.Uuids; import com.datastax.oss.driver.api.core.uuid.Uuids;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.springtestdbunit.annotation.DatabaseSetup;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.thingsboard.server.common.data.DataConstants;
import org.thingsboard.server.common.data.Event; import org.thingsboard.server.common.data.Event;
import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityId;
@ -31,7 +32,6 @@ import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.TimePageLink; import org.thingsboard.server.common.data.page.TimePageLink;
import org.thingsboard.server.dao.AbstractJpaDaoTest; import org.thingsboard.server.dao.AbstractJpaDaoTest;
import org.thingsboard.server.dao.event.EventDao; import org.thingsboard.server.dao.event.EventDao;
import org.thingsboard.server.dao.service.AbstractServiceTest;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
@ -51,14 +51,21 @@ import static org.thingsboard.server.common.data.DataConstants.STATS;
@Slf4j @Slf4j
public class JpaBaseEventDaoTest extends AbstractJpaDaoTest { public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
public static final long HOUR_MILLISECONDS = (long) 3.6e+6;
@Autowired @Autowired
private EventDao eventDao; private EventDao eventDao;
UUID tenantId = Uuids.timeBased();
@After
public void deleteEvents() {
List<Event> events = eventDao.find(TenantId.fromUUID(tenantId));
for (Event event : events) {
eventDao.removeById(TenantId.fromUUID(tenantId), event.getUuidId());
}
}
@Test @Test
public void testSaveIfNotExists() { public void testSaveIfNotExists() {
UUID eventId = Uuids.timeBased(); UUID eventId = Uuids.timeBased();
UUID tenantId = Uuids.timeBased();
UUID entityId = Uuids.timeBased(); UUID entityId = Uuids.timeBased();
Event event = getEvent(eventId, tenantId, entityId); Event event = getEvent(eventId, tenantId, entityId);
Optional<Event> optEvent1 = eventDao.saveIfNotExists(event); Optional<Event> optEvent1 = eventDao.saveIfNotExists(event);
@ -69,25 +76,20 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
} }
@Test @Test
@DatabaseSetup("classpath:dbunit/event.xml")
public void findEvent() { public void findEvent() {
UUID tenantId = UUID.fromString("be41c7a0-31f5-11e7-9cfd-2786e6aa2046"); UUID entityId = Uuids.timeBased();
UUID entityId = UUID.fromString("be41c7a1-31f5-11e7-9cfd-2786e6aa2046"); Event savedEvent = eventDao.save(TenantId.fromUUID(tenantId), getEvent(entityId, tenantId, entityId));
String eventType = STATS; Event foundEvent = eventDao.findEvent(tenantId, new DeviceId(entityId), DataConstants.STATS, savedEvent.getUid());
String eventUid = "be41c7a3-31f5-11e7-9cfd-2786e6aa2046"; assertNotNull("Event expected to be not null", foundEvent);
Event event = eventDao.findEvent(tenantId, new DeviceId(entityId), eventType, eventUid); assertEquals(savedEvent.getId(), foundEvent.getId());
eventDao.find(AbstractServiceTest.SYSTEM_TENANT_ID).stream().forEach(System.out::println);
assertNotNull("Event expected to be not null", event);
assertEquals("be41c7a2-31f5-11e7-9cfd-2786e6aa2046", event.getId().getId().toString());
} }
@Test @Test
public void findEventsByEntityIdAndPageLink() { public void findEventsByEntityIdAndPageLink() {
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, 20);
TimePageLink pageLink1 = new TimePageLink(30); TimePageLink pageLink1 = new TimePageLink(30);
PageData<Event> events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), pageLink1); PageData<Event> events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), pageLink1);
@ -117,11 +119,10 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
@Test @Test
public void findEventsByEntityIdAndEventTypeAndPageLink() { public void findEventsByEntityIdAndEventTypeAndPageLink() {
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 = createEventsTwoEntitiesTwoTypes(tenantId, entityId1, entityId2, startTime, 20); long endTime = createEventsTwoEntitiesTwoTypes(tenantId, entityId1, entityId2, 20);
TimePageLink pageLink1 = new TimePageLink(30); TimePageLink pageLink1 = new TimePageLink(30);
PageData<Event> events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink1); PageData<Event> events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink1);
@ -141,10 +142,10 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
pageLink4 = pageLink4.nextPageLink(); pageLink4 = pageLink4.nextPageLink();
PageData<Event> events5 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink4); PageData<Event> events5 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink4);
assertEquals(2, events5.getData().size()); assertEquals(1, events5.getData().size());
} }
private long createEventsTwoEntitiesTwoTypes(UUID tenantId, UUID entityId1, UUID entityId2, long startTime, int count) { private long createEventsTwoEntitiesTwoTypes(UUID tenantId, UUID entityId1, UUID entityId2, int count) {
for (int i = 0; i < count / 2; i++) { for (int i = 0; i < count / 2; i++) {
String type = i % 2 == 0 ? STATS : ALARM; String type = i % 2 == 0 ? STATS : ALARM;
UUID eventId1 = Uuids.timeBased(); UUID eventId1 = Uuids.timeBased();
@ -157,7 +158,7 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
return System.currentTimeMillis(); return System.currentTimeMillis();
} }
private long createEventsTwoEntities(UUID tenantId, UUID entityId1, UUID entityId2, long startTime, int count) { private long createEventsTwoEntities(UUID tenantId, UUID entityId1, UUID entityId2, int count) {
for (int i = 0; i < count / 2; i++) { for (int i = 0; i < count / 2; i++) {
UUID eventId1 = Uuids.timeBased(); UUID eventId1 = Uuids.timeBased();
Event event1 = getEvent(eventId1, tenantId, entityId1); Event event1 = getEvent(eventId1, tenantId, entityId1);

Loading…
Cancel
Save