Fix flaky test testBulkImportDeviceWithUpdateFalse
This commit is contained in:
parent
c9dab4fc9d
commit
f492f8ae1b
@ -84,6 +84,7 @@ import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.awaitility.Awaitility.await;
|
||||
import static org.hamcrest.Matchers.containsString;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.never;
|
||||
@ -1541,17 +1542,24 @@ public class DeviceControllerTest extends AbstractControllerTest {
|
||||
Device savedDevice = doGet("/api/tenant/devices?deviceName=" + deviceName, Device.class);
|
||||
|
||||
//check server attribute value
|
||||
List<Map<String, Object>> values = doGetAsyncTyped("/api/plugins/telemetry/DEVICE/" + savedDevice.getId() +
|
||||
"/values/attributes/SERVER_SCOPE", new TypeReference<>() {
|
||||
await().atMost(TIMEOUT, TimeUnit.SECONDS).untilAsserted(() -> {
|
||||
Map<String, Object> actualAttribute = doGetAsyncTyped("/api/plugins/telemetry/DEVICE/" + savedDevice.getId() +
|
||||
"/values/attributes/SERVER_SCOPE", new TypeReference<List<Map<String, Object>>>() {}).stream()
|
||||
.filter(att -> att.get("key").equals("DATA")).findFirst().get();
|
||||
Assert.assertEquals(attributeValue, actualAttribute.get("value"));
|
||||
});
|
||||
Map<String, Object> serverAttribute = values.stream().filter(att -> att.get("key").equals("DATA")).findFirst().get();
|
||||
Assert.assertEquals(attributeValue, serverAttribute.get("value"));
|
||||
|
||||
//update server attribute value
|
||||
String newAttributeValue = "testValue2";
|
||||
JsonNode content = JacksonUtil.toJsonNode("{\"DATA\": \"" + newAttributeValue + "\"}");
|
||||
doPost("/api/plugins/telemetry/" + EntityType.DEVICE.name() + "/" + savedDevice.getUuidId() + "/SERVER_SCOPE", content)
|
||||
.andExpect(status().isOk());
|
||||
await().atMost(TIMEOUT, TimeUnit.SECONDS).untilAsserted(() -> {
|
||||
Map<String, Object> actualAttribute = doGetAsyncTyped("/api/plugins/telemetry/DEVICE/" + savedDevice.getId() +
|
||||
"/values/attributes/SERVER_SCOPE", new TypeReference<List<Map<String, Object>>>() {}).stream()
|
||||
.filter(att -> att.get("key").equals("DATA")).findFirst().get();
|
||||
Assert.assertEquals(newAttributeValue, actualAttribute.get("value"));
|
||||
});
|
||||
|
||||
//reimport devices
|
||||
String deviceName2 = "secondDevice";
|
||||
@ -1563,19 +1571,19 @@ public class DeviceControllerTest extends AbstractControllerTest {
|
||||
doPostWithTypedResponse("/api/device/bulk_import", request, new TypeReference<>() {});
|
||||
Device savedDevice2 = doGet("/api/tenant/devices?deviceName=" + deviceName2, Device.class);
|
||||
|
||||
//check attribute value was not changed after reimport
|
||||
List<Map<String, Object>> values2 = doGetAsyncTyped("/api/plugins/telemetry/DEVICE/" + savedDevice.getId() +
|
||||
"/values/attributes/SERVER_SCOPE", new TypeReference<>() {
|
||||
});
|
||||
Map<String, Object> retrievedServerAttribute2 = values2.stream().filter(att -> att.get("key").equals("DATA")).findFirst().get();
|
||||
Assert.assertEquals(newAttributeValue, retrievedServerAttribute2.get("value"));
|
||||
|
||||
//check attribute for second device
|
||||
List<Map<String, Object>> values3 = doGetAsyncTyped("/api/plugins/telemetry/DEVICE/" + savedDevice2.getId() +
|
||||
"/values/attributes/SERVER_SCOPE", new TypeReference<>() {
|
||||
await().atMost(TIMEOUT, TimeUnit.SECONDS).untilAsserted(() -> {
|
||||
Map<String, Object> actualAttribute = doGetAsyncTyped("/api/plugins/telemetry/DEVICE/" + savedDevice2.getId() +
|
||||
"/values/attributes/SERVER_SCOPE", new TypeReference<List<Map<String, Object>>>() {}).stream()
|
||||
.filter(att -> att.get("key").equals("DATA")).findFirst().get();
|
||||
Assert.assertEquals(attributeValue2, actualAttribute.get("value"));
|
||||
});
|
||||
Map<String, Object> retrievedServerAttribute3 = values3.stream().filter(att -> att.get("key").equals("DATA")).findFirst().get();
|
||||
Assert.assertEquals(attributeValue2, retrievedServerAttribute3.get("value"));
|
||||
|
||||
//check attribute value was not changed after reimport
|
||||
Map<String, Object> actualAttribute = doGetAsyncTyped("/api/plugins/telemetry/DEVICE/" + savedDevice.getId() +
|
||||
"/values/attributes/SERVER_SCOPE", new TypeReference<List<Map<String, Object>>>() {}).stream()
|
||||
.filter(att -> att.get("key").equals("DATA")).findFirst().get();
|
||||
Assert.assertEquals(newAttributeValue, actualAttribute.get("value"));
|
||||
}
|
||||
|
||||
private Device createDevice(String name) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user