thingsboard-memoizeit

JPA Dao tests fixed

6/26/2017 9:34:50 PM

Details

diff --git a/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java b/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
index cb24b3a..7b880fa 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
@@ -25,7 +25,7 @@ import java.util.Arrays;
 @RunWith(ClasspathSuite.class)
 @ClassnameFilters({
 //        "org.thingsboard.server.dao.sql.alarm.",
-        "org.thingsboard.server.dao.sql.alarm.JpaAlarmDaoTest"
+        "org.thingsboard.server.dao.sql.*Test",
 })
 public class JpaDaoTestSuite {
 
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDaoTest.java
index b0af980..3c414cd 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDaoTest.java
@@ -37,6 +37,7 @@ import java.util.Optional;
 import java.util.UUID;
 
 import static org.junit.Assert.*;
+import static org.thingsboard.server.common.data.DataConstants.ALARM;
 import static org.thingsboard.server.common.data.DataConstants.STATS;
 
 /**
@@ -50,7 +51,6 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
     private EventDao eventDao;
 
     @Test
-    @DatabaseSetup("classpath:dbunit/empty_dataset.xml")
     public void testSaveIfNotExists() {
         UUID eventId = UUIDs.timeBased();
         UUID tenantId = UUIDs.timeBased();
@@ -58,7 +58,7 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
         Event event = getEvent(eventId, tenantId, entityId);
         Optional<Event> optEvent1 = eventDao.saveIfNotExists(event);
         assertTrue("Optional is expected to be non-empty", optEvent1.isPresent());
-        assertEquals(optEvent1.get(), event);
+        assertEquals(event, optEvent1.get());
         Optional<Event> optEvent2 = eventDao.saveIfNotExists(event);
         assertFalse("Optional is expected to be empty", optEvent2.isPresent());
     }
@@ -77,16 +77,12 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
     }
 
     @Test
-    @DatabaseSetup("classpath:dbunit/empty_dataset.xml")
     public void findEventsByEntityIdAndPageLink() {
         UUID tenantId = UUIDs.timeBased();
         UUID entityId1 = UUIDs.timeBased();
         UUID entityId2 = UUIDs.timeBased();
         long startTime = System.currentTimeMillis();
         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);
         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) {
-        // Generate #count events for two entities with timestamps from an hour ago till now
+    @Test
+    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
-        long step = HOUR_MILLISECONDS / count;
-        long timestamp = startTime;
+        TimePageLink pageLink1 = new TimePageLink(30, null, null, true);
+        List<Event> events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink1);
+        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++) {
+            String type = i % 2 == 0 ? STATS : ALARM;
+            UUID eventId1 = UUIDs.timeBased();
+            Event event1 = getEvent(eventId1, tenantId, entityId1, type);
+            eventDao.save(event1);
+            UUID eventId2 = UUIDs.timeBased();
+            Event event2 = getEvent(eventId2, tenantId, entityId2, type);
+            eventDao.save(event2);
+        }
+        return System.currentTimeMillis();
+    }
+
+    private long createEventsTwoEntities(UUID tenantId, UUID entityId1, UUID entityId2, long startTime, int count) {
         for (int i = 0; i < count / 2; i++) {
-            //UUID eventId1 = UUIDs.startOf(timestamp);
             UUID eventId1 = UUIDs.timeBased();
             Event event1 = getEvent(eventId1, tenantId, entityId1);
             eventDao.save(event1);
-            timestamp += step;
-            //UUID eventId2 = UUIDs.startOf(timestamp);
             UUID eventId2 = UUIDs.timeBased();
             Event event2 = getEvent(eventId2, tenantId, entityId2);
             eventDao.save(event2);
-            timestamp += step;
         }
         return System.currentTimeMillis();
     }
 
-    @Test
-    @DatabaseSetup("classpath:dbunit/empty_dataset.xml")
-    public void findEventsByEntityIdAndEventTypeAndPageLink() {
-
+    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) {
@@ -144,7 +174,7 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
         event.setTenantId(new TenantId(tenantId));
         EntityId deviceId = new DeviceId(entityId);
         event.setEntityId(deviceId);
-        event.setUid(entityId.toString());
+        event.setUid(event.getId().getId().toString());
         event.setType(STATS);
         ObjectMapper mapper = new ObjectMapper();
         try {
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java
index 745d672..37407d5 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java
@@ -132,10 +132,10 @@ public class JpaUserDaoTest extends AbstractJpaDaoTest {
         UUID id = UUIDs.timeBased();
         user.setId(new UserId(id));
         user.setTenantId(new TenantId(tenantId));
-        if (customerId == null) {
+        user.setCustomerId(new CustomerId(customerId));
+        if (customerId == NULL_UUID) {
             user.setAuthority(Authority.TENANT_ADMIN);
         } else {
-            user.setCustomerId(new CustomerId(customerId));
             user.setAuthority(Authority.CUSTOMER_USER);
         }
         String idString = id.toString();
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java
index 46fc7ed..1bd4d54 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java
@@ -32,6 +32,7 @@ import java.util.List;
 import java.util.UUID;
 
 import static org.junit.Assert.*;
+import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
 
 /**
  * Created by Valerii Sosliuk on 4/23/2017.
@@ -160,6 +161,7 @@ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest {
             WidgetsBundle widgetsBundle = new WidgetsBundle();
             widgetsBundle.setAlias(prefix + i);
             widgetsBundle.setTitle(prefix + i);
+            widgetsBundle.setTenantId(new TenantId(NULL_UUID));
             widgetsBundle.setId(new WidgetsBundleId(UUIDs.timeBased()));
             widgetsBundleDao.save(widgetsBundle);
         }
diff --git a/dao/src/test/resources/dbunit/user_credentials.xml b/dao/src/test/resources/dbunit/user_credentials.xml
index 76a2138..7b74de0 100644
--- a/dao/src/test/resources/dbunit/user_credentials.xml
+++ b/dao/src/test/resources/dbunit/user_credentials.xml
@@ -15,14 +15,4 @@
         activate_token="ACTIVATE_TOKEN_2"
         reset_token="RESET_TOKEN_2"
     />
-    <!--
-    <user_credentials
-        id=""
-        user_id=""
-        enabled="true"
-        password="password"
-        activate_token=""
-        reset_token=""
-    />
-    -->
 </dataset>
\ No newline at end of file