Added blackbox test for disabled device provisioning strategy

This commit is contained in:
imbeacon 2022-11-22 10:58:04 +02:00
parent 09e98d1680
commit a408da6d78
2 changed files with 28 additions and 16 deletions

View File

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

View File

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