Browse Source

Added test for autogenerated code of protobuf

pull/3481/head
Volodymyr Babak 6 years ago
parent
commit
4b1500390e
  1. 206
      application/src/test/java/org/thingsboard/server/edge/BaseEdgeTest.java

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

@ -23,20 +23,16 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.gson.JsonObject;
import com.google.protobuf.AbstractMessage;
import com.google.protobuf.Extension;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.MessageLite;
import com.google.protobuf.Parser;
import lombok.extern.slf4j.Slf4j;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.request.async.DeferredResult;
import org.thingsboard.rule.engine.api.RuleEngineDeviceRpcRequest;
import org.thingsboard.server.common.data.Customer;
import org.thingsboard.server.common.data.Dashboard;
@ -55,7 +51,6 @@ import org.thingsboard.server.common.data.edge.Edge;
import org.thingsboard.server.common.data.edge.EdgeEvent;
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
import org.thingsboard.server.common.data.edge.EdgeEventType;
import org.thingsboard.server.common.data.exception.ThingsboardException;
import org.thingsboard.server.common.data.id.EdgeId;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.EntityIdFactory;
@ -115,6 +110,7 @@ import java.util.Random;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import static com.google.protobuf.Extension.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@Slf4j
@ -439,14 +435,18 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
log.info("RuleChains tested successfully");
}
private void testRuleChainMetadataRequestMsg(RuleChainId ruleChainId) throws InterruptedException {
RuleChainMetadataRequestMsg ruleChainMetadataRequestMsg = RuleChainMetadataRequestMsg.newBuilder()
private void testRuleChainMetadataRequestMsg(RuleChainId ruleChainId) throws Exception {
RuleChainMetadataRequestMsg ruleChainMetadataRequestMsg = RuleChainMetadataRequestMsg.newBuilder().clear()
.setRuleChainIdMSB(ruleChainId.getId().getMostSignificantBits())
.setRuleChainIdLSB(ruleChainId.getId().getLeastSignificantBits())
.build();
UplinkMsg uplinkMsg = UplinkMsg.newBuilder()
testAutoGeneratedCodeByProtobuf(ruleChainMetadataRequestMsg);
UplinkMsg uplinkMsg = UplinkMsg.newBuilder().clear()
.addRuleChainMetadataRequestMsg(ruleChainMetadataRequestMsg)
.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1);
edgeImitator.expectMessageAmount(1);
edgeImitator.sendUplinkMsg(uplinkMsg);
@ -966,16 +966,21 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
private void sendDevice() throws Exception {
UUID uuid = UUIDs.timeBased();
UplinkMsg.Builder builder = UplinkMsg.newBuilder();
DeviceUpdateMsg.Builder deviceUpdateMsgBuilder = DeviceUpdateMsg.newBuilder();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear();
DeviceUpdateMsg.Builder deviceUpdateMsgBuilder = DeviceUpdateMsg.newBuilder().clear();
deviceUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits());
deviceUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits());
deviceUpdateMsgBuilder.setName("Edge Device 2");
deviceUpdateMsgBuilder.setType("test");
deviceUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE);
builder.addDeviceUpdateMsg(deviceUpdateMsgBuilder.build());
DeviceUpdateMsg deviceUpdateMsg = deviceUpdateMsgBuilder.build();
testAutoGeneratedCodeByProtobuf(deviceUpdateMsg);
builder.addDeviceUpdateMsg(deviceUpdateMsg);
edgeImitator.expectResponsesAmount(1);
edgeImitator.sendUplinkMsg(builder.build());
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.sendUplinkMsg(uplinkMsg);
edgeImitator.waitForResponses();
Device device = doGet("/api/device/" + uuid.toString(), Device.class);
@ -997,16 +1002,21 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
doPost("/api/relation", relation);
edgeImitator.waitForMessages();
UplinkMsg.Builder builder = UplinkMsg.newBuilder();
RelationRequestMsg.Builder relationRequestMsgBuilder = RelationRequestMsg.newBuilder();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear();
RelationRequestMsg.Builder relationRequestMsgBuilder = RelationRequestMsg.newBuilder().clear();
relationRequestMsgBuilder.setEntityIdMSB(device.getId().getId().getMostSignificantBits());
relationRequestMsgBuilder.setEntityIdLSB(device.getId().getId().getLeastSignificantBits());
relationRequestMsgBuilder.setEntityType(device.getId().getEntityType().name());
builder.addRelationRequestMsg(relationRequestMsgBuilder.build());
RelationRequestMsg relationRequestMsg = relationRequestMsgBuilder.build();
testAutoGeneratedCodeByProtobuf(relationRequestMsg);
builder.addRelationRequestMsg(relationRequestMsg);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1);
edgeImitator.expectMessageAmount(1);
edgeImitator.sendUplinkMsg(builder.build());
edgeImitator.sendUplinkMsg(uplinkMsg);
edgeImitator.waitForResponses();
edgeImitator.waitForMessages();
@ -1030,16 +1040,22 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
private void sendAlarm() throws Exception {
Device device = findDeviceByName("Edge Device 2");
UplinkMsg.Builder builder = UplinkMsg.newBuilder();
AlarmUpdateMsg.Builder alarmUpdateMgBuilder = AlarmUpdateMsg.newBuilder();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear();
AlarmUpdateMsg.Builder alarmUpdateMgBuilder = AlarmUpdateMsg.newBuilder().clear();
alarmUpdateMgBuilder.setName("alarm from edge");
alarmUpdateMgBuilder.setStatus(AlarmStatus.ACTIVE_UNACK.name());
alarmUpdateMgBuilder.setSeverity(AlarmSeverity.CRITICAL.name());
alarmUpdateMgBuilder.setOriginatorName(device.getName());
alarmUpdateMgBuilder.setOriginatorType(EntityType.DEVICE.name());
builder.addAlarmUpdateMsg(alarmUpdateMgBuilder.build());
AlarmUpdateMsg alarmUpdateMsg = alarmUpdateMgBuilder.build();
testAutoGeneratedCodeByProtobuf(alarmUpdateMsg);
builder.addAlarmUpdateMsg(alarmUpdateMsg);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1);
edgeImitator.sendUplinkMsg(builder.build());
edgeImitator.sendUplinkMsg(uplinkMsg);
edgeImitator.waitForResponses();
@ -1065,8 +1081,8 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
Assert.assertTrue(foundDevice2.isPresent());
Device device2 = foundDevice2.get();
UplinkMsg.Builder builder = UplinkMsg.newBuilder();
RelationUpdateMsg.Builder relationUpdateMsgBuilder = RelationUpdateMsg.newBuilder();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear();
RelationUpdateMsg.Builder relationUpdateMsgBuilder = RelationUpdateMsg.newBuilder().clear();
relationUpdateMsgBuilder.setType("test");
relationUpdateMsgBuilder.setTypeGroup(RelationTypeGroup.COMMON.name());
relationUpdateMsgBuilder.setToIdMSB(device1.getId().getId().getMostSignificantBits());
@ -1076,10 +1092,15 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
relationUpdateMsgBuilder.setFromIdLSB(device2.getId().getId().getLeastSignificantBits());
relationUpdateMsgBuilder.setFromEntityType(device2.getId().getEntityType().name());
relationUpdateMsgBuilder.setAdditionalInfo("{}");
builder.addRelationUpdateMsg(relationUpdateMsgBuilder.build());
UplinkMsg msg = builder.build();
RelationUpdateMsg relationUpdateMsg = relationUpdateMsgBuilder.build();
testAutoGeneratedCodeByProtobuf(relationUpdateMsg);
builder.addRelationUpdateMsg(relationUpdateMsg);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1);
edgeImitator.sendUplinkMsg(msg);
edgeImitator.sendUplinkMsg(uplinkMsg);
edgeImitator.waitForResponses();
EntityRelation relation = doGet("/api/relation?" +
@ -1105,28 +1126,39 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
String timeseriesKey = "key";
String timeseriesValue = "25";
data.addProperty(timeseriesKey, timeseriesValue);
UplinkMsg.Builder builder1 = UplinkMsg.newBuilder();
EntityDataProto.Builder entityDataBuilder = EntityDataProto.newBuilder();
UplinkMsg.Builder builder1 = UplinkMsg.newBuilder().clear();
EntityDataProto.Builder entityDataBuilder = EntityDataProto.newBuilder().clear();
entityDataBuilder.setPostTelemetryMsg(JsonConverter.convertToTelemetryProto(data, System.currentTimeMillis()));
entityDataBuilder.setEntityType(device.getId().getEntityType().name());
entityDataBuilder.setEntityIdMSB(device.getUuidId().getMostSignificantBits());
entityDataBuilder.setEntityIdLSB(device.getUuidId().getLeastSignificantBits());
builder1.addEntityData(entityDataBuilder.build());
edgeImitator.sendUplinkMsg(builder1.build());
EntityDataProto entityDataProto1 = entityDataBuilder.build();
testAutoGeneratedCodeByProtobuf(entityDataProto1);
builder1.addEntityData(entityDataProto1);
UplinkMsg uplinkMsg1 = builder1.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg1);
edgeImitator.sendUplinkMsg(uplinkMsg1);
JsonObject attributesData = new JsonObject();
String attributesKey = "test_attr";
String attributesValue = "test_value";
attributesData.addProperty(attributesKey, attributesValue);
UplinkMsg.Builder builder2 = UplinkMsg.newBuilder();
EntityDataProto.Builder entityDataBuilder2 = EntityDataProto.newBuilder();
UplinkMsg.Builder builder2 = UplinkMsg.newBuilder().clear();
EntityDataProto.Builder entityDataBuilder2 = EntityDataProto.newBuilder().clear();
entityDataBuilder2.setEntityType(device.getId().getEntityType().name());
entityDataBuilder2.setEntityIdMSB(device.getId().getId().getMostSignificantBits());
entityDataBuilder2.setEntityIdLSB(device.getId().getId().getLeastSignificantBits());
entityDataBuilder2.setAttributesUpdatedMsg(JsonConverter.convertToAttributesProto(attributesData));
entityDataBuilder2.setPostAttributeScope(DataConstants.SERVER_SCOPE);
builder2.addEntityData(entityDataBuilder2.build());
edgeImitator.sendUplinkMsg(builder2.build());
EntityDataProto entityDataProto2 = entityDataBuilder2.build();
testAutoGeneratedCodeByProtobuf(entityDataProto2);
builder2.addEntityData(entityDataProto2);
UplinkMsg uplinkMsg2 = builder2.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg2);
edgeImitator.sendUplinkMsg(uplinkMsg2);
edgeImitator.waitForResponses();
Thread.sleep(1000);
@ -1145,14 +1177,20 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
private void sendRuleChainMetadataRequest() throws Exception {
RuleChainId edgeRootRuleChainId = edge.getRootRuleChainId();
UplinkMsg.Builder builder = UplinkMsg.newBuilder();
RuleChainMetadataRequestMsg.Builder ruleChainMetadataRequestMsgBuilder = RuleChainMetadataRequestMsg.newBuilder();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear();
RuleChainMetadataRequestMsg.Builder ruleChainMetadataRequestMsgBuilder = RuleChainMetadataRequestMsg.newBuilder().clear();
ruleChainMetadataRequestMsgBuilder.setRuleChainIdMSB(edgeRootRuleChainId.getId().getMostSignificantBits());
ruleChainMetadataRequestMsgBuilder.setRuleChainIdLSB(edgeRootRuleChainId.getId().getLeastSignificantBits());
builder.addRuleChainMetadataRequestMsg(ruleChainMetadataRequestMsgBuilder.build());
RuleChainMetadataRequestMsg ruleChainMetadataRequestMsg = ruleChainMetadataRequestMsgBuilder.build();
testAutoGeneratedCodeByProtobuf(ruleChainMetadataRequestMsg);
builder.addRuleChainMetadataRequestMsg(ruleChainMetadataRequestMsg);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1);
edgeImitator.expectMessageAmount(1);
edgeImitator.sendUplinkMsg(builder.build());
edgeImitator.sendUplinkMsg(uplinkMsg);
edgeImitator.waitForResponses();
edgeImitator.waitForMessages();
@ -1166,14 +1204,19 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
private void sendUserCredentialsRequest() throws Exception {
UserId userId = edgeImitator.getUserId();
UplinkMsg.Builder builder = UplinkMsg.newBuilder();
UserCredentialsRequestMsg.Builder userCredentialsRequestMsgBuilder = UserCredentialsRequestMsg.newBuilder();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear();
UserCredentialsRequestMsg.Builder userCredentialsRequestMsgBuilder = UserCredentialsRequestMsg.newBuilder().clear();
userCredentialsRequestMsgBuilder.setUserIdMSB(userId.getId().getMostSignificantBits());
userCredentialsRequestMsgBuilder.setUserIdLSB(userId.getId().getLeastSignificantBits());
builder.addUserCredentialsRequestMsg(userCredentialsRequestMsgBuilder.build());
UserCredentialsRequestMsg userCredentialsRequestMsg = userCredentialsRequestMsgBuilder.build();
testAutoGeneratedCodeByProtobuf(userCredentialsRequestMsg);
builder.addUserCredentialsRequestMsg(userCredentialsRequestMsg);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1);
edgeImitator.expectMessageAmount(1);
edgeImitator.sendUplinkMsg(builder.build());
edgeImitator.sendUplinkMsg(uplinkMsg);
edgeImitator.waitForResponses();
edgeImitator.waitForMessages();
@ -1189,15 +1232,19 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
DeviceCredentials deviceCredentials = doGet("/api/device/" + device.getId().getId().toString() + "/credentials", DeviceCredentials.class);
UplinkMsg.Builder builder = UplinkMsg.newBuilder();
DeviceCredentialsRequestMsg.Builder deviceCredentialsRequestMsgBuilder = DeviceCredentialsRequestMsg.newBuilder();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear();
DeviceCredentialsRequestMsg.Builder deviceCredentialsRequestMsgBuilder = DeviceCredentialsRequestMsg.newBuilder().clear();
deviceCredentialsRequestMsgBuilder.setDeviceIdMSB(device.getUuidId().getMostSignificantBits());
deviceCredentialsRequestMsgBuilder.setDeviceIdLSB(device.getUuidId().getLeastSignificantBits());
builder.addDeviceCredentialsRequestMsg(deviceCredentialsRequestMsgBuilder.build());
DeviceCredentialsRequestMsg deviceCredentialsRequestMsg = deviceCredentialsRequestMsgBuilder.build();
testAutoGeneratedCodeByProtobuf(deviceCredentialsRequestMsg);
builder.addDeviceCredentialsRequestMsg(deviceCredentialsRequestMsg);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1);
edgeImitator.expectMessageAmount(1);
edgeImitator.sendUplinkMsg(builder.build());
edgeImitator.sendUplinkMsg(uplinkMsg);
edgeImitator.waitForResponses();
edgeImitator.waitForMessages();
@ -1213,36 +1260,46 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
private void sendDeviceCredentialsUpdate() throws Exception {
Device device = findDeviceByName("Edge Device 1");
UplinkMsg.Builder builder = UplinkMsg.newBuilder();
DeviceCredentialsUpdateMsg.Builder deviceCredentialsUpdateMsgBuilder = DeviceCredentialsUpdateMsg.newBuilder();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear();
DeviceCredentialsUpdateMsg.Builder deviceCredentialsUpdateMsgBuilder = DeviceCredentialsUpdateMsg.newBuilder().clear();
deviceCredentialsUpdateMsgBuilder.setDeviceIdMSB(device.getUuidId().getMostSignificantBits());
deviceCredentialsUpdateMsgBuilder.setDeviceIdLSB(device.getUuidId().getLeastSignificantBits());
deviceCredentialsUpdateMsgBuilder.setCredentialsType(DeviceCredentialsType.ACCESS_TOKEN.name());
deviceCredentialsUpdateMsgBuilder.setCredentialsId("NEW_TOKEN");
builder.addDeviceCredentialsUpdateMsg(deviceCredentialsUpdateMsgBuilder.build());
DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg = deviceCredentialsUpdateMsgBuilder.build();
testAutoGeneratedCodeByProtobuf(deviceCredentialsUpdateMsg);
builder.addDeviceCredentialsUpdateMsg(deviceCredentialsUpdateMsg);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1);
edgeImitator.sendUplinkMsg(builder.build());
edgeImitator.sendUplinkMsg(uplinkMsg);
edgeImitator.waitForResponses();
}
private void sendDeviceRpcResponse() throws Exception {
Device device = findDeviceByName("Edge Device 1");
UplinkMsg.Builder builder = UplinkMsg.newBuilder();
DeviceRpcCallMsg.Builder deviceRpcCallResponse = DeviceRpcCallMsg.newBuilder();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear();
DeviceRpcCallMsg.Builder deviceRpcCallResponse = DeviceRpcCallMsg.newBuilder().clear();
deviceRpcCallResponse.setDeviceIdMSB(device.getUuidId().getMostSignificantBits());
deviceRpcCallResponse.setDeviceIdLSB(device.getUuidId().getLeastSignificantBits());
deviceRpcCallResponse.setOneway(true);
deviceRpcCallResponse.setOriginServiceId("originServiceId");
deviceRpcCallResponse.setExpirationTime(System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(10));
RpcResponseMsg.Builder responseBuilder =
RpcResponseMsg.newBuilder().setResponse("{}");
deviceRpcCallResponse.setResponseMsg(responseBuilder.build());
builder.addDeviceRpcCallMsg(deviceRpcCallResponse.build());
RpcResponseMsg.newBuilder().clear().setResponse("{}");
RpcResponseMsg rpcResponseMsg = responseBuilder.build();
testAutoGeneratedCodeByProtobuf(rpcResponseMsg);
deviceRpcCallResponse.setResponseMsg(rpcResponseMsg);
DeviceRpcCallMsg deviceRpcCallMsg = deviceRpcCallResponse.build();
testAutoGeneratedCodeByProtobuf(deviceRpcCallMsg);
builder.addDeviceRpcCallMsg(deviceRpcCallMsg);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1);
edgeImitator.sendUplinkMsg(builder.build());
edgeImitator.sendUplinkMsg(uplinkMsg);
edgeImitator.waitForResponses();
}
@ -1255,16 +1312,20 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
doPost("/api/plugins/telemetry/DEVICE/" + device.getId().getId().toString() + "/attributes/" + DataConstants.SERVER_SCOPE,
attributesData);
UplinkMsg.Builder builder = UplinkMsg.newBuilder();
AttributesRequestMsg.Builder attributesRequestMsgBuilder = AttributesRequestMsg.newBuilder();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear();
AttributesRequestMsg.Builder attributesRequestMsgBuilder = AttributesRequestMsg.newBuilder().clear();
attributesRequestMsgBuilder.setEntityIdMSB(device.getUuidId().getMostSignificantBits());
attributesRequestMsgBuilder.setEntityIdLSB(device.getUuidId().getLeastSignificantBits());
attributesRequestMsgBuilder.setEntityType(EntityType.DEVICE.name());
builder.addAttributesRequestMsg(attributesRequestMsgBuilder.build());
AttributesRequestMsg attributesRequestMsg = attributesRequestMsgBuilder.build();
testAutoGeneratedCodeByProtobuf(attributesRequestMsg);
builder.addAttributesRequestMsg(attributesRequestMsg);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1);
edgeImitator.expectMessageAmount(1);
edgeImitator.sendUplinkMsg(builder.build());
edgeImitator.sendUplinkMsg(uplinkMsg);
edgeImitator.waitForResponses();
edgeImitator.waitForMessages();
@ -1290,14 +1351,19 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
Optional<Device> foundDevice = edgeDevices.stream().filter(device1 -> device1.getName().equals("Edge Device 2")).findAny();
Assert.assertTrue(foundDevice.isPresent());
Device device = foundDevice.get();
UplinkMsg.Builder builder = UplinkMsg.newBuilder();
DeviceUpdateMsg.Builder deviceDeleteMsgBuilder = DeviceUpdateMsg.newBuilder();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear();
DeviceUpdateMsg.Builder deviceDeleteMsgBuilder = DeviceUpdateMsg.newBuilder().clear();
deviceDeleteMsgBuilder.setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE);
deviceDeleteMsgBuilder.setIdMSB(device.getId().getId().getMostSignificantBits());
deviceDeleteMsgBuilder.setIdLSB(device.getId().getId().getLeastSignificantBits());
builder.addDeviceUpdateMsg(deviceDeleteMsgBuilder.build());
DeviceUpdateMsg deviceUpdateMsg = deviceDeleteMsgBuilder.build();
testAutoGeneratedCodeByProtobuf(deviceUpdateMsg);
builder.addDeviceUpdateMsg(deviceUpdateMsg);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1);
edgeImitator.sendUplinkMsg(builder.build());
edgeImitator.sendUplinkMsg(uplinkMsg);
edgeImitator.waitForResponses();
device = doGet("/api/device/" + device.getId().getId().toString(), Device.class);
Assert.assertNotNull(device);
@ -1329,4 +1395,10 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
edgeEvent.setBody(entityBody);
return edgeEvent;
}
private void testAutoGeneratedCodeByProtobuf(MessageLite source) throws InvalidProtocolBufferException {
MessageLite target = source.getParserForType().parseFrom(source.toByteArray());
Assert.assertEquals(source, target);
Assert.assertEquals(source.hashCode(), target.hashCode());
}
}

Loading…
Cancel
Save