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