Merge branch 'master' into develop/3.5
This commit is contained in:
		
						commit
						44a7fd5fc6
					
				@ -28,6 +28,8 @@ import java.util.concurrent.atomic.AtomicInteger;
 | 
				
			|||||||
@Slf4j
 | 
					@Slf4j
 | 
				
			||||||
public abstract class AbstractTransportIntegrationTest extends AbstractControllerTest {
 | 
					public abstract class AbstractTransportIntegrationTest extends AbstractControllerTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    protected static final int DEFAULT_WAIT_TIMEOUT_SECONDS = 10;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected static final String MQTT_URL = "tcp://localhost:1883";
 | 
					    protected static final String MQTT_URL = "tcp://localhost:1883";
 | 
				
			||||||
    protected static final String COAP_BASE_URL = "coap://localhost:5683/api/v1/";
 | 
					    protected static final String COAP_BASE_URL = "coap://localhost:5683/api/v1/";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -237,7 +237,7 @@ public abstract class AbstractCoapAttributesIntegrationTest extends AbstractCoap
 | 
				
			|||||||
        CoapObserveRelation observeRelation = client.getObserveRelation(callbackCoap);
 | 
					        CoapObserveRelation observeRelation = client.getObserveRelation(callbackCoap);
 | 
				
			||||||
        String awaitAlias = "await Json Test Subscribe To AttributesUpdates (client.getObserveRelation)";
 | 
					        String awaitAlias = "await Json Test Subscribe To AttributesUpdates (client.getObserveRelation)";
 | 
				
			||||||
        await(awaitAlias)
 | 
					        await(awaitAlias)
 | 
				
			||||||
                .atMost(10, TimeUnit.SECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
					                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
				
			||||||
                        callbackCoap.getObserve() != null &&
 | 
					                        callbackCoap.getObserve() != null &&
 | 
				
			||||||
                        0 == callbackCoap.getObserve().intValue());
 | 
					                        0 == callbackCoap.getObserve().intValue());
 | 
				
			||||||
@ -251,7 +251,7 @@ public abstract class AbstractCoapAttributesIntegrationTest extends AbstractCoap
 | 
				
			|||||||
        doPostAsync("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/attributes/SHARED_SCOPE", SHARED_ATTRIBUTES_PAYLOAD, String.class, status().isOk());
 | 
					        doPostAsync("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/attributes/SHARED_SCOPE", SHARED_ATTRIBUTES_PAYLOAD, String.class, status().isOk());
 | 
				
			||||||
        awaitAlias = "await Json Test Subscribe To AttributesUpdates (add attributes)";
 | 
					        awaitAlias = "await Json Test Subscribe To AttributesUpdates (add attributes)";
 | 
				
			||||||
        await(awaitAlias)
 | 
					        await(awaitAlias)
 | 
				
			||||||
                .atMost(10, TimeUnit.SECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
					                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
				
			||||||
                        callbackCoap.getObserve() != null &&
 | 
					                        callbackCoap.getObserve() != null &&
 | 
				
			||||||
                        expectedObserveForAttributesUpdate == callbackCoap.getObserve().intValue());
 | 
					                        expectedObserveForAttributesUpdate == callbackCoap.getObserve().intValue());
 | 
				
			||||||
@ -261,7 +261,7 @@ public abstract class AbstractCoapAttributesIntegrationTest extends AbstractCoap
 | 
				
			|||||||
        doDelete("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/SHARED_SCOPE?keys=sharedJson", String.class);
 | 
					        doDelete("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/SHARED_SCOPE?keys=sharedJson", String.class);
 | 
				
			||||||
        awaitAlias = "await Json Test Subscribe To AttributesUpdates (deleted attributes)";
 | 
					        awaitAlias = "await Json Test Subscribe To AttributesUpdates (deleted attributes)";
 | 
				
			||||||
        await(awaitAlias)
 | 
					        await(awaitAlias)
 | 
				
			||||||
                .atMost(10, TimeUnit.SECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
					                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
				
			||||||
                        callbackCoap.getObserve() != null &&
 | 
					                        callbackCoap.getObserve() != null &&
 | 
				
			||||||
                        expectedObserveForAttributesDelete == callbackCoap.getObserve().intValue());
 | 
					                        expectedObserveForAttributesDelete == callbackCoap.getObserve().intValue());
 | 
				
			||||||
@ -284,7 +284,7 @@ public abstract class AbstractCoapAttributesIntegrationTest extends AbstractCoap
 | 
				
			|||||||
        String awaitAlias = "await Proto Test Subscribe To Attributes Updates (add attributes)";
 | 
					        String awaitAlias = "await Proto Test Subscribe To Attributes Updates (add attributes)";
 | 
				
			||||||
        CoapObserveRelation observeRelation = client.getObserveRelation(callbackCoap);
 | 
					        CoapObserveRelation observeRelation = client.getObserveRelation(callbackCoap);
 | 
				
			||||||
        await(awaitAlias)
 | 
					        await(awaitAlias)
 | 
				
			||||||
                .atMost(10, TimeUnit.SECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
					                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
				
			||||||
                        callbackCoap.getObserve() != null &&
 | 
					                        callbackCoap.getObserve() != null &&
 | 
				
			||||||
                        0 == callbackCoap.getObserve().intValue());
 | 
					                        0 == callbackCoap.getObserve().intValue());
 | 
				
			||||||
@ -299,7 +299,7 @@ public abstract class AbstractCoapAttributesIntegrationTest extends AbstractCoap
 | 
				
			|||||||
        doPostAsync("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/attributes/SHARED_SCOPE", SHARED_ATTRIBUTES_PAYLOAD, String.class, status().isOk());
 | 
					        doPostAsync("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/attributes/SHARED_SCOPE", SHARED_ATTRIBUTES_PAYLOAD, String.class, status().isOk());
 | 
				
			||||||
        awaitAlias = "await Proto Test Subscribe To Attributes Updates (add attributes)";
 | 
					        awaitAlias = "await Proto Test Subscribe To Attributes Updates (add attributes)";
 | 
				
			||||||
        await(awaitAlias)
 | 
					        await(awaitAlias)
 | 
				
			||||||
                .atMost(10, TimeUnit.SECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
					                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
				
			||||||
                        callbackCoap.getObserve() != null &&
 | 
					                        callbackCoap.getObserve() != null &&
 | 
				
			||||||
                        expectedObserveForAttributesUpdate == callbackCoap.getObserve().intValue());
 | 
					                        expectedObserveForAttributesUpdate == callbackCoap.getObserve().intValue());
 | 
				
			||||||
