fix bug: lwm2m tests dif Port 3

This commit is contained in:
nick 2024-04-10 17:14:45 +03:00
parent d2d68faee7
commit d876fc8bfe
4 changed files with 22 additions and 21 deletions

View File

@ -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));
}

View File

@ -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"/>

View File

@ -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();

View File

@ -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()) {