|
|
|
@ -82,7 +82,6 @@ abstract public class BaseDeviceEdgeTest extends AbstractEdgeTest { |
|
|
|
public void testDevices() throws Exception { |
|
|
|
// create device and assign to edge; update device
|
|
|
|
Device savedDevice = saveDeviceOnCloudAndVerifyDeliveryToEdge(); |
|
|
|
verifyUpdateFirmwareIdAndDeviceData(savedDevice); |
|
|
|
|
|
|
|
// unassign device from edge
|
|
|
|
edgeImitator.expectMessageAmount(1); |
|
|
|
@ -170,50 +169,13 @@ abstract public class BaseDeviceEdgeTest extends AbstractEdgeTest { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private void verifyUpdateFirmwareIdAndDeviceData(Device savedDevice) throws InterruptedException { |
|
|
|
// create ota package
|
|
|
|
edgeImitator.expectMessageAmount(1); |
|
|
|
OtaPackageInfo firmwareOtaPackageInfo = saveOtaPackageInfo(thermostatDeviceProfile.getId()); |
|
|
|
Assert.assertTrue(edgeImitator.waitForMessages()); |
|
|
|
|
|
|
|
// update device
|
|
|
|
edgeImitator.expectMessageAmount(1); |
|
|
|
savedDevice.setFirmwareId(firmwareOtaPackageInfo.getId()); |
|
|
|
|
|
|
|
DeviceData deviceData = new DeviceData(); |
|
|
|
deviceData.setConfiguration(new DefaultDeviceConfiguration()); |
|
|
|
MqttDeviceTransportConfiguration transportConfiguration = new MqttDeviceTransportConfiguration(); |
|
|
|
transportConfiguration.getProperties().put("topic", "tb_rule_engine.thermostat"); |
|
|
|
deviceData.setTransportConfiguration(transportConfiguration); |
|
|
|
savedDevice.setDeviceData(deviceData); |
|
|
|
|
|
|
|
savedDevice = doPost("/api/device", savedDevice, Device.class); |
|
|
|
Assert.assertTrue(edgeImitator.waitForMessages()); |
|
|
|
AbstractMessage latestMessage = edgeImitator.getLatestMessage(); |
|
|
|
Assert.assertTrue(latestMessage instanceof DeviceUpdateMsg); |
|
|
|
DeviceUpdateMsg deviceUpdateMsg = (DeviceUpdateMsg) latestMessage; |
|
|
|
Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType()); |
|
|
|
Assert.assertEquals(savedDevice.getUuidId().getMostSignificantBits(), deviceUpdateMsg.getIdMSB()); |
|
|
|
Assert.assertEquals(savedDevice.getUuidId().getLeastSignificantBits(), deviceUpdateMsg.getIdLSB()); |
|
|
|
Assert.assertEquals(savedDevice.getName(), deviceUpdateMsg.getName()); |
|
|
|
Assert.assertEquals(savedDevice.getType(), deviceUpdateMsg.getType()); |
|
|
|
Assert.assertEquals(firmwareOtaPackageInfo.getUuidId().getMostSignificantBits(), deviceUpdateMsg.getFirmwareIdMSB()); |
|
|
|
Assert.assertEquals(firmwareOtaPackageInfo.getUuidId().getLeastSignificantBits(), deviceUpdateMsg.getFirmwareIdLSB()); |
|
|
|
Optional<DeviceData> deviceDataOpt = |
|
|
|
dataDecodingEncodingService.decode(deviceUpdateMsg.getDeviceDataBytes().toByteArray()); |
|
|
|
Assert.assertTrue(deviceDataOpt.isPresent()); |
|
|
|
deviceData = deviceDataOpt.get(); |
|
|
|
Assert.assertTrue(deviceData.getTransportConfiguration() instanceof MqttDeviceTransportConfiguration); |
|
|
|
MqttDeviceTransportConfiguration mqttDeviceTransportConfiguration = |
|
|
|
(MqttDeviceTransportConfiguration) deviceData.getTransportConfiguration(); |
|
|
|
Assert.assertEquals("tb_rule_engine.thermostat", mqttDeviceTransportConfiguration.getProperties().get("topic")); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testUpdateDeviceCredentials() throws Exception { |
|
|
|
// create device and assign to edge; update device
|
|
|
|
Device savedDevice = saveDeviceOnCloudAndVerifyDeliveryToEdge(); |
|
|
|
|
|
|
|
verifyUpdateFirmwareIdAndDeviceData(savedDevice); |
|
|
|
|
|
|
|
// update device credentials - ACCESS_TOKEN
|
|
|
|
edgeImitator.expectMessageAmount(1); |
|
|
|
DeviceCredentials deviceCredentials = |
|
|
|
@ -248,6 +210,45 @@ abstract public class BaseDeviceEdgeTest extends AbstractEdgeTest { |
|
|
|
Assert.assertEquals(deviceCredentials.getCredentialsValue(), deviceCredentialsUpdateMsg.getCredentialsValue()); |
|
|
|
} |
|
|
|
|
|
|
|
private void verifyUpdateFirmwareIdAndDeviceData(Device savedDevice) throws InterruptedException { |
|
|
|
// create ota package
|
|
|
|
edgeImitator.expectMessageAmount(1); |
|
|
|
OtaPackageInfo firmwareOtaPackageInfo = saveOtaPackageInfo(thermostatDeviceProfile.getId()); |
|
|
|
Assert.assertTrue(edgeImitator.waitForMessages()); |
|
|
|
|
|
|
|
// update device
|
|
|
|
edgeImitator.expectMessageAmount(1); |
|
|
|
savedDevice.setFirmwareId(firmwareOtaPackageInfo.getId()); |
|
|
|
|
|
|
|
DeviceData deviceData = new DeviceData(); |
|
|
|
deviceData.setConfiguration(new DefaultDeviceConfiguration()); |
|
|
|
MqttDeviceTransportConfiguration transportConfiguration = new MqttDeviceTransportConfiguration(); |
|
|
|
transportConfiguration.getProperties().put("topic", "tb_rule_engine.thermostat"); |
|
|
|
deviceData.setTransportConfiguration(transportConfiguration); |
|
|
|
savedDevice.setDeviceData(deviceData); |
|
|
|
|
|
|
|
savedDevice = doPost("/api/device", savedDevice, Device.class); |
|
|
|
Assert.assertTrue(edgeImitator.waitForMessages()); |
|
|
|
AbstractMessage latestMessage = edgeImitator.getLatestMessage(); |
|
|
|
Assert.assertTrue(latestMessage instanceof DeviceUpdateMsg); |
|
|
|
DeviceUpdateMsg deviceUpdateMsg = (DeviceUpdateMsg) latestMessage; |
|
|
|
Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType()); |
|
|
|
Assert.assertEquals(savedDevice.getUuidId().getMostSignificantBits(), deviceUpdateMsg.getIdMSB()); |
|
|
|
Assert.assertEquals(savedDevice.getUuidId().getLeastSignificantBits(), deviceUpdateMsg.getIdLSB()); |
|
|
|
Assert.assertEquals(savedDevice.getName(), deviceUpdateMsg.getName()); |
|
|
|
Assert.assertEquals(savedDevice.getType(), deviceUpdateMsg.getType()); |
|
|
|
Assert.assertEquals(firmwareOtaPackageInfo.getUuidId().getMostSignificantBits(), deviceUpdateMsg.getFirmwareIdMSB()); |
|
|
|
Assert.assertEquals(firmwareOtaPackageInfo.getUuidId().getLeastSignificantBits(), deviceUpdateMsg.getFirmwareIdLSB()); |
|
|
|
Optional<DeviceData> deviceDataOpt = |
|
|
|
dataDecodingEncodingService.decode(deviceUpdateMsg.getDeviceDataBytes().toByteArray()); |
|
|
|
Assert.assertTrue(deviceDataOpt.isPresent()); |
|
|
|
deviceData = deviceDataOpt.get(); |
|
|
|
Assert.assertTrue(deviceData.getTransportConfiguration() instanceof MqttDeviceTransportConfiguration); |
|
|
|
MqttDeviceTransportConfiguration mqttDeviceTransportConfiguration = |
|
|
|
(MqttDeviceTransportConfiguration) deviceData.getTransportConfiguration(); |
|
|
|
Assert.assertEquals("tb_rule_engine.thermostat", mqttDeviceTransportConfiguration.getProperties().get("topic")); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testDeviceReachedMaximumAllowedOnCloud() throws Exception { |
|
|
|
// update tenant profile configuration
|
|
|
|
|