lwm2m: add await before updateReg
This commit is contained in:
		
							parent
							
								
									edad8f4932
								
							
						
					
					
						commit
						7942173e74
					
				@ -21,9 +21,9 @@ import com.google.gson.JsonArray;
 | 
			
		||||
import com.google.gson.JsonElement;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.apache.commons.io.IOUtils;
 | 
			
		||||
import org.eclipse.leshan.client.LeshanClient;
 | 
			
		||||
import org.eclipse.leshan.client.object.Security;
 | 
			
		||||
import org.eclipse.leshan.core.ResponseCode;
 | 
			
		||||
import org.eclipse.leshan.server.registration.Registration;
 | 
			
		||||
import org.junit.After;
 | 
			
		||||
import org.junit.Assert;
 | 
			
		||||
import org.junit.Before;
 | 
			
		||||
@ -90,6 +90,8 @@ import static org.awaitility.Awaitility.await;
 | 
			
		||||
import static org.eclipse.leshan.client.object.Security.noSec;
 | 
			
		||||
import static org.hamcrest.core.IsInstanceOf.instanceOf;
 | 
			
		||||
import static org.junit.Assert.assertEquals;
 | 
			
		||||
import static org.mockito.Mockito.timeout;
 | 
			
		||||
import static org.mockito.Mockito.verify;
 | 
			
		||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 | 
			
		||||
import static org.thingsboard.server.transport.lwm2m.Lwm2mTestHelper.LwM2MClientState.ON_BOOTSTRAP_STARTED;
 | 
			
		||||
import static org.thingsboard.server.transport.lwm2m.Lwm2mTestHelper.LwM2MClientState.ON_BOOTSTRAP_SUCCESS;
 | 
			
		||||
