Browse Source

tested attributes updated/post attributes separation

pull/2436/head
Bohdan Smetaniuk 6 years ago
parent
commit
773b856c25
  1. 37
      application/src/test/java/org/thingsboard/server/edge/BaseEdgeTest.java

37
application/src/test/java/org/thingsboard/server/edge/BaseEdgeTest.java

@ -19,6 +19,7 @@ import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.After; import org.junit.After;
@ -441,11 +442,11 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
Device device = edgeDevices.get(0); Device device = edgeDevices.get(0);
Assert.assertEquals("Edge Device 1", device.getName()); Assert.assertEquals("Edge Device 1", device.getName());
String attributesData = "{\"scope\":\"SERVER_SCOPE\",\"kv\":{\"test\":\"test\"}}"; String attributesData = "{\"scope\":\"SERVER_SCOPE\",\"kv\":{\"key\":\"value\"}}";
JsonNode attributesEntityData = mapper.readTree(attributesData); JsonNode attributesEntityData = mapper.readTree(attributesData);
EdgeEvent edgeEvent2 = constructEdgeEvent(tenantId, edge.getId(), ActionType.ATTRIBUTES_UPDATED, device.getId().getId(), EdgeEventType.DEVICE, attributesEntityData); EdgeEvent edgeEvent1 = constructEdgeEvent(tenantId, edge.getId(), ActionType.ATTRIBUTES_UPDATED, device.getId().getId(), EdgeEventType.DEVICE, attributesEntityData);
edgeImitator.getStorage().expectMessageAmount(1); edgeImitator.getStorage().expectMessageAmount(1);
edgeEventService.saveAsync(edgeEvent2); edgeEventService.saveAsync(edgeEvent1);
edgeImitator.getStorage().waitForMessages(); edgeImitator.getStorage().waitForMessages();
EntityDataProto latestEntityDataMsg = edgeImitator.getStorage().getLatestEntityDataMsg(); EntityDataProto latestEntityDataMsg = edgeImitator.getStorage().getLatestEntityDataMsg();
@ -454,14 +455,36 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
Assert.assertEquals(device.getId().getId(), uuid); Assert.assertEquals(device.getId().getId(), uuid);
Assert.assertEquals(device.getId().getEntityType().name(), latestEntityDataMsg.getEntityType()); Assert.assertEquals(device.getId().getEntityType().name(), latestEntityDataMsg.getEntityType());
Assert.assertEquals(attributesEntityData.get("scope").asText(), latestEntityDataMsg.getPostAttributeScope()); Assert.assertEquals(attributesEntityData.get("scope").asText(), latestEntityDataMsg.getPostAttributeScope());
Assert.assertTrue(latestEntityDataMsg.hasAttributesUpdatedMsg());
TransportProtos.PostAttributeMsg attributesUpdatedMsg = latestEntityDataMsg.getAttributesUpdatedMsg();
Assert.assertEquals(1, attributesUpdatedMsg.getKvCount());
TransportProtos.KeyValueProto keyValueProto = attributesUpdatedMsg.getKv(0);
Assert.assertEquals("key", keyValueProto.getKey());
Assert.assertEquals("value", keyValueProto.getStringV());
edgeImitator.getStorage().setLatestEntityDataMsg(null);
((ObjectNode) attributesEntityData).put("isPostAttributes", true);
EdgeEvent edgeEvent2 = constructEdgeEvent(tenantId, edge.getId(), ActionType.ATTRIBUTES_UPDATED, device.getId().getId(), EdgeEventType.DEVICE, attributesEntityData);
edgeImitator.getStorage().expectMessageAmount(1);
edgeEventService.saveAsync(edgeEvent2);
edgeImitator.getStorage().waitForMessages();
latestEntityDataMsg = edgeImitator.getStorage().getLatestEntityDataMsg();
Assert.assertNotNull(latestEntityDataMsg);
uuid = new UUID(latestEntityDataMsg.getEntityIdMSB(), latestEntityDataMsg.getEntityIdLSB());
Assert.assertEquals(device.getId().getId(), uuid);
Assert.assertEquals(device.getId().getEntityType().name(), latestEntityDataMsg.getEntityType());
Assert.assertEquals(attributesEntityData.get("scope").asText(), latestEntityDataMsg.getPostAttributeScope());
Assert.assertTrue(latestEntityDataMsg.hasPostAttributesMsg()); Assert.assertTrue(latestEntityDataMsg.hasPostAttributesMsg());
TransportProtos.PostAttributeMsg postAttributeMsg = latestEntityDataMsg.getPostAttributesMsg(); TransportProtos.PostAttributeMsg postAttributeMsg = latestEntityDataMsg.getPostAttributesMsg();
Assert.assertEquals(1, postAttributeMsg.getKvCount()); Assert.assertEquals(1, postAttributeMsg.getKvCount());
TransportProtos.KeyValueProto keyValueProto = postAttributeMsg.getKv(0); keyValueProto = postAttributeMsg.getKv(0);
Assert.assertEquals("test", keyValueProto.getKey()); Assert.assertEquals("key", keyValueProto.getKey());
Assert.assertEquals("test", keyValueProto.getStringV()); Assert.assertEquals("value", keyValueProto.getStringV());
edgeImitator.getStorage().setLatestEntityDataMsg(null); edgeImitator.getStorage().setLatestEntityDataMsg(null);
log.info("Attributes tested successfully"); log.info("Attributes tested successfully");
} }
@ -600,7 +623,7 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
entityDataBuilder2.setEntityType(device.getId().getEntityType().name()); entityDataBuilder2.setEntityType(device.getId().getEntityType().name());
entityDataBuilder2.setEntityIdMSB(device.getId().getId().getMostSignificantBits()); entityDataBuilder2.setEntityIdMSB(device.getId().getId().getMostSignificantBits());
entityDataBuilder2.setEntityIdLSB(device.getId().getId().getLeastSignificantBits()); entityDataBuilder2.setEntityIdLSB(device.getId().getId().getLeastSignificantBits());
entityDataBuilder2.setPostAttributesMsg(JsonConverter.convertToAttributesProto(attributesData)); entityDataBuilder2.setAttributesUpdatedMsg(JsonConverter.convertToAttributesProto(attributesData));
entityDataBuilder2.setPostAttributeScope(DataConstants.SERVER_SCOPE); entityDataBuilder2.setPostAttributeScope(DataConstants.SERVER_SCOPE);
builder2.addEntityData(entityDataBuilder2.build()); builder2.addEntityData(entityDataBuilder2.build());
edgeImitator.sendUplinkMsg(builder2.build()); edgeImitator.sendUplinkMsg(builder2.build());

Loading…
Cancel
Save