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 com.google.gson.JsonElement;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.eclipse.leshan.client.LeshanClient;
|
|
||||||
import org.eclipse.leshan.client.object.Security;
|
import org.eclipse.leshan.client.object.Security;
|
||||||
import org.eclipse.leshan.core.ResponseCode;
|
import org.eclipse.leshan.core.ResponseCode;
|
||||||
|
import org.eclipse.leshan.server.registration.Registration;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
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.eclipse.leshan.client.object.Security.noSec;
|
||||||
import static org.hamcrest.core.IsInstanceOf.instanceOf;
|
import static org.hamcrest.core.IsInstanceOf.instanceOf;
|
||||||
import static org.junit.Assert.assertEquals;
|
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.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_STARTED;
|
||||||
import static org.thingsboard.server.transport.lwm2m.Lwm2mTestHelper.LwM2MClientState.ON_BOOTSTRAP_SUCCESS;
|
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"))
|
.filter(invocation -> invocation.getMethod().getName().equals("updatedReg"))
|
||||||
.count();
|
.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 {
|
public void testObserveResource_Update_AfterUpdateRegistration() throws Exception {
|
||||||
sendObserveCancelAllWithAwait(lwM2MTestClient.getDeviceIdStr());
|
sendObserveCancelAllWithAwait(lwM2MTestClient.getDeviceIdStr());
|
||||||
|
|
||||||
int cntUpdate = 3;
|
awaitUpdateReg(3);
|
||||||
verify(defaultUplinkMsgHandlerTest, timeout(50000).atLeast(cntUpdate))
|
|
||||||
.updatedReg(Mockito.any(Registration.class));
|
|
||||||
|
|
||||||
sendRpcObserveWithContainsLwM2mSingleResource(idVer_3_0_9);
|
sendRpcObserveWithContainsLwM2mSingleResource(idVer_3_0_9);
|
||||||
|
|
||||||
cntUpdate = 10;
|
int cntUpdate = 10;
|
||||||
verify(defaultUplinkMsgHandlerTest, timeout(50000).atLeast(cntUpdate))
|
verify(defaultUplinkMsgHandlerTest, timeout(50000).atLeast(cntUpdate))
|
||||||
.updateAttrTelemetry(Mockito.any(Registration.class), eq(idVer_3_0_9), eq(null));
|
.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());
|
log.warn("basicTestConnection started -> finishState: [{}] states: {}", finishState, lwM2MTestClient.getClientStates());
|
||||||
return lwM2MTestClient.getClientStates().contains(finishState) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED);
|
return lwM2MTestClient.getClientStates().contains(finishState) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
awaitUpdateReg(1);
|
||||||
await(awaitAlias)
|
await(awaitAlias)
|
||||||
.atMost(40, TimeUnit.SECONDS)
|
.atMost(40, TimeUnit.SECONDS)
|
||||||
.until(() -> {
|
.until(() -> {
|
||||||
@ -262,6 +264,8 @@ public abstract class AbstractSecurityLwM2MIntegrationTest extends AbstractLwM2M
|
|||||||
log.warn("basicTest First Connection started -> finishState: [{}] states: {}", ON_REGISTRATION_SUCCESS, lwM2MTestClient.getClientStates());
|
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);
|
return lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_SUCCESS) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
awaitUpdateReg(1);
|
||||||
await(awaitAlias)
|
await(awaitAlias)
|
||||||
.atMost(40, TimeUnit.SECONDS)
|
.atMost(40, TimeUnit.SECONDS)
|
||||||
.until(() -> {
|
.until(() -> {
|
||||||
@ -288,6 +292,8 @@ public abstract class AbstractSecurityLwM2MIntegrationTest extends AbstractLwM2M
|
|||||||
log.warn("basicTestConnection started -> finishState: [{}] states: {}", ON_REGISTRATION_SUCCESS, lwM2MTestClient.getClientStates());
|
log.warn("basicTestConnection started -> finishState: [{}] states: {}", ON_REGISTRATION_SUCCESS, lwM2MTestClient.getClientStates());
|
||||||
return lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_SUCCESS) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED);
|
return lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_SUCCESS) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
awaitUpdateReg(1);
|
||||||
await(awaitAlias)
|
await(awaitAlias)
|
||||||
.atMost(40, TimeUnit.SECONDS)
|
.atMost(40, TimeUnit.SECONDS)
|
||||||
.until(() -> {
|
.until(() -> {
|
||||||
@ -392,12 +398,12 @@ public abstract class AbstractSecurityLwM2MIntegrationTest extends AbstractLwM2M
|
|||||||
|
|
||||||
|
|
||||||
protected void initDeviceCredentialsNoSek() {
|
protected void initDeviceCredentialsNoSek() {
|
||||||
clientEndpoint = CLIENT_ENDPOINT_NO_SEC + "_" + randomSuffix.nextInt(100);
|
clientEndpoint = CLIENT_ENDPOINT_NO_SEC + "_" + randomSuffix.nextInt(1000);
|
||||||
security = SECURITY_NO_SEC;
|
security = SECURITY_NO_SEC;
|
||||||
deviceCredentials = getDeviceCredentialsNoSec(createNoSecClientCredentials(clientEndpoint));
|
deviceCredentials = getDeviceCredentialsNoSec(createNoSecClientCredentials(clientEndpoint));
|
||||||
}
|
}
|
||||||
protected void initDeviceCredentialsPsk() {
|
protected void initDeviceCredentialsPsk() {
|
||||||
int suf = randomSuffix.nextInt(10);
|
int suf = randomSuffix.nextInt(1000);
|
||||||
clientEndpoint = CLIENT_ENDPOINT_PSK + "_" + suf;
|
clientEndpoint = CLIENT_ENDPOINT_PSK + "_" + suf;
|
||||||
String identity = CLIENT_PSK_IDENTITY + "_" + suf;
|
String identity = CLIENT_PSK_IDENTITY + "_" + suf;
|
||||||
clientCredentials = new PSKClientCredential();
|
clientCredentials = new PSKClientCredential();
|
||||||
|
|||||||
@ -54,6 +54,8 @@ public abstract class AbstractSecurityLwM2MIntegrationDtlsCidLengthTest extends
|
|||||||
final Device device = createLwm2mDevice(deviceCredentials, clientEndpoint, deviceProfile.getId());
|
final Device device = createLwm2mDevice(deviceCredentials, clientEndpoint, deviceProfile.getId());
|
||||||
createNewClient(security, null, true, clientEndpoint, clientDtlsCidLength, device.getId().getId().toString());
|
createNewClient(security, null, true, clientEndpoint, clientDtlsCidLength, device.getId().getId().toString());
|
||||||
lwM2MTestClient.start(true);
|
lwM2MTestClient.start(true);
|
||||||
|
|
||||||
|
awaitUpdateReg(1);
|
||||||
await(awaitAlias)
|
await(awaitAlias)
|
||||||
.atMost(40, TimeUnit.SECONDS)
|
.atMost(40, TimeUnit.SECONDS)
|
||||||
.until(() -> lwM2MTestClient.getClientStates().contains(ON_UPDATE_SUCCESS));
|
.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));
|
.until(() -> lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_SUCCESS) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED));
|
||||||
Assert.assertTrue(lwM2MTestClient.getClientStates().containsAll(expectedStatusesRegistrationLwm2mSuccess));
|
Assert.assertTrue(lwM2MTestClient.getClientStates().containsAll(expectedStatusesRegistrationLwm2mSuccess));
|
||||||
|
|
||||||
|
awaitUpdateReg(1);
|
||||||
await(awaitAlias)
|
await(awaitAlias)
|
||||||
.atMost(40, TimeUnit.SECONDS)
|
.atMost(40, TimeUnit.SECONDS)
|
||||||
.until(() -> lwM2MTestClient.getClientStates().contains(ON_UPDATE_SUCCESS));
|
.until(() -> lwM2MTestClient.getClientStates().contains(ON_UPDATE_SUCCESS));
|
||||||
|
|
||||||
Assert.assertTrue(lwM2MTestClient.getClientStates().containsAll(expectedStatusesRegistrationLwm2mSuccessUpdate));
|
Assert.assertTrue(lwM2MTestClient.getClientStates().containsAll(expectedStatusesRegistrationLwm2mSuccessUpdate));
|
||||||
|
|
||||||
|
long cntBefore = countUpdateReg();
|
||||||
|
awaitUpdateReg((int) (cntBefore + 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
private RegistrationUpdate registrationUpdateNewPort (RegistrationUpdate update, int portValueChange) {
|
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());
|
log.warn("msa basicTestConnection started -> finishState: [{}] states: {}", finishState, lwM2MTestClient.getClientStates());
|
||||||
return lwM2MTestClient.getClientStates().contains(finishState) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED);
|
return lwM2MTestClient.getClientStates().contains(finishState) || lwM2MTestClient.getClientStates().contains(ON_REGISTRATION_STARTED);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
awaitUpdateReg(1);
|
||||||
await(alias + " - " + ON_UPDATE_SUCCESS)
|
await(alias + " - " + ON_UPDATE_SUCCESS)
|
||||||
.atMost(40, TimeUnit.SECONDS)
|
.atMost(40, TimeUnit.SECONDS)
|
||||||
.until(() -> {
|
.until(() -> {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user