From a408da6d786171629ae1ff9a440c801b1a0234f6 Mon Sep 17 00:00:00 2001 From: imbeacon Date: Tue, 22 Nov 2022 10:58:04 +0200 Subject: [PATCH] Added blackbox test for disabled device provisioning strategy --- .../server/msa/TestRestClient.java | 2 +- .../msa/connectivity/MqttClientTest.java | 42 ++++++++++++------- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/TestRestClient.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/TestRestClient.java index 73d6653135..b7fc1fec10 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/TestRestClient.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/TestRestClient.java @@ -97,7 +97,7 @@ public class TestRestClient { public Device getDeviceByName(String deviceName) { return given().spec(requestSpec).pathParam("deviceName", deviceName) - .get("/api/tenant/devices{deviceName}") + .get("/api/tenant/devices?deviceName={deviceName}") .then() .statusCode(HTTP_OK) .extract() diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttClientTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttClientTest.java index ac0dc75627..15ef8fe810 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttClientTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttClientTest.java @@ -335,11 +335,7 @@ public class MqttClientTest extends AbstractContainerTest { @Test public void provisionRequestForDeviceWithPreProvisionedStrategy() throws Exception { - String testProvisionDeviceKey = "test_provision_key"; - String testProvisionDeviceSecret = "test_provision_secret"; - DeviceProfile deviceProfile = testRestClient.getDeviceProfileById(device.getDeviceProfileId()); - deviceProfile = updateDeviceProfileWithProvisioningStrategy(deviceProfile, DeviceProfileProvisionType.CHECK_PRE_PROVISIONED_DEVICES); DeviceCredentials expectedDeviceCredentials = testRestClient.getDeviceCredentialsByDeviceId(device.getId()); @@ -348,14 +344,13 @@ public class MqttClientTest extends AbstractContainerTest { MqttClient mqttClient = getMqttClient("provision", listener); JsonObject provisionRequest = new JsonObject(); - provisionRequest.addProperty("provisionDeviceKey", testProvisionDeviceKey); - provisionRequest.addProperty("provisionDeviceSecret", testProvisionDeviceSecret); + provisionRequest.addProperty("provisionDeviceKey", TEST_PROVISION_DEVICE_KEY); + provisionRequest.addProperty("provisionDeviceSecret", TEST_PROVISION_DEVICE_SECRET); provisionRequest.addProperty("deviceName", device.getName()); mqttClient.publish("/provision/request", Unpooled.wrappedBuffer(provisionRequest.toString().getBytes())).get(); //Wait for response - TimeUnit.SECONDS.sleep(3 * timeoutMultiplier); MqttEvent provisionResponseMsg = listener.getEvents().poll(timeoutMultiplier, TimeUnit.SECONDS); @@ -369,7 +364,6 @@ public class MqttClientTest extends AbstractContainerTest { assertThat(provisionResponse.get("status").asText()).isEqualTo("SUCCESS"); updateDeviceProfileWithProvisioningStrategy(deviceProfile, DeviceProfileProvisionType.DISABLED); - } @Test @@ -392,7 +386,6 @@ public class MqttClientTest extends AbstractContainerTest { mqttClient.publish("/provision/request", Unpooled.wrappedBuffer(provisionRequest.toString().getBytes())).get(); //Wait for response - TimeUnit.SECONDS.sleep(3 * timeoutMultiplier); MqttEvent provisionResponseMsg = listener.getEvents().poll(timeoutMultiplier, TimeUnit.SECONDS); @@ -411,28 +404,47 @@ public class MqttClientTest extends AbstractContainerTest { assertThat(provisionResponse.get("status").asText()).isEqualTo("SUCCESS"); updateDeviceProfileWithProvisioningStrategy(deviceProfile, DeviceProfileProvisionType.DISABLED); + } + @Test + public void provisionRequestForDeviceWithDisabledProvisioningStrategy() throws Exception { + + MqttMessageListener listener = new MqttMessageListener(); + MqttClient mqttClient = getMqttClient("provision", listener); + + JsonObject provisionRequest = new JsonObject(); + provisionRequest.addProperty("provisionDeviceKey", TEST_PROVISION_DEVICE_KEY); + provisionRequest.addProperty("provisionDeviceSecret", TEST_PROVISION_DEVICE_SECRET); + + mqttClient.publish("/provision/request", Unpooled.wrappedBuffer(provisionRequest.toString().getBytes())).get(); + + //Wait for response + TimeUnit.SECONDS.sleep(3 * timeoutMultiplier); + + MqttEvent provisionResponseMsg = listener.getEvents().poll(timeoutMultiplier, TimeUnit.SECONDS); + + assertThat(provisionResponseMsg).isNotNull(); + + JsonNode provisionResponse = mapper.readTree(provisionResponseMsg.getMessage()); + + assertThat(provisionResponse.get("status").asText()).isEqualTo("NOT_FOUND"); } private DeviceProfile updateDeviceProfileWithProvisioningStrategy(DeviceProfile deviceProfile, DeviceProfileProvisionType provisionType) { DeviceProfileProvisionConfiguration provisionConfiguration; - String testProvisionDeviceKey; + String testProvisionDeviceKey = TEST_PROVISION_DEVICE_KEY; + deviceProfile.setProvisionType(provisionType); switch(provisionType) { case ALLOW_CREATE_NEW_DEVICES: - testProvisionDeviceKey = TEST_PROVISION_DEVICE_KEY; provisionConfiguration = new AllowCreateNewDevicesDeviceProfileProvisionConfiguration(TEST_PROVISION_DEVICE_SECRET); - deviceProfile.setProvisionType(DeviceProfileProvisionType.ALLOW_CREATE_NEW_DEVICES); break; case CHECK_PRE_PROVISIONED_DEVICES: - testProvisionDeviceKey = TEST_PROVISION_DEVICE_KEY; provisionConfiguration = new CheckPreProvisionedDevicesDeviceProfileProvisionConfiguration(TEST_PROVISION_DEVICE_SECRET); - deviceProfile.setProvisionType(DeviceProfileProvisionType.CHECK_PRE_PROVISIONED_DEVICES); break; default: case DISABLED: testProvisionDeviceKey = null; provisionConfiguration = new DisabledDeviceProfileProvisionConfiguration(null); - deviceProfile.setProvisionType(DeviceProfileProvisionType.DISABLED); break; } DeviceProfileData deviceProfileData = deviceProfile.getProfileData();