Browse Source

fix bug: lwm2m tests dif Port 3

pull/10533/head
nick 3 years ago
parent
commit
d876fc8bfe
  1. 36
      application/src/test/java/org/thingsboard/server/transport/lwm2m/security/diffPort/AbstractLwM2MIntegrationDiffPortTest.java
  2. 3
      application/src/test/resources/logback-test.xml
  3. 2
      common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/store/TbInMemoryRegistrationStore.java
  4. 2
      common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/store/TbLwM2mRedisRegistrationStore.java

36
application/src/test/java/org/thingsboard/server/transport/lwm2m/security/diffPort/AbstractLwM2MIntegrationDiffPortTest.java

@ -22,8 +22,6 @@ import org.eclipse.leshan.core.peer.SocketIdentity;
import org.eclipse.leshan.server.registration.RegistrationStore;
import org.eclipse.leshan.server.registration.RegistrationUpdate;
import org.junit.Assert;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.springframework.boot.test.mock.mockito.SpyBean;
import org.thingsboard.server.common.data.device.profile.Lwm2mDeviceProfileTransportConfiguration;
import org.thingsboard.server.dao.service.DaoSqlTest;
@ -50,6 +48,19 @@ public abstract class AbstractLwM2MIntegrationDiffPortTest extends AbstractSecur
protected void basicTestConnectionDifferentPort(Lwm2mDeviceProfileTransportConfiguration transportConfiguration,
String awaitAlias) throws Exception {
doAnswer((invocation) -> {
Object[] arguments = invocation.getArguments();
log.warn("doAnswer for registrationStoreTest.updateRegistration with args {}", arguments);
// if (arguments.length > 0 && arguments[0] instanceof RegistrationUpdate) {
int portOld = ((RegistrationUpdate) arguments[0]).getPort();
int portValueChange = 5;
arguments[0] = registrationUpdateNewPort((RegistrationUpdate) arguments[0], portValueChange);
int portNew = ((RegistrationUpdate) arguments[0]).getPort();
Assert.assertEquals((portNew - portOld), portValueChange);
// }
return invocation.callRealMethod();
}).when(registrationStoreTest).updateRegistration(any(RegistrationUpdate.class));
createDeviceProfile(transportConfiguration);
createDevice(deviceCredentials, clientEndpoint);
createNewClient(security, null, true, clientEndpoint);
@ -59,27 +70,10 @@ 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));
doAnswer(new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
Object[] arguments = invocation.getArguments();
if (arguments.length > 0 && arguments[0] instanceof RegistrationUpdate) {
log.error("RegistrationUpdate arguments [{}]", arguments);
int portOld = ((RegistrationUpdate) arguments[0]).getPort();
int portValueChange = 5;
arguments[0] = registrationUpdateNewPort((RegistrationUpdate) arguments[0], portValueChange);
int portNew = ((RegistrationUpdate) arguments[0]).getPort();
Assert.assertEquals((portNew - portOld), portValueChange);
}
return invocation.callRealMethod();
}
}).when(registrationStoreTest).updateRegistration(any(RegistrationUpdate.class));
await(awaitAlias)
.atMost(40, TimeUnit.SECONDS)
.until(() -> {
return lwM2MTestClient.getClientStates().contains(ON_UPDATE_SUCCESS);
});
.until(() -> lwM2MTestClient.getClientStates().contains(ON_UPDATE_SUCCESS));
Assert.assertTrue(lwM2MTestClient.getClientStates().containsAll(expectedStatusesRegistrationLwm2mSuccessUpdate));
}

3
application/src/test/resources/logback-test.xml

@ -37,6 +37,9 @@
<!-- Device actor message processor debug for the test scope -->
<!-- <logger name="org.thingsboard.server.actors.device.DeviceActorMessageProcessor" level="DEBUG" />-->
<logger name="org.thingsboard.server.transport.lwm2m.server.store.TbInMemoryRegistrationStore" level="TRACE"/>
<logger name="org.thingsboard.server.transport.lwm2m.server.store.TbLwM2mRedisRegistrationStore" level="TRACE"/>
<logger name="org.thingsboard.server.transport.lwm2m.security.diffPort" level="TRACE"/>
<root level="WARN">
<appender-ref ref="console"/>

2
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/store/TbInMemoryRegistrationStore.java

@ -147,6 +147,8 @@ public class TbInMemoryRegistrationStore implements RegistrationStore, Startable
@Override
public UpdatedRegistration updateRegistration(RegistrationUpdate update) {
// test fix bug Diff port
log.warn("updateRegistration inMemory {}", update);
try {
lock.writeLock().lock();

2
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/store/TbLwM2mRedisRegistrationStore.java

@ -222,6 +222,8 @@ public class TbLwM2mRedisRegistrationStore implements RegistrationStore, Startab
@Override
public UpdatedRegistration updateRegistration(RegistrationUpdate update) {
// test fix bug Diff port
log.warn("updateRegistration Redis {}", update);
Lock lock = null;
try (var connection = connectionFactory.getConnection()) {

Loading…
Cancel
Save