Commit f6e7668ebaf0831796cb43466a5ed8cea0b2b549

Authored by mp-loki
1 parent 1983235b

JPA Dao tests fixed

@@ -25,7 +25,7 @@ import java.util.Arrays; @@ -25,7 +25,7 @@ import java.util.Arrays;
25 @RunWith(ClasspathSuite.class) 25 @RunWith(ClasspathSuite.class)
26 @ClassnameFilters({ 26 @ClassnameFilters({
27 // "org.thingsboard.server.dao.sql.alarm.", 27 // "org.thingsboard.server.dao.sql.alarm.",
28 - "org.thingsboard.server.dao.sql.alarm.JpaAlarmDaoTest" 28 + "org.thingsboard.server.dao.sql.*Test",
29 }) 29 })
30 public class JpaDaoTestSuite { 30 public class JpaDaoTestSuite {
31 31
@@ -37,6 +37,7 @@ import java.util.Optional; @@ -37,6 +37,7 @@ import java.util.Optional;
37 import java.util.UUID; 37 import java.util.UUID;
38 38
39 import static org.junit.Assert.*; 39 import static org.junit.Assert.*;
  40 +import static org.thingsboard.server.common.data.DataConstants.ALARM;
40 import static org.thingsboard.server.common.data.DataConstants.STATS; 41 import static org.thingsboard.server.common.data.DataConstants.STATS;
41 42
42 /** 43 /**
@@ -50,7 +51,6 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest { @@ -50,7 +51,6 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
50 private EventDao eventDao; 51 private EventDao eventDao;
51 52
52 @Test 53 @Test
53 - @DatabaseSetup("classpath:dbunit/empty_dataset.xml")  
54 public void testSaveIfNotExists() { 54 public void testSaveIfNotExists() {
55 UUID eventId = UUIDs.timeBased(); 55 UUID eventId = UUIDs.timeBased();
56 UUID tenantId = UUIDs.timeBased(); 56 UUID tenantId = UUIDs.timeBased();
@@ -58,7 +58,7 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest { @@ -58,7 +58,7 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
58 Event event = getEvent(eventId, tenantId, entityId); 58 Event event = getEvent(eventId, tenantId, entityId);
59 Optional<Event> optEvent1 = eventDao.saveIfNotExists(event); 59 Optional<Event> optEvent1 = eventDao.saveIfNotExists(event);
60 assertTrue("Optional is expected to be non-empty", optEvent1.isPresent()); 60 assertTrue("Optional is expected to be non-empty", optEvent1.isPresent());
61 - assertEquals(optEvent1.get(), event); 61 + assertEquals(event, optEvent1.get());
62 Optional<Event> optEvent2 = eventDao.saveIfNotExists(event); 62 Optional<Event> optEvent2 = eventDao.saveIfNotExists(event);
63 assertFalse("Optional is expected to be empty", optEvent2.isPresent()); 63 assertFalse("Optional is expected to be empty", optEvent2.isPresent());
64 } 64 }
@@ -77,16 +77,12 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest { @@ -77,16 +77,12 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
77 } 77 }
78 78
79 @Test 79 @Test
80 - @DatabaseSetup("classpath:dbunit/empty_dataset.xml")  
81 public void findEventsByEntityIdAndPageLink() { 80 public void findEventsByEntityIdAndPageLink() {
82 UUID tenantId = UUIDs.timeBased(); 81 UUID tenantId = UUIDs.timeBased();
83 UUID entityId1 = UUIDs.timeBased(); 82 UUID entityId1 = UUIDs.timeBased();
84 UUID entityId2 = UUIDs.timeBased(); 83 UUID entityId2 = UUIDs.timeBased();
85 long startTime = System.currentTimeMillis(); 84 long startTime = System.currentTimeMillis();
86 long endTime = createEventsTwoEntities(tenantId, entityId1, entityId2, startTime, 20); 85 long endTime = createEventsTwoEntities(tenantId, entityId1, entityId2, startTime, 20);
87 - List<Event> allEvents = eventDao.find();  
88 -  
89 - assertEquals(20, allEvents.size());  
90 86
91 TimePageLink pageLink1 = new TimePageLink(30, null, null, true); 87 TimePageLink pageLink1 = new TimePageLink(30, null, null, true);
92 List<Event> events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), pageLink1); 88 List<Event> events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), pageLink1);
@@ -111,31 +107,65 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest { @@ -111,31 +107,65 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
111 107
112 } 108 }
113 109
114 - private long createEventsTwoEntities(UUID tenantId, UUID entityId1, UUID entityId2, long startTime, int count) {  
115 - // Generate #count events for two entities with timestamps from an hour ago till now 110 + @Test
  111 + public void findEventsByEntityIdAndEventTypeAndPageLink() {
  112 + UUID tenantId = UUIDs.timeBased();
  113 + UUID entityId1 = UUIDs.timeBased();
  114 + UUID entityId2 = UUIDs.timeBased();
  115 + long startTime = System.currentTimeMillis();
  116 + long endTime = createEventsTwoEntitiesTwoTypes(tenantId, entityId1, entityId2, startTime, 20);
116 117
117 - // Distribute events uniformly  
118 - long step = HOUR_MILLISECONDS / count;  
119 - long timestamp = startTime; 118 + TimePageLink pageLink1 = new TimePageLink(30, null, null, true);
  119 + List<Event> events1 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink1);
  120 + assertEquals(5, events1.size());
  121 +
  122 + TimePageLink pageLink2 = new TimePageLink(30, startTime, null, true);
  123 + List<Event> events2 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink2);
  124 + assertEquals(5, events2.size());
  125 +
  126 + TimePageLink pageLink3 = new TimePageLink(30, startTime, endTime, true);
  127 + List<Event> events3 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink3);
  128 + assertEquals(5, events3.size());
  129 +
  130 + TimePageLink pageLink4 = new TimePageLink(4, startTime, endTime, true);
  131 + List<Event> events4 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink4);
  132 + assertEquals(4, events4.size());
  133 +
  134 + UUID idOffset = events3.get(2).getId().getId();
  135 + TimePageLink pageLink5 = new TimePageLink(10, startTime, endTime, true, idOffset);
  136 + List<Event> events5 = eventDao.findEvents(tenantId, new DeviceId(entityId1), ALARM, pageLink5);
  137 + assertEquals(2, events5.size());
  138 + }
  139 +
  140 + private long createEventsTwoEntitiesTwoTypes(UUID tenantId, UUID entityId1, UUID entityId2, long startTime, int count) {
  141 + for (int i = 0; i < count / 2; i++) {
  142 + String type = i % 2 == 0 ? STATS : ALARM;
  143 + UUID eventId1 = UUIDs.timeBased();
  144 + Event event1 = getEvent(eventId1, tenantId, entityId1, type);
  145 + eventDao.save(event1);
  146 + UUID eventId2 = UUIDs.timeBased();
  147 + Event event2 = getEvent(eventId2, tenantId, entityId2, type);
  148 + eventDao.save(event2);
  149 + }
  150 + return System.currentTimeMillis();
  151 + }
  152 +
  153 + private long createEventsTwoEntities(UUID tenantId, UUID entityId1, UUID entityId2, long startTime, int count) {
120 for (int i = 0; i < count / 2; i++) { 154 for (int i = 0; i < count / 2; i++) {
121 - //UUID eventId1 = UUIDs.startOf(timestamp);  
122 UUID eventId1 = UUIDs.timeBased(); 155 UUID eventId1 = UUIDs.timeBased();
123 Event event1 = getEvent(eventId1, tenantId, entityId1); 156 Event event1 = getEvent(eventId1, tenantId, entityId1);
124 eventDao.save(event1); 157 eventDao.save(event1);
125 - timestamp += step;  
126 - //UUID eventId2 = UUIDs.startOf(timestamp);  
127 UUID eventId2 = UUIDs.timeBased(); 158 UUID eventId2 = UUIDs.timeBased();
128 Event event2 = getEvent(eventId2, tenantId, entityId2); 159 Event event2 = getEvent(eventId2, tenantId, entityId2);
129 eventDao.save(event2); 160 eventDao.save(event2);
130 - timestamp += step;  
131 } 161 }
132 return System.currentTimeMillis(); 162 return System.currentTimeMillis();
133 } 163 }
134 164
135 - @Test  
136 - @DatabaseSetup("classpath:dbunit/empty_dataset.xml")  
137 - public void findEventsByEntityIdAndEventTypeAndPageLink() {  
138 - 165 + private Event getEvent(UUID eventId, UUID tenantId, UUID entityId, String type) {
  166 + Event event = getEvent(eventId, tenantId, entityId);
  167 + event.setType(type);
  168 + return event;
139 } 169 }
140 170
141 private Event getEvent(UUID eventId, UUID tenantId, UUID entityId) { 171 private Event getEvent(UUID eventId, UUID tenantId, UUID entityId) {
@@ -144,7 +174,7 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest { @@ -144,7 +174,7 @@ public class JpaBaseEventDaoTest extends AbstractJpaDaoTest {
144 event.setTenantId(new TenantId(tenantId)); 174 event.setTenantId(new TenantId(tenantId));
145 EntityId deviceId = new DeviceId(entityId); 175 EntityId deviceId = new DeviceId(entityId);
146 event.setEntityId(deviceId); 176 event.setEntityId(deviceId);
147 - event.setUid(entityId.toString()); 177 + event.setUid(event.getId().getId().toString());
148 event.setType(STATS); 178 event.setType(STATS);
149 ObjectMapper mapper = new ObjectMapper(); 179 ObjectMapper mapper = new ObjectMapper();
150 try { 180 try {
@@ -132,10 +132,10 @@ public class JpaUserDaoTest extends AbstractJpaDaoTest { @@ -132,10 +132,10 @@ public class JpaUserDaoTest extends AbstractJpaDaoTest {
132 UUID id = UUIDs.timeBased(); 132 UUID id = UUIDs.timeBased();
133 user.setId(new UserId(id)); 133 user.setId(new UserId(id));
134 user.setTenantId(new TenantId(tenantId)); 134 user.setTenantId(new TenantId(tenantId));
135 - if (customerId == null) { 135 + user.setCustomerId(new CustomerId(customerId));
  136 + if (customerId == NULL_UUID) {
136 user.setAuthority(Authority.TENANT_ADMIN); 137 user.setAuthority(Authority.TENANT_ADMIN);
137 } else { 138 } else {
138 - user.setCustomerId(new CustomerId(customerId));  
139 user.setAuthority(Authority.CUSTOMER_USER); 139 user.setAuthority(Authority.CUSTOMER_USER);
140 } 140 }
141 String idString = id.toString(); 141 String idString = id.toString();
@@ -32,6 +32,7 @@ import java.util.List; @@ -32,6 +32,7 @@ import java.util.List;
32 import java.util.UUID; 32 import java.util.UUID;
33 33
34 import static org.junit.Assert.*; 34 import static org.junit.Assert.*;
  35 +import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
35 36
36 /** 37 /**
37 * Created by Valerii Sosliuk on 4/23/2017. 38 * Created by Valerii Sosliuk on 4/23/2017.
@@ -160,6 +161,7 @@ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest { @@ -160,6 +161,7 @@ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest {
160 WidgetsBundle widgetsBundle = new WidgetsBundle(); 161 WidgetsBundle widgetsBundle = new WidgetsBundle();
161 widgetsBundle.setAlias(prefix + i); 162 widgetsBundle.setAlias(prefix + i);
162 widgetsBundle.setTitle(prefix + i); 163 widgetsBundle.setTitle(prefix + i);
  164 + widgetsBundle.setTenantId(new TenantId(NULL_UUID));
163 widgetsBundle.setId(new WidgetsBundleId(UUIDs.timeBased())); 165 widgetsBundle.setId(new WidgetsBundleId(UUIDs.timeBased()));
164 widgetsBundleDao.save(widgetsBundle); 166 widgetsBundleDao.save(widgetsBundle);
165 } 167 }
@@ -15,14 +15,4 @@ @@ -15,14 +15,4 @@
15 activate_token="ACTIVATE_TOKEN_2" 15 activate_token="ACTIVATE_TOKEN_2"
16 reset_token="RESET_TOKEN_2" 16 reset_token="RESET_TOKEN_2"
17 /> 17 />
18 - <!--  
19 - <user_credentials  
20 - id=""  
21 - user_id=""  
22 - enabled="true"  
23 - password="password"  
24 - activate_token=""  
25 - reset_token=""  
26 - />  
27 - -->  
28 </dataset> 18 </dataset>