...
|
...
|
@@ -319,12 +319,62 @@ public abstract class BaseEntityViewControllerTest extends AbstractControllerTes |
319
|
319
|
}
|
320
|
320
|
|
321
|
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
|
378
|
assertEquals(testDevice.getId(), deviceCredentials.getDeviceId());
|
329
|
379
|
|
330
|
380
|
String accessToken = deviceCredentials.getCredentialsId();
|
...
|
...
|
@@ -339,31 +389,19 @@ public abstract class BaseEntityViewControllerTest extends AbstractControllerTes |
339
|
389
|
Thread.sleep(3000);
|
340
|
390
|
|
341
|
391
|
MqttMessage message = new MqttMessage();
|
342
|
|
- message.setPayload(("{\"caValue1\":\"value1\", \"caValue2\":true, \"caValue3\":42.0, \"caValue4\":73}").getBytes());
|
|
392
|
+ message.setPayload((stringKV).getBytes());
|
343
|
393
|
client.publish("v1/devices/me/attributes", message);
|
344
|
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
|
405
|
return values.stream()
|
368
|
406
|
.filter(value -> value.get("key").equals(stringValue))
|
369
|
407
|
.findFirst().get().get("value");
|
...
|
...
|
|