After review
This commit is contained in:
parent
5a65ec75fe
commit
49a9867352
@ -319,12 +319,62 @@ public abstract class BaseEntityViewControllerTest extends AbstractControllerTes
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testTheCopyOfAttrsThatMatchWithDeviceCriteriaForTheView() throws Exception {
|
public void testTheCopyOfAttrsIntoTSForTheView() throws Exception {
|
||||||
|
Set<String> actualAttributesSet =
|
||||||
|
getAttributesByKeys("{\"caValue1\":\"value1\", \"caValue2\":true, \"caValue3\":42.0, \"caValue4\":73}");
|
||||||
|
|
||||||
|
Set<String> expectedActualAttributesSet =
|
||||||
|
new HashSet<>(Arrays.asList("caValue1", "caValue2", "caValue3", "caValue4"));
|
||||||
|
assertTrue(actualAttributesSet.containsAll(expectedActualAttributesSet));
|
||||||
|
Thread.sleep(1000);
|
||||||
|
|
||||||
|
EntityView savedView = getNewSavedEntityView("Test entity view");
|
||||||
|
String urlOfTelemetryValues = "/api/plugins/telemetry/ENTITY_VIEW/" + savedView.getId().getId().toString() +
|
||||||
|
"/values/attributes?keys=" + String.join(",", actualAttributesSet);
|
||||||
|
List<Map<String, Object>> values = doGetAsync(urlOfTelemetryValues, List.class);
|
||||||
|
|
||||||
|
assertEquals("value1", getValue(values, "caValue1"));
|
||||||
|
assertEquals(true, getValue(values, "caValue2"));
|
||||||
|
assertEquals(42.0, getValue(values, "caValue3"));
|
||||||
|
assertEquals(73, getValue(values, "caValue4"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testTheCopyOfAttrsOutOfTSForTheView() throws Exception {
|
||||||
|
Set<String> actualAttributesSet =
|
||||||
|
getAttributesByKeys("{\"caValue1\":\"value1\", \"caValue2\":true, \"caValue3\":42.0, \"caValue4\":73}");
|
||||||
|
|
||||||
|
Set<String> expectedActualAttributesSet = new HashSet<>(Arrays.asList("caValue1", "caValue2", "caValue3", "caValue4"));
|
||||||
|
assertTrue(actualAttributesSet.containsAll(expectedActualAttributesSet));
|
||||||
|
Thread.sleep(1000);
|
||||||
|
|
||||||
|
List<Map<String, Object>> values = doGetAsync("/api/plugins/telemetry/DEVICE/" + testDevice.getId().getId().toString() +
|
||||||
|
"/values/attributes?keys=" + String.join(",", actualAttributesSet), List.class);
|
||||||
|
|
||||||
|
EntityView view = new EntityView();
|
||||||
|
view.setEntityId(testDevice.getId());
|
||||||
|
view.setTenantId(savedTenant.getId());
|
||||||
|
view.setName("Test entity view");
|
||||||
|
view.setKeys(telemetry);
|
||||||
|
view.setStartTimeMs((long) getValue(values, "lastUpdateTs") * 10);
|
||||||
|
view.setEndTimeMs((long) getValue(values, "lastUpdateTs") / 10);
|
||||||
|
EntityView savedView = doPost("/api/entityView", view, EntityView.class);
|
||||||
|
|
||||||
|
String urlOfTelemetryValues = "/api/plugins/telemetry/ENTITY_VIEW/" + savedView.getId().getId().toString() +
|
||||||
|
"/values/attributes?keys=" + String.join(",", actualAttributesSet);
|
||||||
|
values = doGetAsync(urlOfTelemetryValues, List.class);
|
||||||
|
|
||||||
|
|
||||||
|
assertEquals("value1", getValue(values, "caValue1"));
|
||||||
|
assertEquals(true, getValue(values, "caValue2"));
|
||||||
|
assertEquals(42.0, getValue(values, "caValue3"));
|
||||||
|
assertEquals(73, getValue(values, "caValue4"));
|
||||||
|
}
|
||||||
|
|
||||||
|
private Set<String> getAttributesByKeys(String stringKV) throws Exception {
|
||||||
String viewDeviceId = testDevice.getId().getId().toString();
|
String viewDeviceId = testDevice.getId().getId().toString();
|
||||||
DeviceCredentials deviceCredentials
|
DeviceCredentials deviceCredentials =
|
||||||
= doGet("/api/device/" + viewDeviceId + "/credentials", DeviceCredentials.class);
|
doGet("/api/device/" + viewDeviceId + "/credentials", DeviceCredentials.class);
|
||||||
|
|
||||||
assertEquals(testDevice.getId(), deviceCredentials.getDeviceId());
|
assertEquals(testDevice.getId(), deviceCredentials.getDeviceId());
|
||||||
|
|
||||||
String accessToken = deviceCredentials.getCredentialsId();
|
String accessToken = deviceCredentials.getCredentialsId();
|
||||||
@ -339,31 +389,19 @@ public abstract class BaseEntityViewControllerTest extends AbstractControllerTes
|
|||||||
Thread.sleep(3000);
|
Thread.sleep(3000);
|
||||||
|
|
||||||
MqttMessage message = new MqttMessage();
|
MqttMessage message = new MqttMessage();
|
||||||
message.setPayload(("{\"caValue1\":\"value1\", \"caValue2\":true, \"caValue3\":42.0, \"caValue4\":73}").getBytes());
|
message.setPayload((stringKV).getBytes());
|
||||||
client.publish("v1/devices/me/attributes", message);
|
client.publish("v1/devices/me/attributes", message);
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
|
|
||||||
List<String> actualAttributes =
|
return new HashSet<>(doGetAsync("/api/plugins/telemetry/DEVICE/" + viewDeviceId + "/keys/attributes", List.class));
|
||||||
doGetAsync("/api/plugins/telemetry/DEVICE/" + viewDeviceId + "/keys/attributes", List.class);
|
|
||||||
Set<String> actualAttributesSet = new HashSet<>(actualAttributes);
|
|
||||||
|
|
||||||
List<String> expectedActualAttributes = Arrays.asList("caValue1", "caValue2", "caValue3", "caValue4");
|
|
||||||
Set<String> expectedActualAttributesSet = new HashSet<>(expectedActualAttributes);
|
|
||||||
assertTrue(actualAttributesSet.containsAll(expectedActualAttributesSet));
|
|
||||||
Thread.sleep(1000);
|
|
||||||
|
|
||||||
EntityView savedView = getNewSavedEntityView("Test entity view");
|
|
||||||
String urlOfTelemetryValues = "/api/plugins/telemetry/ENTITY_VIEW/" + savedView.getId().getId().toString() +
|
|
||||||
"/values/attributes?keys=" + String.join(",", actualAttributesSet);
|
|
||||||
List<Map<String, Object>> values = doGetAsync(urlOfTelemetryValues, List.class);
|
|
||||||
|
|
||||||
assertEquals("value1", getValueOfMap(values, "caValue1"));
|
|
||||||
assertEquals(true, getValueOfMap(values, "caValue2"));
|
|
||||||
assertEquals(42.0, getValueOfMap(values, "caValue3"));
|
|
||||||
assertEquals(73, getValueOfMap(values, "caValue4"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Object getValueOfMap(List<Map<String, Object>> values, String stringValue) {
|
/*private Object getLastTs(List<Map<String, Object>> values) {
|
||||||
|
return values.stream()
|
||||||
|
.filter(value -> value.get("key");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
private Object getValue(List<Map<String, Object>> values, String stringValue) {
|
||||||
return values.stream()
|
return values.stream()
|
||||||
.filter(value -> value.get("key").equals(stringValue))
|
.filter(value -> value.get("key").equals(stringValue))
|
||||||
.findFirst().get().get("value");
|
.findFirst().get().get("value");
|
||||||
|
|||||||
@ -233,8 +233,8 @@ public class EntityViewServiceImpl extends AbstractEntityService implements Enti
|
|||||||
long lastUpdateTs = attributeKvEntry.getLastUpdateTs();
|
long lastUpdateTs = attributeKvEntry.getLastUpdateTs();
|
||||||
return startTime == 0 && endTime == 0 ||
|
return startTime == 0 && endTime == 0 ||
|
||||||
(endTime == 0 && startTime < lastUpdateTs) ||
|
(endTime == 0 && startTime < lastUpdateTs) ||
|
||||||
(startTime == 0 && endTime > lastUpdateTs) ||
|
(startTime == 0 && endTime > lastUpdateTs)
|
||||||
(startTime < lastUpdateTs && endTime > lastUpdateTs);
|
? true : startTime < lastUpdateTs && endTime > lastUpdateTs;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user