Commit 49a98673525407ace293bc86a14b2a44a2a88fbe

Authored by viktorbasanets
1 parent 5a65ec75

After review

@@ -319,12 +319,62 @@ public abstract class BaseEntityViewControllerTest extends AbstractControllerTes @@ -319,12 +319,62 @@ public abstract class BaseEntityViewControllerTest extends AbstractControllerTes
319 } 319 }
320 320
321 @Test 321 @Test
322 - public void testTheCopyOfAttrsThatMatchWithDeviceCriteriaForTheView() throws Exception { 322 + public void testTheCopyOfAttrsIntoTSForTheView() throws Exception {
  323 + Set<String> actualAttributesSet =
  324 + getAttributesByKeys("{\"caValue1\":\"value1\", \"caValue2\":true, \"caValue3\":42.0, \"caValue4\":73}");
323 325
324 - String viewDeviceId = testDevice.getId().getId().toString();  
325 - DeviceCredentials deviceCredentials  
326 - = doGet("/api/device/" + viewDeviceId + "/credentials", DeviceCredentials.class); 326 + Set<String> expectedActualAttributesSet =
  327 + new HashSet<>(Arrays.asList("caValue1", "caValue2", "caValue3", "caValue4"));
  328 + assertTrue(actualAttributesSet.containsAll(expectedActualAttributesSet));
  329 + Thread.sleep(1000);
  330 +
  331 + EntityView savedView = getNewSavedEntityView("Test entity view");
  332 + String urlOfTelemetryValues = "/api/plugins/telemetry/ENTITY_VIEW/" + savedView.getId().getId().toString() +
  333 + "/values/attributes?keys=" + String.join(",", actualAttributesSet);
  334 + List<Map<String, Object>> values = doGetAsync(urlOfTelemetryValues, List.class);
  335 +
  336 + assertEquals("value1", getValue(values, "caValue1"));
  337 + assertEquals(true, getValue(values, "caValue2"));
  338 + assertEquals(42.0, getValue(values, "caValue3"));
  339 + assertEquals(73, getValue(values, "caValue4"));
  340 + }
  341 +
  342 + @Test
  343 + public void testTheCopyOfAttrsOutOfTSForTheView() throws Exception {
  344 + Set<String> actualAttributesSet =
  345 + getAttributesByKeys("{\"caValue1\":\"value1\", \"caValue2\":true, \"caValue3\":42.0, \"caValue4\":73}");
  346 +
  347 + Set<String> expectedActualAttributesSet = new HashSet<>(Arrays.asList("caValue1", "caValue2", "caValue3", "caValue4"));
  348 + assertTrue(actualAttributesSet.containsAll(expectedActualAttributesSet));
  349 + Thread.sleep(1000);
  350 +
  351 + List<Map<String, Object>> values = doGetAsync("/api/plugins/telemetry/DEVICE/" + testDevice.getId().getId().toString() +
  352 + "/values/attributes?keys=" + String.join(",", actualAttributesSet), List.class);
  353 +
  354 + EntityView view = new EntityView();
  355 + view.setEntityId(testDevice.getId());
  356 + view.setTenantId(savedTenant.getId());
  357 + view.setName("Test entity view");
  358 + view.setKeys(telemetry);
  359 + view.setStartTimeMs((long) getValue(values, "lastUpdateTs") * 10);
  360 + view.setEndTimeMs((long) getValue(values, "lastUpdateTs") / 10);
  361 + EntityView savedView = doPost("/api/entityView", view, EntityView.class);
  362 +
  363 + String urlOfTelemetryValues = "/api/plugins/telemetry/ENTITY_VIEW/" + savedView.getId().getId().toString() +
  364 + "/values/attributes?keys=" + String.join(",", actualAttributesSet);
  365 + values = doGetAsync(urlOfTelemetryValues, List.class);
327 366
  367 +
  368 + assertEquals("value1", getValue(values, "caValue1"));
  369 + assertEquals(true, getValue(values, "caValue2"));
  370 + assertEquals(42.0, getValue(values, "caValue3"));
  371 + assertEquals(73, getValue(values, "caValue4"));
  372 + }
  373 +
  374 + private Set<String> getAttributesByKeys(String stringKV) throws Exception {
  375 + String viewDeviceId = testDevice.getId().getId().toString();
  376 + DeviceCredentials deviceCredentials =
  377 + doGet("/api/device/" + viewDeviceId + "/credentials", DeviceCredentials.class);
328 assertEquals(testDevice.getId(), deviceCredentials.getDeviceId()); 378 assertEquals(testDevice.getId(), deviceCredentials.getDeviceId());
329 379
330 String accessToken = deviceCredentials.getCredentialsId(); 380 String accessToken = deviceCredentials.getCredentialsId();
@@ -339,31 +389,19 @@ public abstract class BaseEntityViewControllerTest extends AbstractControllerTes @@ -339,31 +389,19 @@ public abstract class BaseEntityViewControllerTest extends AbstractControllerTes
339 Thread.sleep(3000); 389 Thread.sleep(3000);
340 390
341 MqttMessage message = new MqttMessage(); 391 MqttMessage message = new MqttMessage();
342 - message.setPayload(("{\"caValue1\":\"value1\", \"caValue2\":true, \"caValue3\":42.0, \"caValue4\":73}").getBytes()); 392 + message.setPayload((stringKV).getBytes());
343 client.publish("v1/devices/me/attributes", message); 393 client.publish("v1/devices/me/attributes", message);
344 Thread.sleep(1000); 394 Thread.sleep(1000);
345 395
346 - List<String> actualAttributes =  
347 - doGetAsync("/api/plugins/telemetry/DEVICE/" + viewDeviceId + "/keys/attributes", List.class);  
348 - Set<String> actualAttributesSet = new HashSet<>(actualAttributes);  
349 -  
350 - List<String> expectedActualAttributes = Arrays.asList("caValue1", "caValue2", "caValue3", "caValue4");  
351 - Set<String> expectedActualAttributesSet = new HashSet<>(expectedActualAttributes);  
352 - assertTrue(actualAttributesSet.containsAll(expectedActualAttributesSet));  
353 - Thread.sleep(1000);  
354 -  
355 - EntityView savedView = getNewSavedEntityView("Test entity view");  
356 - String urlOfTelemetryValues = "/api/plugins/telemetry/ENTITY_VIEW/" + savedView.getId().getId().toString() +  
357 - "/values/attributes?keys=" + String.join(",", actualAttributesSet);  
358 - List<Map<String, Object>> values = doGetAsync(urlOfTelemetryValues, List.class);  
359 -  
360 - assertEquals("value1", getValueOfMap(values, "caValue1"));  
361 - assertEquals(true, getValueOfMap(values, "caValue2"));  
362 - assertEquals(42.0, getValueOfMap(values, "caValue3"));  
363 - assertEquals(73, getValueOfMap(values, "caValue4")); 396 + return new HashSet<>(doGetAsync("/api/plugins/telemetry/DEVICE/" + viewDeviceId + "/keys/attributes", List.class));
364 } 397 }
365 398
366 - private Object getValueOfMap(List<Map<String, Object>> values, String stringValue) { 399 + /*private Object getLastTs(List<Map<String, Object>> values) {
  400 + return values.stream()
  401 + .filter(value -> value.get("key");
  402 + }
  403 +*/
  404 + private Object getValue(List<Map<String, Object>> values, String stringValue) {
367 return values.stream() 405 return values.stream()
368 .filter(value -> value.get("key").equals(stringValue)) 406 .filter(value -> value.get("key").equals(stringValue))
369 .findFirst().get().get("value"); 407 .findFirst().get().get("value");
@@ -233,8 +233,8 @@ public class EntityViewServiceImpl extends AbstractEntityService implements Enti @@ -233,8 +233,8 @@ public class EntityViewServiceImpl extends AbstractEntityService implements Enti
233 long lastUpdateTs = attributeKvEntry.getLastUpdateTs(); 233 long lastUpdateTs = attributeKvEntry.getLastUpdateTs();
234 return startTime == 0 && endTime == 0 || 234 return startTime == 0 && endTime == 0 ||
235 (endTime == 0 && startTime < lastUpdateTs) || 235 (endTime == 0 && startTime < lastUpdateTs) ||
236 - (startTime == 0 && endTime > lastUpdateTs) ||  
237 - (startTime < lastUpdateTs && endTime > lastUpdateTs); 236 + (startTime == 0 && endTime > lastUpdateTs)
  237 + ? true : startTime < lastUpdateTs && endTime > lastUpdateTs;
238 }).collect(Collectors.toList()); 238 }).collect(Collectors.toList());
239 } 239 }
240 try { 240 try {