@ -309,7 +309,7 @@ public abstract class AbstractCoapAttributesIntegrationTest extends AbstractCoap
 | 
				
			|||||||
        doDelete("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/SHARED_SCOPE?keys=sharedJson", String.class);
 | 
					        doDelete("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/SHARED_SCOPE?keys=sharedJson", String.class);
 | 
				
			||||||
        awaitAlias = "await Proto Test Subscribe To Attributes Updates (deleted attributes)";
 | 
					        awaitAlias = "await Proto Test Subscribe To Attributes Updates (deleted attributes)";
 | 
				
			||||||
        await(awaitAlias)
 | 
					        await(awaitAlias)
 | 
				
			||||||
                .atMost(10, TimeUnit.SECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
					                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
				
			||||||
                        callbackCoap.getObserve() != null &&
 | 
					                        callbackCoap.getObserve() != null &&
 | 
				
			||||||
                        expectedObserveForAttributesDelete == callbackCoap.getObserve().intValue());
 | 
					                        expectedObserveForAttributesDelete == callbackCoap.getObserve().intValue());
 | 
				
			||||||
@ -404,7 +404,7 @@ public abstract class AbstractCoapAttributesIntegrationTest extends AbstractCoap
 | 
				
			|||||||
    private void awaitClientAfterCancelObserve() {
 | 
					    private void awaitClientAfterCancelObserve() {
 | 
				
			||||||
        Awaitility.await("awaitClientAfterCancelObserve")
 | 
					        Awaitility.await("awaitClientAfterCancelObserve")
 | 
				
			||||||
                .pollInterval(10, TimeUnit.MILLISECONDS)
 | 
					                .pollInterval(10, TimeUnit.MILLISECONDS)
 | 
				
			||||||
                .atMost(5, TimeUnit.SECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> {
 | 
					                .until(() -> {
 | 
				
			||||||
                    log.trace("awaiting defaultTransportService.sessions is empty");
 | 
					                    log.trace("awaiting defaultTransportService.sessions is empty");
 | 
				
			||||||
                    return defaultTransportService.sessions.isEmpty();
 | 
					                    return defaultTransportService.sessions.isEmpty();
 | 
				
			||||||
 | 
				
			|||||||
@ -79,7 +79,7 @@ public abstract class AbstractCoapServerSideRpcIntegrationTest extends AbstractC
 | 
				
			|||||||
        CoapObserveRelation observeRelation = client.getObserveRelation(callbackCoap);
 | 
					        CoapObserveRelation observeRelation = client.getObserveRelation(callbackCoap);
 | 
				
			||||||
        String awaitAlias = "await One Way Rpc (client.getObserveRelation)";
 | 
					        String awaitAlias = "await One Way Rpc (client.getObserveRelation)";
 | 
				
			||||||
        await(awaitAlias)
 | 
					        await(awaitAlias)
 | 
				
			||||||
                .atMost(10, TimeUnit.SECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> CoAP.ResponseCode.VALID.equals(callbackCoap.getResponseCode()) &&
 | 
					                .until(() -> CoAP.ResponseCode.VALID.equals(callbackCoap.getResponseCode()) &&
 | 
				
			||||||
                        callbackCoap.getObserve() != null &&
 | 
					                        callbackCoap.getObserve() != null &&
 | 
				
			||||||
                        0 == callbackCoap.getObserve().intValue());
 | 
					                        0 == callbackCoap.getObserve().intValue());
 | 
				
			||||||
@ -90,7 +90,7 @@ public abstract class AbstractCoapServerSideRpcIntegrationTest extends AbstractC
 | 
				
			|||||||
        String result = doPostAsync("/api/rpc/oneway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
					        String result = doPostAsync("/api/rpc/oneway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
				
			||||||
        awaitAlias = "await One Way Rpc setGpio(method, params, value)";
 | 
					        awaitAlias = "await One Way Rpc setGpio(method, params, value)";
 | 
				
			||||||
        await(awaitAlias)
 | 
					        await(awaitAlias)
 | 
				
			||||||
                .atMost(10, TimeUnit.SECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
					                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
				
			||||||
                        callbackCoap.getObserve() != null &&
 | 
					                        callbackCoap.getObserve() != null &&
 | 
				
			||||||
                        expectedObserveCountAfterGpioRequest == callbackCoap.getObserve().intValue());
 | 
					                        expectedObserveCountAfterGpioRequest == callbackCoap.getObserve().intValue());
 | 
				
			||||||
@ -107,7 +107,7 @@ public abstract class AbstractCoapServerSideRpcIntegrationTest extends AbstractC
 | 
				
			|||||||
        CoapObserveRelation observeRelation = client.getObserveRelation(callbackCoap);
 | 
					        CoapObserveRelation observeRelation = client.getObserveRelation(callbackCoap);
 | 
				
			||||||
        String awaitAlias = "await Two Way Rpc (client.getObserveRelation)";
 | 
					        String awaitAlias = "await Two Way Rpc (client.getObserveRelation)";
 | 
				
			||||||
        await(awaitAlias)
 | 
					        await(awaitAlias)
 | 
				
			||||||
                .atMost(10, TimeUnit.SECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> CoAP.ResponseCode.VALID.equals(callbackCoap.getResponseCode()) &&
 | 
					                .until(() -> CoAP.ResponseCode.VALID.equals(callbackCoap.getResponseCode()) &&
 | 
				
			||||||
                        callbackCoap.getObserve() != null &&
 | 
					                        callbackCoap.getObserve() != null &&
 | 
				
			||||||
                        0 == callbackCoap.getObserve().intValue());
 | 
					                        0 == callbackCoap.getObserve().intValue());
 | 
				
			||||||
@ -119,7 +119,7 @@ public abstract class AbstractCoapServerSideRpcIntegrationTest extends AbstractC
 | 
				
			|||||||
        String actualResult = doPostAsync("/api/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
					        String actualResult = doPostAsync("/api/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
				
			||||||
        awaitAlias = "await Two Way Rpc (setGpio(method, params, value) first";
 | 
					        awaitAlias = "await Two Way Rpc (setGpio(method, params, value) first";
 | 
				
			||||||
        await(awaitAlias)
 | 
					        await(awaitAlias)
 | 
				
			||||||
                .atMost(10, TimeUnit.SECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
					                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
				
			||||||
                        callbackCoap.getObserve() != null &&
 | 
					                        callbackCoap.getObserve() != null &&
 | 
				
			||||||
                        expectedObserveCountAfterGpioRequest1 == callbackCoap.getObserve().intValue());
 | 
					                        expectedObserveCountAfterGpioRequest1 == callbackCoap.getObserve().intValue());
 | 
				
			||||||
@ -129,7 +129,7 @@ public abstract class AbstractCoapServerSideRpcIntegrationTest extends AbstractC
 | 
				
			|||||||
        actualResult = doPostAsync("/api/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
					        actualResult = doPostAsync("/api/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
				
			||||||
        awaitAlias = "await Two Way Rpc (setGpio(method, params, value) first";
 | 
					        awaitAlias = "await Two Way Rpc (setGpio(method, params, value) first";
 | 
				
			||||||
        await(awaitAlias)
 | 
					        await(awaitAlias)
 | 
				
			||||||
                .atMost(10, TimeUnit.SECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
					                .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) &&
 | 
				
			||||||
                        callbackCoap.getObserve() != null &&
 | 
					                        callbackCoap.getObserve() != null &&
 | 
				
			||||||
                        expectedObserveCountAfterGpioRequest2 == callbackCoap.getObserve().intValue());
 | 
					                        expectedObserveCountAfterGpioRequest2 == callbackCoap.getObserve().intValue());
 | 
				
			||||||
 | 
				
			|||||||
@ -62,12 +62,12 @@ import org.thingsboard.server.common.data.query.EntityKeyType;
 | 
				
			|||||||
import org.thingsboard.server.common.data.query.SingleEntityFilter;
 | 
					import org.thingsboard.server.common.data.query.SingleEntityFilter;
 | 
				
			||||||
import org.thingsboard.server.common.data.security.DeviceCredentials;
 | 
					import org.thingsboard.server.common.data.security.DeviceCredentials;
 | 
				
			||||||
import org.thingsboard.server.common.data.security.DeviceCredentialsType;
 | 
					import org.thingsboard.server.common.data.security.DeviceCredentialsType;
 | 
				
			||||||
import org.thingsboard.server.controller.AbstractControllerTest;
 | 
					 | 
				
			||||||
import org.thingsboard.server.dao.service.DaoSqlTest;
 | 
					import org.thingsboard.server.dao.service.DaoSqlTest;
 | 
				
			||||||
import org.thingsboard.server.service.telemetry.cmd.TelemetryPluginCmdsWrapper;
 | 
					import org.thingsboard.server.service.telemetry.cmd.TelemetryPluginCmdsWrapper;
 | 
				
			||||||
import org.thingsboard.server.service.telemetry.cmd.v2.EntityDataCmd;
 | 
					import org.thingsboard.server.service.telemetry.cmd.v2.EntityDataCmd;
 | 
				
			||||||
import org.thingsboard.server.service.telemetry.cmd.v2.EntityDataUpdate;
 | 
					import org.thingsboard.server.service.telemetry.cmd.v2.EntityDataUpdate;
 | 
				
			||||||
import org.thingsboard.server.service.telemetry.cmd.v2.LatestValueCmd;
 | 
					import org.thingsboard.server.service.telemetry.cmd.v2.LatestValueCmd;
 | 
				
			||||||
 | 
					import org.thingsboard.server.transport.AbstractTransportIntegrationTest;
 | 
				
			||||||
import org.thingsboard.server.transport.lwm2m.client.LwM2MTestClient;
 | 
					import org.thingsboard.server.transport.lwm2m.client.LwM2MTestClient;
 | 
				
			||||||
import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClientContext;
 | 
					import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClientContext;
 | 
				
			||||||
import org.thingsboard.server.transport.lwm2m.server.uplink.DefaultLwM2mUplinkMsgHandler;
 | 
					import org.thingsboard.server.transport.lwm2m.server.uplink.DefaultLwM2mUplinkMsgHandler;
 | 
				
			||||||
@ -105,7 +105,7 @@ import static org.thingsboard.server.transport.lwm2m.Lwm2mTestHelper.LwM2MProfil
 | 
				
			|||||||
})
 | 
					})
 | 
				
			||||||
@Slf4j
 | 
					@Slf4j
 | 
				
			||||||
@DaoSqlTest
 | 
					@DaoSqlTest
 | 
				
			||||||
public abstract class AbstractLwM2MIntegrationTest extends AbstractControllerTest {
 | 
					public abstract class AbstractLwM2MIntegrationTest extends AbstractTransportIntegrationTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @SpyBean
 | 
					    @SpyBean
 | 
				
			||||||
    DefaultLwM2mUplinkMsgHandler defaultLwM2mUplinkMsgHandlerTest;
 | 
					    DefaultLwM2mUplinkMsgHandler defaultLwM2mUplinkMsgHandlerTest;
 | 
				
			||||||
@ -372,7 +372,7 @@ public abstract class AbstractLwM2MIntegrationTest extends AbstractControllerTes
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private static void awaitServersDestroy() {
 | 
					    private static void awaitServersDestroy() {
 | 
				
			||||||
        await("One of servers ports number is not free")
 | 
					        await("One of servers ports number is not free")
 | 
				
			||||||
                .atMost(3000, TimeUnit.MILLISECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> isServerPortsAvailable() == null);
 | 
					                .until(() -> isServerPortsAvailable() == null);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -391,7 +391,7 @@ public abstract class AbstractLwM2MIntegrationTest extends AbstractControllerTes
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private static void awaitClientDestroy(LeshanClient leshanClient) {
 | 
					    private static void awaitClientDestroy(LeshanClient leshanClient) {
 | 
				
			||||||
        await("Destroy LeshanClient: delete All is registered Servers.")
 | 
					        await("Destroy LeshanClient: delete All is registered Servers.")
 | 
				
			||||||
                .atMost(2000, TimeUnit.MILLISECONDS)
 | 
					                .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 | 
				
			||||||
                .until(() -> leshanClient.getRegisteredServers().size() == 0);
 | 
					                .until(() -> leshanClient.getRegisteredServers().size() == 0);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -125,14 +125,14 @@ public abstract class AbstractMqttAttributesIntegrationTest extends AbstractMqtt
 | 
				
			|||||||
        client.subscribeAndWait(attrSubTopic, MqttQoS.AT_MOST_ONCE);
 | 
					        client.subscribeAndWait(attrSubTopic, MqttQoS.AT_MOST_ONCE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        doPostAsync("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/attributes/SHARED_SCOPE", SHARED_ATTRIBUTES_PAYLOAD, String.class, status().isOk());
 | 
					        doPostAsync("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/attributes/SHARED_SCOPE", SHARED_ATTRIBUTES_PAYLOAD, String.class, status().isOk());
 | 
				
			||||||
        onUpdateCallback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        onUpdateCallback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        validateUpdateAttributesJsonResponse(onUpdateCallback, SHARED_ATTRIBUTES_PAYLOAD);
 | 
					        validateUpdateAttributesJsonResponse(onUpdateCallback, SHARED_ATTRIBUTES_PAYLOAD);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        MqttTestCallback onDeleteCallback = new MqttTestCallback();
 | 
					        MqttTestCallback onDeleteCallback = new MqttTestCallback();
 | 
				
			||||||
        client.setCallback(onDeleteCallback);
 | 
					        client.setCallback(onDeleteCallback);
 | 
				
			||||||
        doDelete("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/SHARED_SCOPE?keys=sharedJson", String.class);
 | 
					        doDelete("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/SHARED_SCOPE?keys=sharedJson", String.class);
 | 
				
			||||||
        onDeleteCallback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        onDeleteCallback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        validateUpdateAttributesJsonResponse(onDeleteCallback, SHARED_ATTRIBUTES_DELETED_RESPONSE);
 | 
					        validateUpdateAttributesJsonResponse(onDeleteCallback, SHARED_ATTRIBUTES_DELETED_RESPONSE);
 | 
				
			||||||
        client.disconnect();
 | 
					        client.disconnect();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -145,13 +145,13 @@ public abstract class AbstractMqttAttributesIntegrationTest extends AbstractMqtt
 | 
				
			|||||||
        client.subscribeAndWait(attrSubTopic, MqttQoS.AT_MOST_ONCE);
 | 
					        client.subscribeAndWait(attrSubTopic, MqttQoS.AT_MOST_ONCE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        doPostAsync("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/attributes/SHARED_SCOPE", SHARED_ATTRIBUTES_PAYLOAD, String.class, status().isOk());
 | 
					        doPostAsync("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/attributes/SHARED_SCOPE", SHARED_ATTRIBUTES_PAYLOAD, String.class, status().isOk());
 | 
				
			||||||
        onUpdateCallback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        onUpdateCallback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        validateUpdateAttributesProtoResponse(onUpdateCallback);
 | 
					        validateUpdateAttributesProtoResponse(onUpdateCallback);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        MqttTestCallback onDeleteCallback = new MqttTestCallback();
 | 
					        MqttTestCallback onDeleteCallback = new MqttTestCallback();
 | 
				
			||||||
        client.setCallback(onDeleteCallback);
 | 
					        client.setCallback(onDeleteCallback);
 | 
				
			||||||
        doDelete("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/SHARED_SCOPE?keys=sharedJson", String.class);
 | 
					        doDelete("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/SHARED_SCOPE?keys=sharedJson", String.class);
 | 
				
			||||||
        onDeleteCallback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        onDeleteCallback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        validateDeleteAttributesProtoResponse(onDeleteCallback);
 | 
					        validateDeleteAttributesProtoResponse(onDeleteCallback);
 | 
				
			||||||
        client.disconnect();
 | 
					        client.disconnect();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -209,7 +209,7 @@ public abstract class AbstractMqttAttributesIntegrationTest extends AbstractMqtt
 | 
				
			|||||||
        client.subscribeAndWait(GATEWAY_ATTRIBUTES_TOPIC, MqttQoS.AT_MOST_ONCE);
 | 
					        client.subscribeAndWait(GATEWAY_ATTRIBUTES_TOPIC, MqttQoS.AT_MOST_ONCE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        doPostAsync("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/attributes/SHARED_SCOPE", SHARED_ATTRIBUTES_PAYLOAD, String.class, status().isOk());
 | 
					        doPostAsync("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/attributes/SHARED_SCOPE", SHARED_ATTRIBUTES_PAYLOAD, String.class, status().isOk());
 | 
				
			||||||
        onUpdateCallback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        onUpdateCallback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        validateJsonGatewayUpdateAttributesResponse(onUpdateCallback, deviceName, SHARED_ATTRIBUTES_PAYLOAD);
 | 
					        validateJsonGatewayUpdateAttributesResponse(onUpdateCallback, deviceName, SHARED_ATTRIBUTES_PAYLOAD);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -217,7 +217,7 @@ public abstract class AbstractMqttAttributesIntegrationTest extends AbstractMqtt
 | 
				
			|||||||
        client.setCallback(onDeleteCallback);
 | 
					        client.setCallback(onDeleteCallback);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        doDelete("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/SHARED_SCOPE?keys=sharedJson", String.class);
 | 
					        doDelete("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/SHARED_SCOPE?keys=sharedJson", String.class);
 | 
				
			||||||
        onDeleteCallback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        onDeleteCallback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        validateJsonGatewayUpdateAttributesResponse(onDeleteCallback, deviceName, SHARED_ATTRIBUTES_DELETED_RESPONSE);
 | 
					        validateJsonGatewayUpdateAttributesResponse(onDeleteCallback, deviceName, SHARED_ATTRIBUTES_DELETED_RESPONSE);
 | 
				
			||||||
        client.disconnect();
 | 
					        client.disconnect();
 | 
				
			||||||
@ -260,7 +260,7 @@ public abstract class AbstractMqttAttributesIntegrationTest extends AbstractMqtt
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected void validateProtoGatewayUpdateAttributesResponse(MqttTestCallback callback, String deviceName) throws InvalidProtocolBufferException, InterruptedException {
 | 
					    protected void validateProtoGatewayUpdateAttributesResponse(MqttTestCallback callback, String deviceName) throws InvalidProtocolBufferException, InterruptedException {
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertNotNull(callback.getPayloadBytes());
 | 
					        assertNotNull(callback.getPayloadBytes());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        TransportProtos.AttributeUpdateNotificationMsg.Builder attributeUpdateNotificationMsgBuilder = TransportProtos.AttributeUpdateNotificationMsg.newBuilder();
 | 
					        TransportProtos.AttributeUpdateNotificationMsg.Builder attributeUpdateNotificationMsgBuilder = TransportProtos.AttributeUpdateNotificationMsg.newBuilder();
 | 
				
			||||||
@ -285,7 +285,7 @@ public abstract class AbstractMqttAttributesIntegrationTest extends AbstractMqtt
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected void validateProtoGatewayDeleteAttributesResponse(MqttTestCallback callback, String deviceName) throws InvalidProtocolBufferException, InterruptedException {
 | 
					    protected void validateProtoGatewayDeleteAttributesResponse(MqttTestCallback callback, String deviceName) throws InvalidProtocolBufferException, InterruptedException {
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertNotNull(callback.getPayloadBytes());
 | 
					        assertNotNull(callback.getPayloadBytes());
 | 
				
			||||||
        TransportProtos.AttributeUpdateNotificationMsg.Builder attributeUpdateNotificationMsgBuilder = TransportProtos.AttributeUpdateNotificationMsg.newBuilder();
 | 
					        TransportProtos.AttributeUpdateNotificationMsg.Builder attributeUpdateNotificationMsgBuilder = TransportProtos.AttributeUpdateNotificationMsg.newBuilder();
 | 
				
			||||||
        attributeUpdateNotificationMsgBuilder.addSharedDeleted("sharedJson");
 | 
					        attributeUpdateNotificationMsgBuilder.addSharedDeleted("sharedJson");
 | 
				
			||||||
@ -538,13 +538,13 @@ public abstract class AbstractMqttAttributesIntegrationTest extends AbstractMqtt
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected void validateJsonResponse(MqttTestCallback callback, String expectedResponse) throws InterruptedException {
 | 
					    protected void validateJsonResponse(MqttTestCallback callback, String expectedResponse) throws InterruptedException {
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertEquals(MqttQoS.AT_MOST_ONCE.value(), callback.getQoS());
 | 
					        assertEquals(MqttQoS.AT_MOST_ONCE.value(), callback.getQoS());
 | 
				
			||||||
        assertEquals(JacksonUtil.toJsonNode(expectedResponse), JacksonUtil.fromBytes(callback.getPayloadBytes()));
 | 
					        assertEquals(JacksonUtil.toJsonNode(expectedResponse), JacksonUtil.fromBytes(callback.getPayloadBytes()));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected void validateProtoResponse(MqttTestCallback callback, TransportProtos.GetAttributeResponseMsg expectedResponse) throws InterruptedException, InvalidProtocolBufferException {
 | 
					    protected void validateProtoResponse(MqttTestCallback callback, TransportProtos.GetAttributeResponseMsg expectedResponse) throws InterruptedException, InvalidProtocolBufferException {
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertEquals(MqttQoS.AT_MOST_ONCE.value(), callback.getQoS());
 | 
					        assertEquals(MqttQoS.AT_MOST_ONCE.value(), callback.getQoS());
 | 
				
			||||||
        TransportProtos.GetAttributeResponseMsg actualAttributesResponse = TransportProtos.GetAttributeResponseMsg.parseFrom(callback.getPayloadBytes());
 | 
					        TransportProtos.GetAttributeResponseMsg actualAttributesResponse = TransportProtos.GetAttributeResponseMsg.parseFrom(callback.getPayloadBytes());
 | 
				
			||||||
        assertEquals(expectedResponse.getRequestId(), actualAttributesResponse.getRequestId());
 | 
					        assertEquals(expectedResponse.getRequestId(), actualAttributesResponse.getRequestId());
 | 
				
			||||||
@ -567,14 +567,14 @@ public abstract class AbstractMqttAttributesIntegrationTest extends AbstractMqtt
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected void validateJsonResponseGateway(MqttTestCallback callback, String deviceName, String expectedValues) throws InterruptedException {
 | 
					    protected void validateJsonResponseGateway(MqttTestCallback callback, String deviceName, String expectedValues) throws InterruptedException {
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertEquals(MqttQoS.AT_LEAST_ONCE.value(), callback.getQoS());
 | 
					        assertEquals(MqttQoS.AT_LEAST_ONCE.value(), callback.getQoS());
 | 
				
			||||||
        String expectedRequestPayload = "{\"id\":1,\"device\":\"" + deviceName + "\",\"values\":" + expectedValues + "}";
 | 
					        String expectedRequestPayload = "{\"id\":1,\"device\":\"" + deviceName + "\",\"values\":" + expectedValues + "}";
 | 
				
			||||||
        assertEquals(JacksonUtil.toJsonNode(expectedRequestPayload), JacksonUtil.fromBytes(callback.getPayloadBytes()));
 | 
					        assertEquals(JacksonUtil.toJsonNode(expectedRequestPayload), JacksonUtil.fromBytes(callback.getPayloadBytes()));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected void validateProtoClientResponseGateway(MqttTestCallback callback, String deviceName) throws InterruptedException, InvalidProtocolBufferException {
 | 
					    protected void validateProtoClientResponseGateway(MqttTestCallback callback, String deviceName) throws InterruptedException, InvalidProtocolBufferException {
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertEquals(MqttQoS.AT_LEAST_ONCE.value(), callback.getQoS());
 | 
					        assertEquals(MqttQoS.AT_LEAST_ONCE.value(), callback.getQoS());
 | 
				
			||||||
        TransportApiProtos.GatewayAttributeResponseMsg expectedGatewayAttributeResponseMsg = getExpectedGatewayAttributeResponseMsg(deviceName, true);
 | 
					        TransportApiProtos.GatewayAttributeResponseMsg expectedGatewayAttributeResponseMsg = getExpectedGatewayAttributeResponseMsg(deviceName, true);
 | 
				
			||||||
        TransportApiProtos.GatewayAttributeResponseMsg actualGatewayAttributeResponseMsg = TransportApiProtos.GatewayAttributeResponseMsg.parseFrom(callback.getPayloadBytes());
 | 
					        TransportApiProtos.GatewayAttributeResponseMsg actualGatewayAttributeResponseMsg = TransportApiProtos.GatewayAttributeResponseMsg.parseFrom(callback.getPayloadBytes());
 | 
				
			||||||
@ -590,7 +590,7 @@ public abstract class AbstractMqttAttributesIntegrationTest extends AbstractMqtt
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected void validateProtoSharedResponseGateway(MqttTestCallback callback, String deviceName) throws InterruptedException, InvalidProtocolBufferException {
 | 
					    protected void validateProtoSharedResponseGateway(MqttTestCallback callback, String deviceName) throws InterruptedException, InvalidProtocolBufferException {
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertEquals(MqttQoS.AT_LEAST_ONCE.value(), callback.getQoS());
 | 
					        assertEquals(MqttQoS.AT_LEAST_ONCE.value(), callback.getQoS());
 | 
				
			||||||
        TransportApiProtos.GatewayAttributeResponseMsg expectedGatewayAttributeResponseMsg = getExpectedGatewayAttributeResponseMsg(deviceName, false);
 | 
					        TransportApiProtos.GatewayAttributeResponseMsg expectedGatewayAttributeResponseMsg = getExpectedGatewayAttributeResponseMsg(deviceName, false);
 | 
				
			||||||
        TransportApiProtos.GatewayAttributeResponseMsg actualGatewayAttributeResponseMsg = TransportApiProtos.GatewayAttributeResponseMsg.parseFrom(callback.getPayloadBytes());
 | 
					        TransportApiProtos.GatewayAttributeResponseMsg actualGatewayAttributeResponseMsg = TransportApiProtos.GatewayAttributeResponseMsg.parseFrom(callback.getPayloadBytes());
 | 
				
			||||||
 | 
				
			|||||||
@ -274,7 +274,7 @@ public class MqttProvisionJsonDeviceTest extends AbstractMqttIntegrationTest {
 | 
				
			|||||||
        client.setCallback(onProvisionCallback);
 | 
					        client.setCallback(onProvisionCallback);
 | 
				
			||||||
        client.subscribe(DEVICE_PROVISION_RESPONSE_TOPIC, MqttQoS.AT_MOST_ONCE);
 | 
					        client.subscribe(DEVICE_PROVISION_RESPONSE_TOPIC, MqttQoS.AT_MOST_ONCE);
 | 
				
			||||||
        client.publishAndWait(DEVICE_PROVISION_REQUEST_TOPIC, provisionRequestMsg.getBytes());
 | 
					        client.publishAndWait(DEVICE_PROVISION_REQUEST_TOPIC, provisionRequestMsg.getBytes());
 | 
				
			||||||
        onProvisionCallback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        onProvisionCallback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        client.disconnect();
 | 
					        client.disconnect();
 | 
				
			||||||
        return onProvisionCallback.getPayloadBytes();
 | 
					        return onProvisionCallback.getPayloadBytes();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -273,7 +273,7 @@ public class MqttProvisionProtoDeviceTest extends AbstractMqttIntegrationTest {
 | 
				
			|||||||
        client.setCallback(onProvisionCallback);
 | 
					        client.setCallback(onProvisionCallback);
 | 
				
			||||||
        client.subscribe(DEVICE_PROVISION_RESPONSE_TOPIC, MqttQoS.AT_MOST_ONCE);
 | 
					        client.subscribe(DEVICE_PROVISION_RESPONSE_TOPIC, MqttQoS.AT_MOST_ONCE);
 | 
				
			||||||
        client.publishAndWait(DEVICE_PROVISION_REQUEST_TOPIC, provisionRequestMsg);
 | 
					        client.publishAndWait(DEVICE_PROVISION_REQUEST_TOPIC, provisionRequestMsg);
 | 
				
			||||||
        onProvisionCallback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        onProvisionCallback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        client.disconnect();
 | 
					        client.disconnect();
 | 
				
			||||||
        return onProvisionCallback.getPayloadBytes();
 | 
					        return onProvisionCallback.getPayloadBytes();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -87,7 +87,7 @@ public abstract class AbstractMqttServerSideRpcIntegrationTest extends AbstractM
 | 
				
			|||||||
        String setGpioRequest = "{\"method\":\"setGpio\",\"params\":{\"pin\": \"23\",\"value\": 1}}";
 | 
					        String setGpioRequest = "{\"method\":\"setGpio\",\"params\":{\"pin\": \"23\",\"value\": 1}}";
 | 
				
			||||||
        String result = doPostAsync("/api/rpc/oneway/" + savedDevice.getId(), setGpioRequest, String.class, status().isOk());
 | 
					        String result = doPostAsync("/api/rpc/oneway/" + savedDevice.getId(), setGpioRequest, String.class, status().isOk());
 | 
				
			||||||
        assertTrue(StringUtils.isEmpty(result));
 | 
					        assertTrue(StringUtils.isEmpty(result));
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        DeviceTransportType deviceTransportType = deviceProfile.getTransportType();
 | 
					        DeviceTransportType deviceTransportType = deviceProfile.getTransportType();
 | 
				
			||||||
        if (deviceTransportType.equals(DeviceTransportType.MQTT)) {
 | 
					        if (deviceTransportType.equals(DeviceTransportType.MQTT)) {
 | 
				
			||||||
            DeviceProfileTransportConfiguration transportConfiguration = deviceProfile.getProfileData().getTransportConfiguration();
 | 
					            DeviceProfileTransportConfiguration transportConfiguration = deviceProfile.getProfileData().getTransportConfiguration();
 | 
				
			||||||
@ -124,7 +124,7 @@ public abstract class AbstractMqttServerSideRpcIntegrationTest extends AbstractM
 | 
				
			|||||||
        client.setCallback(callback);
 | 
					        client.setCallback(callback);
 | 
				
			||||||
        String setGpioRequest = "{\"method\":\"setGpio\",\"params\":{\"pin\": \"26\",\"value\": 1}}";
 | 
					        String setGpioRequest = "{\"method\":\"setGpio\",\"params\":{\"pin\": \"26\",\"value\": 1}}";
 | 
				
			||||||
        String actualRpcResponse = doPostAsync("/api/rpc/twoway/" + savedDevice.getId(), setGpioRequest, String.class, status().isOk());
 | 
					        String actualRpcResponse = doPostAsync("/api/rpc/twoway/" + savedDevice.getId(), setGpioRequest, String.class, status().isOk());
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertEquals(JacksonUtil.toJsonNode(setGpioRequest), JacksonUtil.fromBytes(callback.getPayloadBytes()));
 | 
					        assertEquals(JacksonUtil.toJsonNode(setGpioRequest), JacksonUtil.fromBytes(callback.getPayloadBytes()));
 | 
				
			||||||
        assertEquals("{\"value1\":\"A\",\"value2\":\"B\"}", actualRpcResponse);
 | 
					        assertEquals("{\"value1\":\"A\",\"value2\":\"B\"}", actualRpcResponse);
 | 
				
			||||||
        client.disconnect();
 | 
					        client.disconnect();
 | 
				
			||||||
@ -142,7 +142,7 @@ public abstract class AbstractMqttServerSideRpcIntegrationTest extends AbstractM
 | 
				
			|||||||
        String deviceId = savedDevice.getId().getId().toString();
 | 
					        String deviceId = savedDevice.getId().getId().toString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        String actualRpcResponse = doPostAsync("/api/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
					        String actualRpcResponse = doPostAsync("/api/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        // TODO: add correct validation of proto requests to device
 | 
					        // TODO: add correct validation of proto requests to device
 | 
				
			||||||
        assertTrue(callback.getPayloadBytes().length > 0);
 | 
					        assertTrue(callback.getPayloadBytes().length > 0);
 | 
				
			||||||
        assertEquals("{\"payload\":\"{\\\"value1\\\":\\\"A\\\",\\\"value2\\\":\\\"B\\\"}\"}", actualRpcResponse);
 | 
					        assertEquals("{\"payload\":\"{\\\"value1\\\":\\\"A\\\",\\\"value2\\\":\\\"B\\\"}\"}", actualRpcResponse);
 | 
				
			||||||
@ -196,7 +196,7 @@ public abstract class AbstractMqttServerSideRpcIntegrationTest extends AbstractM
 | 
				
			|||||||
        client.setCallback(callback);
 | 
					        client.setCallback(callback);
 | 
				
			||||||
        client.subscribeAndWait(DEVICE_RPC_REQUESTS_SUB_TOPIC, MqttQoS.AT_LEAST_ONCE);
 | 
					        client.subscribeAndWait(DEVICE_RPC_REQUESTS_SUB_TOPIC, MqttQoS.AT_LEAST_ONCE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        callback.getSubscribeLatch().await(10, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertEquals(expected, result);
 | 
					        assertEquals(expected, result);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -227,7 +227,7 @@ public abstract class AbstractMqttServerSideRpcIntegrationTest extends AbstractM
 | 
				
			|||||||
        String deviceId = savedDevice.getId().getId().toString();
 | 
					        String deviceId = savedDevice.getId().getId().toString();
 | 
				
			||||||
        String result = doPostAsync("/api/rpc/oneway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
					        String result = doPostAsync("/api/rpc/oneway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
				
			||||||
        assertTrue(StringUtils.isEmpty(result));
 | 
					        assertTrue(StringUtils.isEmpty(result));
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        DeviceTransportType deviceTransportType = deviceProfile.getTransportType();
 | 
					        DeviceTransportType deviceTransportType = deviceProfile.getTransportType();
 | 
				
			||||||
        if (deviceTransportType.equals(DeviceTransportType.MQTT)) {
 | 
					        if (deviceTransportType.equals(DeviceTransportType.MQTT)) {
 | 
				
			||||||
            DeviceProfileTransportConfiguration transportConfiguration = deviceProfile.getProfileData().getTransportConfiguration();
 | 
					            DeviceProfileTransportConfiguration transportConfiguration = deviceProfile.getProfileData().getTransportConfiguration();
 | 
				
			||||||
@ -274,7 +274,7 @@ public abstract class AbstractMqttServerSideRpcIntegrationTest extends AbstractM
 | 
				
			|||||||
        String setGpioRequest = "{\"method\": \"toggle_gpio\", \"params\": {\"pin\":1}}";
 | 
					        String setGpioRequest = "{\"method\": \"toggle_gpio\", \"params\": {\"pin\":1}}";
 | 
				
			||||||
        String deviceId = savedDevice.getId().getId().toString();
 | 
					        String deviceId = savedDevice.getId().getId().toString();
 | 
				
			||||||
        String actualRpcResponse = doPostAsync("/api/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
					        String actualRpcResponse = doPostAsync("/api/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        log.warn("request payload: {}", JacksonUtil.fromBytes(callback.getPayloadBytes()));
 | 
					        log.warn("request payload: {}", JacksonUtil.fromBytes(callback.getPayloadBytes()));
 | 
				
			||||||
        assertEquals("{\"success\":true}", actualRpcResponse);
 | 
					        assertEquals("{\"success\":true}", actualRpcResponse);
 | 
				
			||||||
        assertEquals(MqttQoS.AT_MOST_ONCE.value(), callback.getQoS());
 | 
					        assertEquals(MqttQoS.AT_MOST_ONCE.value(), callback.getQoS());
 | 
				
			||||||
@ -297,7 +297,7 @@ public abstract class AbstractMqttServerSideRpcIntegrationTest extends AbstractM
 | 
				
			|||||||
        String setGpioRequest = "{\"method\": \"toggle_gpio\", \"params\": {\"pin\":1}}";
 | 
					        String setGpioRequest = "{\"method\": \"toggle_gpio\", \"params\": {\"pin\":1}}";
 | 
				
			||||||
        String deviceId = savedDevice.getId().getId().toString();
 | 
					        String deviceId = savedDevice.getId().getId().toString();
 | 
				
			||||||
        String actualRpcResponse = doPostAsync("/api/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
					        String actualRpcResponse = doPostAsync("/api/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isOk());
 | 
				
			||||||
        callback.getSubscribeLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertEquals("{\"success\":true}", actualRpcResponse);
 | 
					        assertEquals("{\"success\":true}", actualRpcResponse);
 | 
				
			||||||
        assertEquals(MqttQoS.AT_MOST_ONCE.value(), callback.getQoS());
 | 
					        assertEquals(MqttQoS.AT_MOST_ONCE.value(), callback.getQoS());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -330,7 +330,7 @@ public abstract class AbstractMqttTimeseriesIntegrationTest extends AbstractMqtt
 | 
				
			|||||||
//        MqttClient <- SUB_ACK <- Transport
 | 
					//        MqttClient <- SUB_ACK <- Transport
 | 
				
			||||||
        Thread.sleep(5000);
 | 
					        Thread.sleep(5000);
 | 
				
			||||||
        doPostAsync("/api/plugins/telemetry/" + savedDevice.getId() + "/SHARED_SCOPE", payload, String.class, status().isOk());
 | 
					        doPostAsync("/api/plugins/telemetry/" + savedDevice.getId() + "/SHARED_SCOPE", payload, String.class, status().isOk());
 | 
				
			||||||
        callback.getSubscribeLatch().await(10, TimeUnit.SECONDS);
 | 
					        callback.getSubscribeLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertEquals(payload.getBytes(), callback.getPayloadBytes());
 | 
					        assertEquals(payload.getBytes(), callback.getPayloadBytes());
 | 
				
			||||||
        assertEquals(MqttQoS.AT_MOST_ONCE.value(), callback.getQoS());
 | 
					        assertEquals(MqttQoS.AT_MOST_ONCE.value(), callback.getQoS());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -126,7 +126,7 @@ public abstract class AbstractMqttTimeseriesJsonIntegrationTest extends Abstract
 | 
				
			|||||||
        MqttTestCallback callback = new MqttTestCallback();
 | 
					        MqttTestCallback callback = new MqttTestCallback();
 | 
				
			||||||
        client.setCallback(callback);
 | 
					        client.setCallback(callback);
 | 
				
			||||||
        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_JSON_PAYLOAD.getBytes());
 | 
					        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_JSON_PAYLOAD.getBytes());
 | 
				
			||||||
        callback.getDeliveryLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getDeliveryLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertTrue(callback.isPubAckReceived());
 | 
					        assertTrue(callback.isPubAckReceived());
 | 
				
			||||||
        client.disconnect();
 | 
					        client.disconnect();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -144,7 +144,7 @@ public abstract class AbstractMqttTimeseriesJsonIntegrationTest extends Abstract
 | 
				
			|||||||
        MqttTestCallback callback = new MqttTestCallback();
 | 
					        MqttTestCallback callback = new MqttTestCallback();
 | 
				
			||||||
        client.setCallback(callback);
 | 
					        client.setCallback(callback);
 | 
				
			||||||
        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_JSON_PAYLOAD.getBytes());
 | 
					        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_JSON_PAYLOAD.getBytes());
 | 
				
			||||||
        callback.getDeliveryLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getDeliveryLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertFalse(callback.isPubAckReceived());
 | 
					        assertFalse(callback.isPubAckReceived());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -163,7 +163,7 @@ public abstract class AbstractMqttTimeseriesJsonIntegrationTest extends Abstract
 | 
				
			|||||||
        MqttTestCallback callback = new MqttTestCallback();
 | 
					        MqttTestCallback callback = new MqttTestCallback();
 | 
				
			||||||
        client.setCallback(callback);
 | 
					        client.setCallback(callback);
 | 
				
			||||||
        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_JSON_PAYLOAD.getBytes());
 | 
					        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_JSON_PAYLOAD.getBytes());
 | 
				
			||||||
        callback.getDeliveryLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getDeliveryLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertTrue(callback.isPubAckReceived());
 | 
					        assertTrue(callback.isPubAckReceived());
 | 
				
			||||||
        client.disconnect();
 | 
					        client.disconnect();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -182,7 +182,7 @@ public abstract class AbstractMqttTimeseriesJsonIntegrationTest extends Abstract
 | 
				
			|||||||
        MqttTestCallback callback = new MqttTestCallback();
 | 
					        MqttTestCallback callback = new MqttTestCallback();
 | 
				
			||||||
        client.setCallback(callback);
 | 
					        client.setCallback(callback);
 | 
				
			||||||
        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_JSON_PAYLOAD.getBytes());
 | 
					        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_JSON_PAYLOAD.getBytes());
 | 
				
			||||||
        callback.getDeliveryLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getDeliveryLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertFalse(callback.isPubAckReceived());
 | 
					        assertFalse(callback.isPubAckReceived());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -361,7 +361,7 @@ public abstract class AbstractMqttTimeseriesProtoIntegrationTest extends Abstrac
 | 
				
			|||||||
        MqttTestCallback callback = new MqttTestCallback();
 | 
					        MqttTestCallback callback = new MqttTestCallback();
 | 
				
			||||||
        client.setCallback(callback);
 | 
					        client.setCallback(callback);
 | 
				
			||||||
        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_PROTO_PAYLOAD.getBytes());
 | 
					        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_PROTO_PAYLOAD.getBytes());
 | 
				
			||||||
        callback.getDeliveryLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getDeliveryLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertTrue(callback.isPubAckReceived());
 | 
					        assertTrue(callback.isPubAckReceived());
 | 
				
			||||||
        client.disconnect();
 | 
					        client.disconnect();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -379,7 +379,7 @@ public abstract class AbstractMqttTimeseriesProtoIntegrationTest extends Abstrac
 | 
				
			|||||||
        MqttTestCallback callback = new MqttTestCallback();
 | 
					        MqttTestCallback callback = new MqttTestCallback();
 | 
				
			||||||
        client.setCallback(callback);
 | 
					        client.setCallback(callback);
 | 
				
			||||||
        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_PROTO_PAYLOAD.getBytes());
 | 
					        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_PROTO_PAYLOAD.getBytes());
 | 
				
			||||||
        callback.getDeliveryLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getDeliveryLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertFalse(callback.isPubAckReceived());
 | 
					        assertFalse(callback.isPubAckReceived());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -398,7 +398,7 @@ public abstract class AbstractMqttTimeseriesProtoIntegrationTest extends Abstrac
 | 
				
			|||||||
        MqttTestCallback callback = new MqttTestCallback();
 | 
					        MqttTestCallback callback = new MqttTestCallback();
 | 
				
			||||||
        client.setCallback(callback);
 | 
					        client.setCallback(callback);
 | 
				
			||||||
        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_JSON_PAYLOAD.getBytes());
 | 
					        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_JSON_PAYLOAD.getBytes());
 | 
				
			||||||
        callback.getDeliveryLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getDeliveryLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertTrue(callback.isPubAckReceived());
 | 
					        assertTrue(callback.isPubAckReceived());
 | 
				
			||||||
        client.disconnect();
 | 
					        client.disconnect();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -417,7 +417,7 @@ public abstract class AbstractMqttTimeseriesProtoIntegrationTest extends Abstrac
 | 
				
			|||||||
        MqttTestCallback callback = new MqttTestCallback();
 | 
					        MqttTestCallback callback = new MqttTestCallback();
 | 
				
			||||||
        client.setCallback(callback);
 | 
					        client.setCallback(callback);
 | 
				
			||||||
        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_JSON_PAYLOAD.getBytes());
 | 
					        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_JSON_PAYLOAD.getBytes());
 | 
				
			||||||
        callback.getDeliveryLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getDeliveryLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertFalse(callback.isPubAckReceived());
 | 
					        assertFalse(callback.isPubAckReceived());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -436,7 +436,7 @@ public abstract class AbstractMqttTimeseriesProtoIntegrationTest extends Abstrac
 | 
				
			|||||||
        MqttTestCallback callback = new MqttTestCallback();
 | 
					        MqttTestCallback callback = new MqttTestCallback();
 | 
				
			||||||
        client.setCallback(callback);
 | 
					        client.setCallback(callback);
 | 
				
			||||||
        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_PROTO_PAYLOAD.getBytes());
 | 
					        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_PROTO_PAYLOAD.getBytes());
 | 
				
			||||||
        callback.getDeliveryLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getDeliveryLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertTrue(callback.isPubAckReceived());
 | 
					        assertTrue(callback.isPubAckReceived());
 | 
				
			||||||
        client.disconnect();
 | 
					        client.disconnect();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -455,7 +455,7 @@ public abstract class AbstractMqttTimeseriesProtoIntegrationTest extends Abstrac
 | 
				
			|||||||
        MqttTestCallback callback = new MqttTestCallback();
 | 
					        MqttTestCallback callback = new MqttTestCallback();
 | 
				
			||||||
        client.setCallback(callback);
 | 
					        client.setCallback(callback);
 | 
				
			||||||
        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_PROTO_PAYLOAD.getBytes());
 | 
					        client.publish(POST_DATA_TELEMETRY_TOPIC, MALFORMED_PROTO_PAYLOAD.getBytes());
 | 
				
			||||||
        callback.getDeliveryLatch().await(3, TimeUnit.SECONDS);
 | 
					        callback.getDeliveryLatch().await(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
 | 
				
			||||||
        assertFalse(callback.isPubAckReceived());
 | 
					        assertFalse(callback.isPubAckReceived());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user