Added coverage for merge functionality

This commit is contained in:
Volodymyr Babak 2020-10-26 12:19:11 +02:00
parent 4b1500390e
commit 8aa51ee6f7

View File

@ -436,20 +436,18 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
} }
private void testRuleChainMetadataRequestMsg(RuleChainId ruleChainId) throws Exception { private void testRuleChainMetadataRequestMsg(RuleChainId ruleChainId) throws Exception {
RuleChainMetadataRequestMsg ruleChainMetadataRequestMsg = RuleChainMetadataRequestMsg.newBuilder().clear() RuleChainMetadataRequestMsg.Builder ruleChainMetadataRequestMsgBuilder = RuleChainMetadataRequestMsg.newBuilder()
.setRuleChainIdMSB(ruleChainId.getId().getMostSignificantBits()) .setRuleChainIdMSB(ruleChainId.getId().getMostSignificantBits())
.setRuleChainIdLSB(ruleChainId.getId().getLeastSignificantBits()) .setRuleChainIdLSB(ruleChainId.getId().getLeastSignificantBits());
.build(); testAutoGeneratedCodeByProtobuf(ruleChainMetadataRequestMsgBuilder);
testAutoGeneratedCodeByProtobuf(ruleChainMetadataRequestMsg);
UplinkMsg uplinkMsg = UplinkMsg.newBuilder().clear() UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder()
.addRuleChainMetadataRequestMsg(ruleChainMetadataRequestMsg) .addRuleChainMetadataRequestMsg(ruleChainMetadataRequestMsgBuilder.build());
.build(); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1); edgeImitator.expectResponsesAmount(1);
edgeImitator.expectMessageAmount(1); edgeImitator.expectMessageAmount(1);
edgeImitator.sendUplinkMsg(uplinkMsg); edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
edgeImitator.waitForMessages(); edgeImitator.waitForMessages();
@ -966,21 +964,21 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
private void sendDevice() throws Exception { private void sendDevice() throws Exception {
UUID uuid = UUIDs.timeBased(); UUID uuid = UUIDs.timeBased();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder();
DeviceUpdateMsg.Builder deviceUpdateMsgBuilder = DeviceUpdateMsg.newBuilder().clear(); DeviceUpdateMsg.Builder deviceUpdateMsgBuilder = DeviceUpdateMsg.newBuilder();
deviceUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); deviceUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits());
deviceUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); deviceUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits());
deviceUpdateMsgBuilder.setName("Edge Device 2"); deviceUpdateMsgBuilder.setName("Edge Device 2");
deviceUpdateMsgBuilder.setType("test"); deviceUpdateMsgBuilder.setType("test");
deviceUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); deviceUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE);
DeviceUpdateMsg deviceUpdateMsg = deviceUpdateMsgBuilder.build(); testAutoGeneratedCodeByProtobuf(deviceUpdateMsgBuilder);
testAutoGeneratedCodeByProtobuf(deviceUpdateMsg); uplinkMsgBuilder.addDeviceUpdateMsg(deviceUpdateMsgBuilder.build());
builder.addDeviceUpdateMsg(deviceUpdateMsg);
edgeImitator.expectResponsesAmount(1); edgeImitator.expectResponsesAmount(1);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
edgeImitator.sendUplinkMsg(uplinkMsg);
edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
Device device = doGet("/api/device/" + uuid.toString(), Device.class); Device device = doGet("/api/device/" + uuid.toString(), Device.class);
@ -1002,21 +1000,19 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
doPost("/api/relation", relation); doPost("/api/relation", relation);
edgeImitator.waitForMessages(); edgeImitator.waitForMessages();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder();
RelationRequestMsg.Builder relationRequestMsgBuilder = RelationRequestMsg.newBuilder().clear(); RelationRequestMsg.Builder relationRequestMsgBuilder = RelationRequestMsg.newBuilder();
relationRequestMsgBuilder.setEntityIdMSB(device.getId().getId().getMostSignificantBits()); relationRequestMsgBuilder.setEntityIdMSB(device.getId().getId().getMostSignificantBits());
relationRequestMsgBuilder.setEntityIdLSB(device.getId().getId().getLeastSignificantBits()); relationRequestMsgBuilder.setEntityIdLSB(device.getId().getId().getLeastSignificantBits());
relationRequestMsgBuilder.setEntityType(device.getId().getEntityType().name()); relationRequestMsgBuilder.setEntityType(device.getId().getEntityType().name());
RelationRequestMsg relationRequestMsg = relationRequestMsgBuilder.build(); testAutoGeneratedCodeByProtobuf(relationRequestMsgBuilder);
testAutoGeneratedCodeByProtobuf(relationRequestMsg);
builder.addRelationRequestMsg(relationRequestMsg); uplinkMsgBuilder.addRelationRequestMsg(relationRequestMsgBuilder.build());
UplinkMsg uplinkMsg = builder.build(); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1); edgeImitator.expectResponsesAmount(1);
edgeImitator.expectMessageAmount(1); edgeImitator.expectMessageAmount(1);
edgeImitator.sendUplinkMsg(uplinkMsg); edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
edgeImitator.waitForMessages(); edgeImitator.waitForMessages();
@ -1040,22 +1036,20 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
private void sendAlarm() throws Exception { private void sendAlarm() throws Exception {
Device device = findDeviceByName("Edge Device 2"); Device device = findDeviceByName("Edge Device 2");
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder();
AlarmUpdateMsg.Builder alarmUpdateMgBuilder = AlarmUpdateMsg.newBuilder().clear(); AlarmUpdateMsg.Builder alarmUpdateMgBuilder = AlarmUpdateMsg.newBuilder();
alarmUpdateMgBuilder.setName("alarm from edge"); alarmUpdateMgBuilder.setName("alarm from edge");
alarmUpdateMgBuilder.setStatus(AlarmStatus.ACTIVE_UNACK.name()); alarmUpdateMgBuilder.setStatus(AlarmStatus.ACTIVE_UNACK.name());
alarmUpdateMgBuilder.setSeverity(AlarmSeverity.CRITICAL.name()); alarmUpdateMgBuilder.setSeverity(AlarmSeverity.CRITICAL.name());
alarmUpdateMgBuilder.setOriginatorName(device.getName()); alarmUpdateMgBuilder.setOriginatorName(device.getName());
alarmUpdateMgBuilder.setOriginatorType(EntityType.DEVICE.name()); alarmUpdateMgBuilder.setOriginatorType(EntityType.DEVICE.name());
AlarmUpdateMsg alarmUpdateMsg = alarmUpdateMgBuilder.build(); testAutoGeneratedCodeByProtobuf(alarmUpdateMgBuilder);
testAutoGeneratedCodeByProtobuf(alarmUpdateMsg); uplinkMsgBuilder.addAlarmUpdateMsg(alarmUpdateMgBuilder.build());
builder.addAlarmUpdateMsg(alarmUpdateMsg);
UplinkMsg uplinkMsg = builder.build(); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1); edgeImitator.expectResponsesAmount(1);
edgeImitator.sendUplinkMsg(uplinkMsg); edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
@ -1081,8 +1075,8 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
Assert.assertTrue(foundDevice2.isPresent()); Assert.assertTrue(foundDevice2.isPresent());
Device device2 = foundDevice2.get(); Device device2 = foundDevice2.get();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder();
RelationUpdateMsg.Builder relationUpdateMsgBuilder = RelationUpdateMsg.newBuilder().clear(); RelationUpdateMsg.Builder relationUpdateMsgBuilder = RelationUpdateMsg.newBuilder();
relationUpdateMsgBuilder.setType("test"); relationUpdateMsgBuilder.setType("test");
relationUpdateMsgBuilder.setTypeGroup(RelationTypeGroup.COMMON.name()); relationUpdateMsgBuilder.setTypeGroup(RelationTypeGroup.COMMON.name());
relationUpdateMsgBuilder.setToIdMSB(device1.getId().getId().getMostSignificantBits()); relationUpdateMsgBuilder.setToIdMSB(device1.getId().getId().getMostSignificantBits());
@ -1092,15 +1086,13 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
relationUpdateMsgBuilder.setFromIdLSB(device2.getId().getId().getLeastSignificantBits()); relationUpdateMsgBuilder.setFromIdLSB(device2.getId().getId().getLeastSignificantBits());
relationUpdateMsgBuilder.setFromEntityType(device2.getId().getEntityType().name()); relationUpdateMsgBuilder.setFromEntityType(device2.getId().getEntityType().name());
relationUpdateMsgBuilder.setAdditionalInfo("{}"); relationUpdateMsgBuilder.setAdditionalInfo("{}");
RelationUpdateMsg relationUpdateMsg = relationUpdateMsgBuilder.build(); testAutoGeneratedCodeByProtobuf(relationUpdateMsgBuilder);
testAutoGeneratedCodeByProtobuf(relationUpdateMsg); uplinkMsgBuilder.addRelationUpdateMsg(relationUpdateMsgBuilder.build());
builder.addRelationUpdateMsg(relationUpdateMsg);
UplinkMsg uplinkMsg = builder.build(); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1); edgeImitator.expectResponsesAmount(1);
edgeImitator.sendUplinkMsg(uplinkMsg); edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
EntityRelation relation = doGet("/api/relation?" + EntityRelation relation = doGet("/api/relation?" +
@ -1126,39 +1118,35 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
String timeseriesKey = "key"; String timeseriesKey = "key";
String timeseriesValue = "25"; String timeseriesValue = "25";
data.addProperty(timeseriesKey, timeseriesValue); data.addProperty(timeseriesKey, timeseriesValue);
UplinkMsg.Builder builder1 = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder uplinkMsgBuilder1 = UplinkMsg.newBuilder();
EntityDataProto.Builder entityDataBuilder = EntityDataProto.newBuilder().clear(); EntityDataProto.Builder entityDataBuilder = EntityDataProto.newBuilder();
entityDataBuilder.setPostTelemetryMsg(JsonConverter.convertToTelemetryProto(data, System.currentTimeMillis())); entityDataBuilder.setPostTelemetryMsg(JsonConverter.convertToTelemetryProto(data, System.currentTimeMillis()));
entityDataBuilder.setEntityType(device.getId().getEntityType().name()); entityDataBuilder.setEntityType(device.getId().getEntityType().name());
entityDataBuilder.setEntityIdMSB(device.getUuidId().getMostSignificantBits()); entityDataBuilder.setEntityIdMSB(device.getUuidId().getMostSignificantBits());
entityDataBuilder.setEntityIdLSB(device.getUuidId().getLeastSignificantBits()); entityDataBuilder.setEntityIdLSB(device.getUuidId().getLeastSignificantBits());
EntityDataProto entityDataProto1 = entityDataBuilder.build(); testAutoGeneratedCodeByProtobuf(entityDataBuilder);
testAutoGeneratedCodeByProtobuf(entityDataProto1); uplinkMsgBuilder1.addEntityData(entityDataBuilder.build());
builder1.addEntityData(entityDataProto1);
UplinkMsg uplinkMsg1 = builder1.build(); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder1);
testAutoGeneratedCodeByProtobuf(uplinkMsg1); edgeImitator.sendUplinkMsg(uplinkMsgBuilder1.build());
edgeImitator.sendUplinkMsg(uplinkMsg1);
JsonObject attributesData = new JsonObject(); JsonObject attributesData = new JsonObject();
String attributesKey = "test_attr"; String attributesKey = "test_attr";
String attributesValue = "test_value"; String attributesValue = "test_value";
attributesData.addProperty(attributesKey, attributesValue); attributesData.addProperty(attributesKey, attributesValue);
UplinkMsg.Builder builder2 = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder uplinkMsgBuilder2 = UplinkMsg.newBuilder();
EntityDataProto.Builder entityDataBuilder2 = EntityDataProto.newBuilder().clear(); EntityDataProto.Builder entityDataBuilder2 = EntityDataProto.newBuilder();
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.setAttributesUpdatedMsg(JsonConverter.convertToAttributesProto(attributesData)); entityDataBuilder2.setAttributesUpdatedMsg(JsonConverter.convertToAttributesProto(attributesData));
entityDataBuilder2.setPostAttributeScope(DataConstants.SERVER_SCOPE); entityDataBuilder2.setPostAttributeScope(DataConstants.SERVER_SCOPE);
EntityDataProto entityDataProto2 = entityDataBuilder2.build(); testAutoGeneratedCodeByProtobuf(entityDataBuilder2);
testAutoGeneratedCodeByProtobuf(entityDataProto2);
builder2.addEntityData(entityDataProto2); uplinkMsgBuilder2.addEntityData(entityDataBuilder2.build());
UplinkMsg uplinkMsg2 = builder2.build(); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder2);
testAutoGeneratedCodeByProtobuf(uplinkMsg2);
edgeImitator.sendUplinkMsg(uplinkMsg2); edgeImitator.sendUplinkMsg(uplinkMsgBuilder2.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
Thread.sleep(1000); Thread.sleep(1000);
@ -1177,20 +1165,18 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
private void sendRuleChainMetadataRequest() throws Exception { private void sendRuleChainMetadataRequest() throws Exception {
RuleChainId edgeRootRuleChainId = edge.getRootRuleChainId(); RuleChainId edgeRootRuleChainId = edge.getRootRuleChainId();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder();
RuleChainMetadataRequestMsg.Builder ruleChainMetadataRequestMsgBuilder = RuleChainMetadataRequestMsg.newBuilder().clear(); RuleChainMetadataRequestMsg.Builder ruleChainMetadataRequestMsgBuilder = RuleChainMetadataRequestMsg.newBuilder();
ruleChainMetadataRequestMsgBuilder.setRuleChainIdMSB(edgeRootRuleChainId.getId().getMostSignificantBits()); ruleChainMetadataRequestMsgBuilder.setRuleChainIdMSB(edgeRootRuleChainId.getId().getMostSignificantBits());
ruleChainMetadataRequestMsgBuilder.setRuleChainIdLSB(edgeRootRuleChainId.getId().getLeastSignificantBits()); ruleChainMetadataRequestMsgBuilder.setRuleChainIdLSB(edgeRootRuleChainId.getId().getLeastSignificantBits());
RuleChainMetadataRequestMsg ruleChainMetadataRequestMsg = ruleChainMetadataRequestMsgBuilder.build(); testAutoGeneratedCodeByProtobuf(ruleChainMetadataRequestMsgBuilder);
testAutoGeneratedCodeByProtobuf(ruleChainMetadataRequestMsg); uplinkMsgBuilder.addRuleChainMetadataRequestMsg(ruleChainMetadataRequestMsgBuilder.build());
builder.addRuleChainMetadataRequestMsg(ruleChainMetadataRequestMsg); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1); edgeImitator.expectResponsesAmount(1);
edgeImitator.expectMessageAmount(1); edgeImitator.expectMessageAmount(1);
edgeImitator.sendUplinkMsg(uplinkMsg); edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
edgeImitator.waitForMessages(); edgeImitator.waitForMessages();
@ -1204,19 +1190,18 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
private void sendUserCredentialsRequest() throws Exception { private void sendUserCredentialsRequest() throws Exception {
UserId userId = edgeImitator.getUserId(); UserId userId = edgeImitator.getUserId();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder();
UserCredentialsRequestMsg.Builder userCredentialsRequestMsgBuilder = UserCredentialsRequestMsg.newBuilder().clear(); UserCredentialsRequestMsg.Builder userCredentialsRequestMsgBuilder = UserCredentialsRequestMsg.newBuilder();
userCredentialsRequestMsgBuilder.setUserIdMSB(userId.getId().getMostSignificantBits()); userCredentialsRequestMsgBuilder.setUserIdMSB(userId.getId().getMostSignificantBits());
userCredentialsRequestMsgBuilder.setUserIdLSB(userId.getId().getLeastSignificantBits()); userCredentialsRequestMsgBuilder.setUserIdLSB(userId.getId().getLeastSignificantBits());
UserCredentialsRequestMsg userCredentialsRequestMsg = userCredentialsRequestMsgBuilder.build(); testAutoGeneratedCodeByProtobuf(userCredentialsRequestMsgBuilder);
testAutoGeneratedCodeByProtobuf(userCredentialsRequestMsg); uplinkMsgBuilder.addUserCredentialsRequestMsg(userCredentialsRequestMsgBuilder.build());
builder.addUserCredentialsRequestMsg(userCredentialsRequestMsg);
UplinkMsg uplinkMsg = builder.build(); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1); edgeImitator.expectResponsesAmount(1);
edgeImitator.expectMessageAmount(1); edgeImitator.expectMessageAmount(1);
edgeImitator.sendUplinkMsg(uplinkMsg); edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
edgeImitator.waitForMessages(); edgeImitator.waitForMessages();
@ -1232,19 +1217,18 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
DeviceCredentials deviceCredentials = doGet("/api/device/" + device.getId().getId().toString() + "/credentials", DeviceCredentials.class); DeviceCredentials deviceCredentials = doGet("/api/device/" + device.getId().getId().toString() + "/credentials", DeviceCredentials.class);
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder();
DeviceCredentialsRequestMsg.Builder deviceCredentialsRequestMsgBuilder = DeviceCredentialsRequestMsg.newBuilder().clear(); DeviceCredentialsRequestMsg.Builder deviceCredentialsRequestMsgBuilder = DeviceCredentialsRequestMsg.newBuilder();
deviceCredentialsRequestMsgBuilder.setDeviceIdMSB(device.getUuidId().getMostSignificantBits()); deviceCredentialsRequestMsgBuilder.setDeviceIdMSB(device.getUuidId().getMostSignificantBits());
deviceCredentialsRequestMsgBuilder.setDeviceIdLSB(device.getUuidId().getLeastSignificantBits()); deviceCredentialsRequestMsgBuilder.setDeviceIdLSB(device.getUuidId().getLeastSignificantBits());
DeviceCredentialsRequestMsg deviceCredentialsRequestMsg = deviceCredentialsRequestMsgBuilder.build(); testAutoGeneratedCodeByProtobuf(deviceCredentialsRequestMsgBuilder);
testAutoGeneratedCodeByProtobuf(deviceCredentialsRequestMsg); uplinkMsgBuilder.addDeviceCredentialsRequestMsg(deviceCredentialsRequestMsgBuilder.build());
builder.addDeviceCredentialsRequestMsg(deviceCredentialsRequestMsg);
UplinkMsg uplinkMsg = builder.build(); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1); edgeImitator.expectResponsesAmount(1);
edgeImitator.expectMessageAmount(1); edgeImitator.expectMessageAmount(1);
edgeImitator.sendUplinkMsg(uplinkMsg); edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
edgeImitator.waitForMessages(); edgeImitator.waitForMessages();
@ -1260,46 +1244,44 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
private void sendDeviceCredentialsUpdate() throws Exception { private void sendDeviceCredentialsUpdate() throws Exception {
Device device = findDeviceByName("Edge Device 1"); Device device = findDeviceByName("Edge Device 1");
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder();
DeviceCredentialsUpdateMsg.Builder deviceCredentialsUpdateMsgBuilder = DeviceCredentialsUpdateMsg.newBuilder().clear(); DeviceCredentialsUpdateMsg.Builder deviceCredentialsUpdateMsgBuilder = DeviceCredentialsUpdateMsg.newBuilder();
deviceCredentialsUpdateMsgBuilder.setDeviceIdMSB(device.getUuidId().getMostSignificantBits()); deviceCredentialsUpdateMsgBuilder.setDeviceIdMSB(device.getUuidId().getMostSignificantBits());
deviceCredentialsUpdateMsgBuilder.setDeviceIdLSB(device.getUuidId().getLeastSignificantBits()); deviceCredentialsUpdateMsgBuilder.setDeviceIdLSB(device.getUuidId().getLeastSignificantBits());
deviceCredentialsUpdateMsgBuilder.setCredentialsType(DeviceCredentialsType.ACCESS_TOKEN.name()); deviceCredentialsUpdateMsgBuilder.setCredentialsType(DeviceCredentialsType.ACCESS_TOKEN.name());
deviceCredentialsUpdateMsgBuilder.setCredentialsId("NEW_TOKEN"); deviceCredentialsUpdateMsgBuilder.setCredentialsId("NEW_TOKEN");
DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg = deviceCredentialsUpdateMsgBuilder.build(); testAutoGeneratedCodeByProtobuf(deviceCredentialsUpdateMsgBuilder);
testAutoGeneratedCodeByProtobuf(deviceCredentialsUpdateMsg); uplinkMsgBuilder.addDeviceCredentialsUpdateMsg(deviceCredentialsUpdateMsgBuilder.build());
builder.addDeviceCredentialsUpdateMsg(deviceCredentialsUpdateMsg);
UplinkMsg uplinkMsg = builder.build(); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1); edgeImitator.expectResponsesAmount(1);
edgeImitator.sendUplinkMsg(uplinkMsg); edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
} }
private void sendDeviceRpcResponse() throws Exception { private void sendDeviceRpcResponse() throws Exception {
Device device = findDeviceByName("Edge Device 1"); Device device = findDeviceByName("Edge Device 1");
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder();
DeviceRpcCallMsg.Builder deviceRpcCallResponse = DeviceRpcCallMsg.newBuilder().clear(); DeviceRpcCallMsg.Builder deviceRpcCallResponseBuilder = DeviceRpcCallMsg.newBuilder();
deviceRpcCallResponse.setDeviceIdMSB(device.getUuidId().getMostSignificantBits()); deviceRpcCallResponseBuilder.setDeviceIdMSB(device.getUuidId().getMostSignificantBits());
deviceRpcCallResponse.setDeviceIdLSB(device.getUuidId().getLeastSignificantBits()); deviceRpcCallResponseBuilder.setDeviceIdLSB(device.getUuidId().getLeastSignificantBits());
deviceRpcCallResponse.setOneway(true); deviceRpcCallResponseBuilder.setOneway(true);
deviceRpcCallResponse.setOriginServiceId("originServiceId"); deviceRpcCallResponseBuilder.setOriginServiceId("originServiceId");
deviceRpcCallResponse.setExpirationTime(System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(10)); deviceRpcCallResponseBuilder.setExpirationTime(System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(10));
RpcResponseMsg.Builder responseBuilder = RpcResponseMsg.Builder responseBuilder =
RpcResponseMsg.newBuilder().clear().setResponse("{}"); RpcResponseMsg.newBuilder().setResponse("{}");
RpcResponseMsg rpcResponseMsg = responseBuilder.build(); testAutoGeneratedCodeByProtobuf(responseBuilder);
testAutoGeneratedCodeByProtobuf(rpcResponseMsg);
deviceRpcCallResponse.setResponseMsg(rpcResponseMsg); deviceRpcCallResponseBuilder.setResponseMsg(responseBuilder.build());
DeviceRpcCallMsg deviceRpcCallMsg = deviceRpcCallResponse.build(); testAutoGeneratedCodeByProtobuf(deviceRpcCallResponseBuilder);
testAutoGeneratedCodeByProtobuf(deviceRpcCallMsg);
builder.addDeviceRpcCallMsg(deviceRpcCallMsg); uplinkMsgBuilder.addDeviceRpcCallMsg(deviceRpcCallResponseBuilder.build());
UplinkMsg uplinkMsg = builder.build(); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1); edgeImitator.expectResponsesAmount(1);
edgeImitator.sendUplinkMsg(uplinkMsg); edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
} }
@ -1312,20 +1294,18 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
doPost("/api/plugins/telemetry/DEVICE/" + device.getId().getId().toString() + "/attributes/" + DataConstants.SERVER_SCOPE, doPost("/api/plugins/telemetry/DEVICE/" + device.getId().getId().toString() + "/attributes/" + DataConstants.SERVER_SCOPE,
attributesData); attributesData);
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder();
AttributesRequestMsg.Builder attributesRequestMsgBuilder = AttributesRequestMsg.newBuilder().clear(); AttributesRequestMsg.Builder attributesRequestMsgBuilder = AttributesRequestMsg.newBuilder();
attributesRequestMsgBuilder.setEntityIdMSB(device.getUuidId().getMostSignificantBits()); attributesRequestMsgBuilder.setEntityIdMSB(device.getUuidId().getMostSignificantBits());
attributesRequestMsgBuilder.setEntityIdLSB(device.getUuidId().getLeastSignificantBits()); attributesRequestMsgBuilder.setEntityIdLSB(device.getUuidId().getLeastSignificantBits());
attributesRequestMsgBuilder.setEntityType(EntityType.DEVICE.name()); attributesRequestMsgBuilder.setEntityType(EntityType.DEVICE.name());
AttributesRequestMsg attributesRequestMsg = attributesRequestMsgBuilder.build(); testAutoGeneratedCodeByProtobuf(attributesRequestMsgBuilder);
testAutoGeneratedCodeByProtobuf(attributesRequestMsg); uplinkMsgBuilder.addAttributesRequestMsg(attributesRequestMsgBuilder.build());
builder.addAttributesRequestMsg(attributesRequestMsg); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
UplinkMsg uplinkMsg = builder.build();
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1); edgeImitator.expectResponsesAmount(1);
edgeImitator.expectMessageAmount(1); edgeImitator.expectMessageAmount(1);
edgeImitator.sendUplinkMsg(uplinkMsg); edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
edgeImitator.waitForMessages(); edgeImitator.waitForMessages();
@ -1351,19 +1331,18 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
Optional<Device> foundDevice = edgeDevices.stream().filter(device1 -> device1.getName().equals("Edge Device 2")).findAny(); Optional<Device> foundDevice = edgeDevices.stream().filter(device1 -> device1.getName().equals("Edge Device 2")).findAny();
Assert.assertTrue(foundDevice.isPresent()); Assert.assertTrue(foundDevice.isPresent());
Device device = foundDevice.get(); Device device = foundDevice.get();
UplinkMsg.Builder builder = UplinkMsg.newBuilder().clear(); UplinkMsg.Builder upLinkMsgBuilder = UplinkMsg.newBuilder();
DeviceUpdateMsg.Builder deviceDeleteMsgBuilder = DeviceUpdateMsg.newBuilder().clear(); DeviceUpdateMsg.Builder deviceDeleteMsgBuilder = DeviceUpdateMsg.newBuilder();
deviceDeleteMsgBuilder.setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE); deviceDeleteMsgBuilder.setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE);
deviceDeleteMsgBuilder.setIdMSB(device.getId().getId().getMostSignificantBits()); deviceDeleteMsgBuilder.setIdMSB(device.getId().getId().getMostSignificantBits());
deviceDeleteMsgBuilder.setIdLSB(device.getId().getId().getLeastSignificantBits()); deviceDeleteMsgBuilder.setIdLSB(device.getId().getId().getLeastSignificantBits());
DeviceUpdateMsg deviceUpdateMsg = deviceDeleteMsgBuilder.build(); testAutoGeneratedCodeByProtobuf(deviceDeleteMsgBuilder);
testAutoGeneratedCodeByProtobuf(deviceUpdateMsg);
builder.addDeviceUpdateMsg(deviceUpdateMsg); upLinkMsgBuilder.addDeviceUpdateMsg(deviceDeleteMsgBuilder.build());
UplinkMsg uplinkMsg = builder.build(); testAutoGeneratedCodeByProtobuf(upLinkMsgBuilder);
testAutoGeneratedCodeByProtobuf(uplinkMsg);
edgeImitator.expectResponsesAmount(1); edgeImitator.expectResponsesAmount(1);
edgeImitator.sendUplinkMsg(uplinkMsg); edgeImitator.sendUplinkMsg(upLinkMsgBuilder.build());
edgeImitator.waitForResponses(); edgeImitator.waitForResponses();
device = doGet("/api/device/" + device.getId().getId().toString(), Device.class); device = doGet("/api/device/" + device.getId().getId().toString(), Device.class);
Assert.assertNotNull(device); Assert.assertNotNull(device);
@ -1396,9 +1375,11 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
return edgeEvent; return edgeEvent;
} }
private void testAutoGeneratedCodeByProtobuf(MessageLite source) throws InvalidProtocolBufferException { private void testAutoGeneratedCodeByProtobuf(MessageLite.Builder builder) throws InvalidProtocolBufferException {
MessageLite source = builder.build();
MessageLite target = source.getParserForType().parseFrom(source.toByteArray()); MessageLite target = source.getParserForType().parseFrom(source.toByteArray());
Assert.assertEquals(source, target); Assert.assertEquals(source, target);
Assert.assertEquals(source.hashCode(), target.hashCode()); Assert.assertEquals(source.hashCode(), target.hashCode());
builder.clear().mergeFrom(target);
} }
} }