From 7942173e74781f403503eda3eb3d05547695b1db Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 18 Oct 2024 14:55:01 +0300 Subject: [PATCH] lwm2m: add await before updateReg --- .../transport/lwm2m/AbstractLwM2MIntegrationTest.java | 9 ++++++++- .../lwm2m/rpc/sql/RpcLwm2mIntegrationObserveTest.java | 6 ++---- .../security/AbstractSecurityLwM2MIntegrationTest.java | 10 ++++++++-- ...tractSecurityLwM2MIntegrationDtlsCidLengthTest.java | 2 ++ .../diffPort/AbstractLwM2MIntegrationDiffPortTest.java | 4 ++++ .../connectivity/lwm2m/AbstractLwm2mClientTest.java | 2 ++ 6 files changed, 26 insertions(+), 7 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java b/application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java index e0080f5b16..6d25701703 100644 --- a/application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java +++ b/application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java @@ -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)); + } } diff --git a/application/src/test/java/org/thingsboard/server/transport/lwm2m/rpc/sql/RpcLwm2mIntegrationObserveTest.java b/application/src/test/java/org/thingsboard/server/transport/lwm2m/rpc/sql/RpcLwm2mIntegrationObserveTest.java index ec9734be26..4adf1ec000 100644 --- a/application/src/test/java/org/thingsboard/server/transport/lwm2m/rpc/sql/RpcLwm2mIntegrationObserveTest.java +++ b/application/src/test/java/org/thingsboard/server/transport/lwm2m/rpc/sql/RpcLwm2mIntegrationObserveTest.java @@ -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)); } diff --git a/application/src/test/java/org/thingsboard/server/transport/lwm2m/security/AbstractSecurityLwM2MIntegrationTest.java b/application/src/test/java/org/thingsboard/server/transport/lwm2m/security/AbstractSecurityLwM2MIntegrationTest.java index b9fe00a66e..eaade683d8 100644 --- a/application/src/test/java/org/thingsboard/server/transport/lwm2m/security/AbstractSecurityLwM2MIntegrationTest.java +++ b/application/src/test/java/org/thingsboard/server/transport/lwm2m/security/AbstractSecurityLwM2MIntegrationTest.java @@ -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(); diff --git a/application/src/test/java/org/thingsboard/server/transport/lwm2m/security/cid/AbstractSecurityLwM2MIntegrationDtlsCidLengthTest.java b/application/src/test/java/org/thingsboard/server/transport/lwm2m/security/cid/AbstractSecurityLwM2MIntegrationDtlsCidLengthTest.java index 490a953f08..5b3457fe92 100644 --- a/application/src/test/java/org/thingsboard/server/transport/lwm2m/security/cid/AbstractSecurityLwM2MIntegrationDtlsCidLengthTest.java +++ b/application/src/test/java/org/thingsboard/server/transport/lwm2m/security/cid/AbstractSecurityLwM2MIntegrationDtlsCidLengthTest.java @@ -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)); diff --git a/application/src/test/java/org/thingsboard/server/transport/lwm2m/security/diffPort/AbstractLwM2MIntegrationDiffPortTest.java b/application/src/test/java/org/thingsboard/server/transport/lwm2m/security/diffPort/AbstractLwM2MIntegrationDiffPortTest.java index 760849ff05..7e3e6173ca 100644 --- a/application/src/test/java/org/thingsboard/server/transport/lwm2m/security/diffPort/AbstractLwM2MIntegrationDiffPortTest.java +++ b/application/src/test/java/org/thingsboard/server/transport/lwm2m/security/diffPort/AbstractLwM2MIntegrationDiffPortTest.java @@ -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) { diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/AbstractLwm2mClientTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/AbstractLwm2mClientTest.java index bb5c642e91..7b705ccd61 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/AbstractLwm2mClientTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/lwm2m/AbstractLwm2mClientTest.java @@ -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(() -> {