Improve stability of edge tests
This commit is contained in:
parent
d4ed67ff6d
commit
037820c9fa
@ -99,6 +99,7 @@ import java.util.List;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||||
|
|
||||||
@ -181,7 +182,7 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
|||||||
} catch (Exception ignored) {}
|
} catch (Exception ignored) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void installation() {
|
private void installation() throws Exception {
|
||||||
thermostatDeviceProfile = this.createDeviceProfile(THERMOSTAT_DEVICE_PROFILE_NAME,
|
thermostatDeviceProfile = this.createDeviceProfile(THERMOSTAT_DEVICE_PROFILE_NAME,
|
||||||
createMqttDeviceProfileTransportConfiguration(new JsonTransportPayloadConfiguration(), false));
|
createMqttDeviceProfileTransportConfiguration(new JsonTransportPayloadConfiguration(), false));
|
||||||
extendDeviceProfileData(thermostatDeviceProfile);
|
extendDeviceProfileData(thermostatDeviceProfile);
|
||||||
@ -197,6 +198,9 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
|||||||
+ "/device/" + savedDevice.getUuidId(), Device.class);
|
+ "/device/" + savedDevice.getUuidId(), Device.class);
|
||||||
doPost("/api/edge/" + edge.getUuidId()
|
doPost("/api/edge/" + edge.getUuidId()
|
||||||
+ "/asset/" + savedAsset.getUuidId(), Asset.class);
|
+ "/asset/" + savedAsset.getUuidId(), Asset.class);
|
||||||
|
|
||||||
|
// wait until assign device and asset events are fully processed by edge notification service
|
||||||
|
TimeUnit.MILLISECONDS.sleep(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void extendDeviceProfileData(DeviceProfile deviceProfile) {
|
protected void extendDeviceProfileData(DeviceProfile deviceProfile) {
|
||||||
@ -247,21 +251,21 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
|||||||
|
|
||||||
// 4 messages ('general', 'mail', 'connectivity', 'jwt)
|
// 4 messages ('general', 'mail', 'connectivity', 'jwt)
|
||||||
validateMsgsCnt(AdminSettingsUpdateMsg.class, 4);
|
validateMsgsCnt(AdminSettingsUpdateMsg.class, 4);
|
||||||
validateAdminSettings();
|
validateAdminSettings(4);
|
||||||
|
|
||||||
// 4 messages
|
// 4 messages
|
||||||
// - 1 from default profile fetcher
|
// - 1 from default profile fetcher
|
||||||
// - 2 from device profile fetcher (default and thermostat)
|
// - 2 from device profile fetcher (default and thermostat)
|
||||||
// - 1 from device fetcher
|
// - 1 from device fetcher
|
||||||
validateMsgsCnt(DeviceProfileUpdateMsg.class, 4);
|
validateMsgsCnt(DeviceProfileUpdateMsg.class, 4);
|
||||||
validateDeviceProfiles();
|
validateDeviceProfiles(4);
|
||||||
|
|
||||||
// 3 messages
|
// 3 messages
|
||||||
// - 1 from default profile fetcher
|
// - 1 from default profile fetcher
|
||||||
// - 1 message from asset profile fetcher
|
// - 1 message from asset profile fetcher
|
||||||
// - 1 message from asset fetcher
|
// - 1 message from asset fetcher
|
||||||
validateMsgsCnt(AssetProfileUpdateMsg.class, 3);
|
validateMsgsCnt(AssetProfileUpdateMsg.class, 3);
|
||||||
validateAssetProfiles();
|
validateAssetProfiles(3);
|
||||||
|
|
||||||
// 1 from device fetcher
|
// 1 from device fetcher
|
||||||
validateMsgsCnt(DeviceUpdateMsg.class, 1);
|
validateMsgsCnt(DeviceUpdateMsg.class, 1);
|
||||||
@ -332,13 +336,13 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
|||||||
testAutoGeneratedCodeByProtobuf(tenantProfileUpdateMsg);
|
testAutoGeneratedCodeByProtobuf(tenantProfileUpdateMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateDeviceProfiles() throws Exception {
|
private void validateDeviceProfiles(int expectedMsgCnt) throws Exception {
|
||||||
List<DeviceProfileUpdateMsg> deviceProfileUpdateMsgList = edgeImitator.findAllMessagesByType(DeviceProfileUpdateMsg.class);
|
List<DeviceProfileUpdateMsg> deviceProfileUpdateMsgList = edgeImitator.findAllMessagesByType(DeviceProfileUpdateMsg.class);
|
||||||
// default msg default device profile from fetcher
|
// default msg default device profile from fetcher
|
||||||
// default msg device profile from fetcher
|
// default msg device profile from fetcher
|
||||||
// thermostat msg from device profile fetcher
|
// thermostat msg from device profile fetcher
|
||||||
// thermostat msg from device fetcher
|
// thermostat msg from device fetcher
|
||||||
Assert.assertEquals(4, deviceProfileUpdateMsgList.size());
|
Assert.assertEquals(expectedMsgCnt, deviceProfileUpdateMsgList.size());
|
||||||
Optional<DeviceProfileUpdateMsg> thermostatProfileUpdateMsgOpt =
|
Optional<DeviceProfileUpdateMsg> thermostatProfileUpdateMsgOpt =
|
||||||
deviceProfileUpdateMsgList.stream().filter(dfum -> THERMOSTAT_DEVICE_PROFILE_NAME.equals(dfum.getName())).findAny();
|
deviceProfileUpdateMsgList.stream().filter(dfum -> THERMOSTAT_DEVICE_PROFILE_NAME.equals(dfum.getName())).findAny();
|
||||||
Assert.assertTrue(thermostatProfileUpdateMsgOpt.isPresent());
|
Assert.assertTrue(thermostatProfileUpdateMsgOpt.isPresent());
|
||||||
@ -419,9 +423,9 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
|||||||
Assert.assertEquals(expectedRuleChainUUID, ruleChainUUID);
|
Assert.assertEquals(expectedRuleChainUUID, ruleChainUUID);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateAdminSettings() {
|
private void validateAdminSettings(int expectedMsgCnt) {
|
||||||
List<AdminSettingsUpdateMsg> adminSettingsUpdateMsgs = edgeImitator.findAllMessagesByType(AdminSettingsUpdateMsg.class);
|
List<AdminSettingsUpdateMsg> adminSettingsUpdateMsgs = edgeImitator.findAllMessagesByType(AdminSettingsUpdateMsg.class);
|
||||||
Assert.assertEquals(4, adminSettingsUpdateMsgs.size());
|
Assert.assertEquals(expectedMsgCnt, adminSettingsUpdateMsgs.size());
|
||||||
|
|
||||||
for (AdminSettingsUpdateMsg adminSettingsUpdateMsg : adminSettingsUpdateMsgs) {
|
for (AdminSettingsUpdateMsg adminSettingsUpdateMsg : adminSettingsUpdateMsgs) {
|
||||||
if (adminSettingsUpdateMsg.getKey().equals("general")) {
|
if (adminSettingsUpdateMsg.getKey().equals("general")) {
|
||||||
@ -460,9 +464,9 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
|||||||
Assert.assertNotNull(jsonNode.get("coaps"));
|
Assert.assertNotNull(jsonNode.get("coaps"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateAssetProfiles() throws Exception {
|
private void validateAssetProfiles(int expectedMsgCnt) throws Exception {
|
||||||
List<AssetProfileUpdateMsg> assetProfileUpdateMsgs = edgeImitator.findAllMessagesByType(AssetProfileUpdateMsg.class);
|
List<AssetProfileUpdateMsg> assetProfileUpdateMsgs = edgeImitator.findAllMessagesByType(AssetProfileUpdateMsg.class);
|
||||||
Assert.assertEquals(3, assetProfileUpdateMsgs.size());
|
Assert.assertEquals(expectedMsgCnt, assetProfileUpdateMsgs.size());
|
||||||
AssetProfileUpdateMsg assetProfileUpdateMsg = assetProfileUpdateMsgs.get(0);
|
AssetProfileUpdateMsg assetProfileUpdateMsg = assetProfileUpdateMsgs.get(0);
|
||||||
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, assetProfileUpdateMsg.getMsgType());
|
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, assetProfileUpdateMsg.getMsgType());
|
||||||
UUID assetProfileUUID = new UUID(assetProfileUpdateMsg.getIdMSB(), assetProfileUpdateMsg.getIdLSB());
|
UUID assetProfileUUID = new UUID(assetProfileUpdateMsg.getIdMSB(), assetProfileUpdateMsg.getIdLSB());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user