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) { public Device getDeviceByName(String deviceName) {
return given().spec(requestSpec).pathParam("deviceName", deviceName) return given().spec(requestSpec).pathParam("deviceName", deviceName)
.get("/api/tenant/devices{deviceName}") .get("/api/tenant/devices?deviceName={deviceName}")
.then() .then()
.statusCode(HTTP_OK) .statusCode(HTTP_OK)
.extract() .extract()

View File

@ -335,11 +335,7 @@ public class MqttClientTest extends AbstractContainerTest {
@Test @Test
public void provisionRequestForDeviceWithPreProvisionedStrategy() throws Exception { public void provisionRequestForDeviceWithPreProvisionedStrategy() throws Exception {
String testProvisionDeviceKey = "test_provision_key";
String testProvisionDeviceSecret = "test_provision_secret";
DeviceProfile deviceProfile = testRestClient.getDeviceProfileById(device.getDeviceProfileId()); DeviceProfile deviceProfile = testRestClient.getDeviceProfileById(device.getDeviceProfileId());
deviceProfile = updateDeviceProfileWithProvisioningStrategy(deviceProfile, DeviceProfileProvisionType.CHECK_PRE_PROVISIONED_DEVICES); deviceProfile = updateDeviceProfileWithProvisioningStrategy(deviceProfile, DeviceProfileProvisionType.CHECK_PRE_PROVISIONED_DEVICES);
DeviceCredentials expectedDeviceCredentials = testRestClient.getDeviceCredentialsByDeviceId(device.getId()); DeviceCredentials expectedDeviceCredentials = testRestClient.getDeviceCredentialsByDeviceId(device.getId());
@ -348,14 +344,13 @@ public class MqttClientTest extends AbstractContainerTest {
MqttClient mqttClient = getMqttClient("provision", listener); MqttClient mqttClient = getMqttClient("provision", listener);
JsonObject provisionRequest = new JsonObject(); JsonObject provisionRequest = new JsonObject();
provisionRequest.addProperty("provisionDeviceKey", testProvisionDeviceKey); provisionRequest.addProperty("provisionDeviceKey", TEST_PROVISION_DEVICE_KEY);
provisionRequest.addProperty("provisionDeviceSecret", testProvisionDeviceSecret); provisionRequest.addProperty("provisionDeviceSecret", TEST_PROVISION_DEVICE_SECRET);
provisionRequest.addProperty("deviceName", device.getName()); provisionRequest.addProperty("deviceName", device.getName());
mqttClient.publish("/provision/request", Unpooled.wrappedBuffer(provisionRequest.toString().getBytes())).get(); mqttClient.publish("/provision/request", Unpooled.wrappedBuffer(provisionRequest.toString().getBytes())).get();
//Wait for response //Wait for response
TimeUnit.SECONDS.sleep(3 * timeoutMultiplier); TimeUnit.SECONDS.sleep(3 * timeoutMultiplier);
MqttEvent provisionResponseMsg = listener.getEvents().poll(timeoutMultiplier, TimeUnit.SECONDS); MqttEvent provisionResponseMsg = listener.getEvents().poll(timeoutMultiplier, TimeUnit.SECONDS);
@ -369,7 +364,6 @@ public class MqttClientTest extends AbstractContainerTest {
assertThat(provisionResponse.get("status").asText()).isEqualTo("SUCCESS"); assertThat(provisionResponse.get("status").asText()).isEqualTo("SUCCESS");
updateDeviceProfileWithProvisioningStrategy(deviceProfile, DeviceProfileProvisionType.DISABLED); updateDeviceProfileWithProvisioningStrategy(deviceProfile, DeviceProfileProvisionType.DISABLED);
} }
@Test @Test
@ -392,7 +386,6 @@ public class MqttClientTest extends AbstractContainerTest {
mqttClient.publish("/provision/request", Unpooled.wrappedBuffer(provisionRequest.toString().getBytes())).get(); mqttClient.publish("/provision/request", Unpooled.wrappedBuffer(provisionRequest.toString().getBytes())).get();
//Wait for response //Wait for response
TimeUnit.SECONDS.sleep(3 * timeoutMultiplier); TimeUnit.SECONDS.sleep(3 * timeoutMultiplier);
MqttEvent provisionResponseMsg = listener.getEvents().poll(timeoutMultiplier, TimeUnit.SECONDS); MqttEvent provisionResponseMsg = listener.getEvents().poll(timeoutMultiplier, TimeUnit.SECONDS);
@ -411,28 +404,47 @@ public class MqttClientTest extends AbstractContainerTest {
assertThat(provisionResponse.get("status").asText()).isEqualTo("SUCCESS"); assertThat(provisionResponse.get("status").asText()).isEqualTo("SUCCESS");
updateDeviceProfileWithProvisioningStrategy(deviceProfile, DeviceProfileProvisionType.DISABLED); 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) { private DeviceProfile updateDeviceProfileWithProvisioningStrategy(DeviceProfile deviceProfile, DeviceProfileProvisionType provisionType) {
DeviceProfileProvisionConfiguration provisionConfiguration; DeviceProfileProvisionConfiguration provisionConfiguration;
String testProvisionDeviceKey; String testProvisionDeviceKey = TEST_PROVISION_DEVICE_KEY;
deviceProfile.setProvisionType(provisionType);
switch(provisionType) { switch(provisionType) {
case ALLOW_CREATE_NEW_DEVICES: case ALLOW_CREATE_NEW_DEVICES:
testProvisionDeviceKey = TEST_PROVISION_DEVICE_KEY;
provisionConfiguration = new AllowCreateNewDevicesDeviceProfileProvisionConfiguration(TEST_PROVISION_DEVICE_SECRET); provisionConfiguration = new AllowCreateNewDevicesDeviceProfileProvisionConfiguration(TEST_PROVISION_DEVICE_SECRET);
deviceProfile.setProvisionType(DeviceProfileProvisionType.ALLOW_CREATE_NEW_DEVICES);
break; break;
case CHECK_PRE_PROVISIONED_DEVICES: case CHECK_PRE_PROVISIONED_DEVICES:
testProvisionDeviceKey = TEST_PROVISION_DEVICE_KEY;
provisionConfiguration = new CheckPreProvisionedDevicesDeviceProfileProvisionConfiguration(TEST_PROVISION_DEVICE_SECRET); provisionConfiguration = new CheckPreProvisionedDevicesDeviceProfileProvisionConfiguration(TEST_PROVISION_DEVICE_SECRET);
deviceProfile.setProvisionType(DeviceProfileProvisionType.CHECK_PRE_PROVISIONED_DEVICES);
break; break;
default: default:
case DISABLED: case DISABLED:
testProvisionDeviceKey = null; testProvisionDeviceKey = null;
provisionConfiguration = new DisabledDeviceProfileProvisionConfiguration(null); provisionConfiguration = new DisabledDeviceProfileProvisionConfiguration(null);
deviceProfile.setProvisionType(DeviceProfileProvisionType.DISABLED);
break; break;
} }
DeviceProfileData deviceProfileData = deviceProfile.getProfileData(); DeviceProfileData deviceProfileData = deviceProfile.getProfileData();