@ -449,4 +451,9 @@ public abstract class AbstractLwM2MIntegrationTest extends AbstractTransportInte
 | 
			
		||||
                .filter(invocation -> invocation.getMethod().getName().equals("updatedReg"))
 | 
			
		||||
                .count();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected void awaitUpdateReg(int cntUpdate) {
 | 
			
		||||
        verify(defaultUplinkMsgHandlerTest, timeout(50000).atLeast(cntUpdate))
 | 
			
		||||
                .updatedReg(Mockito.any(Registration.class));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -322,13 +322,11 @@ public class RpcLwm2mIntegrationObserveTest extends AbstractRpcLwM2MIntegrationO
 | 
			
		||||
    public void testObserveResource_Update_AfterUpdateRegistration() throws Exception {
 | 
			
		||||
        sendObserveCancelAllWithAwait(lwM2MTestClient.getDeviceIdStr());
 | 
			
		||||
 | 
			
		||||
        int cntUpdate = 3;
 | 
			
		||||
        verify(defaultUplinkMsgHandlerTest, timeout(50000).atLeast(cntUpdate))
 | 
			
		||||
                .updatedReg(Mockito.any(Registration.class));
 | 
			
		||||
        awaitUpdateReg(3);
 | 
			
		||||
 | 
			
		||||
        sendRpcObserveWithContainsLwM2mSingleResource(idVer_3_0_9);
 | 
			
		||||
 | 
			
		||||
        cntUpdate = 10;
 | 
			
		||||
        int cntUpdate = 10;
 | 
			
		||||
        verify(defaultUplinkMsgHandlerTest, timeout(50000).atLeast(cntUpdate))
 | 
			
		||||
                .updateAttrTelemetry(Mockito.any(Registration.class), eq(idVer_3_0_9), eq(null));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -218,6 +218,8 @@ public abstract class AbstractSecurityLwM2MIntegrationTest extends AbstractLwM2M
 | 
			
		||||
                    log.warn("basicTestConnection started -> finishState: [{}] states: {}", finishState, lwM2MTestClient.getClientStates());
 | 
			
		||||
                    return lwM2MTestClient.getClientStates().contains(finishState) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED);
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
        awaitUpdateReg(1);
 | 
			
		||||
        await(awaitAlias)
 | 
			
		||||
                .atMost(40, TimeUnit.SECONDS)
 | 
			
		||||
                .until(() -> {
 | 
			
		||||
@ -262,6 +264,8 @@ public abstract class AbstractSecurityLwM2MIntegrationTest extends AbstractLwM2M
 | 
			
		||||
                    log.warn("basicTest First Connection started -> finishState: [{}] states: {}", ON_REGISTRATION_SUCCESS, lwM2MTestClient.getClientStates());
 | 
			
		||||
                    return lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_SUCCESS) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED);
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
        awaitUpdateReg(1);
 | 
			
		||||
        await(awaitAlias)
 | 
			
		||||
                .atMost(40, TimeUnit.SECONDS)
 | 
			
		||||
                .until(() -> {
 | 
			
		||||
@ -288,6 +292,8 @@ public abstract class AbstractSecurityLwM2MIntegrationTest extends AbstractLwM2M
 | 
			
		||||
                    log.warn("basicTestConnection started -> finishState: [{}] states: {}", ON_REGISTRATION_SUCCESS, lwM2MTestClient.getClientStates());
 | 
			
		||||
                    return lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_SUCCESS) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED);
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
        awaitUpdateReg(1);
 | 
			
		||||
        await(awaitAlias)
 | 
			
		||||
                .atMost(40, TimeUnit.SECONDS)
 | 
			
		||||
                .until(() -> {
 | 
			
		||||
@ -392,12 +398,12 @@ public abstract class AbstractSecurityLwM2MIntegrationTest extends AbstractLwM2M
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    protected void initDeviceCredentialsNoSek() {
 | 
			
		||||
        clientEndpoint = CLIENT_ENDPOINT_NO_SEC + "_" + randomSuffix.nextInt(100);
 | 
			
		||||
        clientEndpoint = CLIENT_ENDPOINT_NO_SEC + "_" + randomSuffix.nextInt(1000);
 | 
			
		||||
        security = SECURITY_NO_SEC;
 | 
			
		||||
        deviceCredentials = getDeviceCredentialsNoSec(createNoSecClientCredentials(clientEndpoint));
 | 
			
		||||
    }
 | 
			
		||||
    protected void initDeviceCredentialsPsk() {
 | 
			
		||||
        int suf =  randomSuffix.nextInt(10);
 | 
			
		||||
        int suf =  randomSuffix.nextInt(1000);
 | 
			
		||||
        clientEndpoint = CLIENT_ENDPOINT_PSK + "_" + suf;
 | 
			
		||||
        String identity = CLIENT_PSK_IDENTITY + "_" + suf;
 | 
			
		||||
        clientCredentials = new PSKClientCredential();
 | 
			
		||||
 | 
			
		||||
@ -54,6 +54,8 @@ public abstract class AbstractSecurityLwM2MIntegrationDtlsCidLengthTest extends
 | 
			
		||||
        final Device device = createLwm2mDevice(deviceCredentials, clientEndpoint, deviceProfile.getId());
 | 
			
		||||
        createNewClient(security, null, true, clientEndpoint, clientDtlsCidLength, device.getId().getId().toString());
 | 
			
		||||
        lwM2MTestClient.start(true);
 | 
			
		||||
 | 
			
		||||
        awaitUpdateReg(1);
 | 
			
		||||
        await(awaitAlias)
 | 
			
		||||
                .atMost(40, TimeUnit.SECONDS)
 | 
			
		||||
                .until(() -> lwM2MTestClient.getClientStates().contains(ON_UPDATE_SUCCESS));
 | 
			
		||||
 | 
			
		||||
@ -70,11 +70,15 @@ public abstract class AbstractLwM2MIntegrationDiffPortTest extends AbstractSecur
 | 
			
		||||
                .until(() -> lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_SUCCESS) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED));
 | 
			
		||||
        Assert.assertTrue(lwM2MTestClient.getClientStates().containsAll(expectedStatusesRegistrationLwm2mSuccess));
 | 
			
		||||
 | 
			
		||||
        awaitUpdateReg(1);
 | 
			
		||||
        await(awaitAlias)
 | 
			
		||||
                .atMost(40, TimeUnit.SECONDS)
 | 
			
		||||
                .until(() -> lwM2MTestClient.getClientStates().contains(ON_UPDATE_SUCCESS));
 | 
			
		||||
 | 
			
		||||
        Assert.assertTrue(lwM2MTestClient.getClientStates().containsAll(expectedStatusesRegistrationLwm2mSuccessUpdate));
 | 
			
		||||
 | 
			
		||||
        long cntBefore = countUpdateReg();
 | 
			
		||||
        awaitUpdateReg((int) (cntBefore + 1));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private RegistrationUpdate registrationUpdateNewPort (RegistrationUpdate update, int portValueChange) {
 | 
			
		||||
 | 
			
		||||
@ -214,6 +214,8 @@ public class AbstractLwm2mClientTest extends AbstractContainerTest {
 | 
			
		||||
                    log.warn("msa basicTestConnection started -> finishState: [{}] states: {}", finishState, lwM2MTestClient.getClientStates());
 | 
			
		||||
                    return lwM2MTestClient.getClientStates().contains(finishState) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED);
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
        awaitUpdateReg(1);
 | 
			
		||||
        await(alias + " - " + ON_UPDATE_SUCCESS)
 | 
			
		||||
                .atMost(40, TimeUnit.SECONDS)
 | 
			
		||||
                .until(() -> {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user