Search in sources :

Example 11 with DeviceCredentials

use of org.thingsboard.server.common.data.security.DeviceCredentials in project thingsboard by thingsboard.

the class BaseDeviceControllerTest method testSaveDeviceCredentials.

@Test
public void testSaveDeviceCredentials() throws Exception {
    Device device = new Device();
    device.setName("My device");
    device.setType("default");
    Device savedDevice = doPost("/api/device", device, Device.class);
    DeviceCredentials deviceCredentials = doGet("/api/device/" + savedDevice.getId().getId().toString() + "/credentials", DeviceCredentials.class);
    Assert.assertEquals(savedDevice.getId(), deviceCredentials.getDeviceId());
    deviceCredentials.setCredentialsType(DeviceCredentialsType.ACCESS_TOKEN);
    deviceCredentials.setCredentialsId("access_token");
    doPost("/api/device/credentials", deviceCredentials).andExpect(status().isOk());
    DeviceCredentials foundDeviceCredentials = doGet("/api/device/" + savedDevice.getId().getId().toString() + "/credentials", DeviceCredentials.class);
    Assert.assertEquals(deviceCredentials, foundDeviceCredentials);
}
Also used : DeviceCredentials(org.thingsboard.server.common.data.security.DeviceCredentials) Test(org.junit.Test)

Example 12 with DeviceCredentials

use of org.thingsboard.server.common.data.security.DeviceCredentials in project thingsboard by thingsboard.

the class BaseDeviceControllerTest method testSaveNonExistentDeviceCredentials.

@Test
public void testSaveNonExistentDeviceCredentials() throws Exception {
    Device device = new Device();
    device.setName("My device");
    device.setType("default");
    Device savedDevice = doPost("/api/device", device, Device.class);
    DeviceCredentials deviceCredentials = doGet("/api/device/" + savedDevice.getId().getId().toString() + "/credentials", DeviceCredentials.class);
    DeviceCredentials newDeviceCredentials = new DeviceCredentials(new DeviceCredentialsId(UUIDs.timeBased()));
    newDeviceCredentials.setCreatedTime(deviceCredentials.getCreatedTime());
    newDeviceCredentials.setDeviceId(deviceCredentials.getDeviceId());
    newDeviceCredentials.setCredentialsType(deviceCredentials.getCredentialsType());
    newDeviceCredentials.setCredentialsId(deviceCredentials.getCredentialsId());
    doPost("/api/device/credentials", newDeviceCredentials).andExpect(status().isBadRequest()).andExpect(statusReason(containsString("Unable to update non-existent device credentials")));
}
Also used : DeviceCredentialsId(org.thingsboard.server.common.data.id.DeviceCredentialsId) DeviceCredentials(org.thingsboard.server.common.data.security.DeviceCredentials) Test(org.junit.Test)

Example 13 with DeviceCredentials

use of org.thingsboard.server.common.data.security.DeviceCredentials in project thingsboard by thingsboard.

the class BaseDeviceControllerTest method testFindDeviceCredentialsByDeviceId.

@Test
public void testFindDeviceCredentialsByDeviceId() throws Exception {
    Device device = new Device();
    device.setName("My device");
    device.setType("default");
    Device savedDevice = doPost("/api/device", device, Device.class);
    DeviceCredentials deviceCredentials = doGet("/api/device/" + savedDevice.getId().getId().toString() + "/credentials", DeviceCredentials.class);
    Assert.assertEquals(savedDevice.getId(), deviceCredentials.getDeviceId());
}
Also used : DeviceCredentials(org.thingsboard.server.common.data.security.DeviceCredentials) Test(org.junit.Test)

Example 14 with DeviceCredentials

use of org.thingsboard.server.common.data.security.DeviceCredentials in project thingsboard by thingsboard.

the class AbstractMqttServerSideRpcIntegrationTest method testServerMqttTwoWayRpcDeviceOffline.

@Test
public void testServerMqttTwoWayRpcDeviceOffline() throws Exception {
    Device device = new Device();
    device.setName("Test Two-Way Server-Side RPC Device Offline");
    device.setType("default");
    Device savedDevice = getSavedDevice(device);
    DeviceCredentials deviceCredentials = getDeviceCredentials(savedDevice);
    assertEquals(savedDevice.getId(), deviceCredentials.getDeviceId());
    String accessToken = deviceCredentials.getCredentialsId();
    assertNotNull(accessToken);
    String setGpioRequest = "{\"method\":\"setGpio\",\"params\":{\"pin\": \"23\",\"value\": 1}}";
    String deviceId = savedDevice.getId().getId().toString();
    doPostAsync("/api/plugins/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isRequestTimeout(), asyncContextTimeoutToUseRpcPlugin);
}
Also used : Device(org.thingsboard.server.common.data.Device) DeviceCredentials(org.thingsboard.server.common.data.security.DeviceCredentials) AbstractControllerTest(org.thingsboard.server.controller.AbstractControllerTest)

Example 15 with DeviceCredentials

use of org.thingsboard.server.common.data.security.DeviceCredentials in project thingsboard by thingsboard.

the class AbstractMqttServerSideRpcIntegrationTest method testServerMqttOneWayRpc.

@Test
public void testServerMqttOneWayRpc() throws Exception {
    Device device = new Device();
    device.setName("Test One-Way Server-Side RPC");
    device.setType("default");
    Device savedDevice = getSavedDevice(device);
    DeviceCredentials deviceCredentials = getDeviceCredentials(savedDevice);
    assertEquals(savedDevice.getId(), deviceCredentials.getDeviceId());
    String accessToken = deviceCredentials.getCredentialsId();
    assertNotNull(accessToken);
    String clientId = MqttAsyncClient.generateClientId();
    MqttAsyncClient client = new MqttAsyncClient(MQTT_URL, clientId);
    MqttConnectOptions options = new MqttConnectOptions();
    options.setUserName(accessToken);
    client.connect(options).waitForCompletion();
    client.subscribe("v1/devices/me/rpc/request/+", 1);
    client.setCallback(new TestMqttCallback(client));
    String setGpioRequest = "{\"method\":\"setGpio\",\"params\":{\"pin\": \"23\",\"value\": 1}}";
    String deviceId = savedDevice.getId().getId().toString();
    String result = doPostAsync("/api/plugins/rpc/oneway/" + deviceId, setGpioRequest, String.class, status().isOk());
    Assert.assertTrue(StringUtils.isEmpty(result));
}
Also used : Device(org.thingsboard.server.common.data.Device) DeviceCredentials(org.thingsboard.server.common.data.security.DeviceCredentials) AbstractControllerTest(org.thingsboard.server.controller.AbstractControllerTest)

Aggregations

DeviceCredentials (org.thingsboard.server.common.data.security.DeviceCredentials)39 Test (org.junit.Test)21 Device (org.thingsboard.server.common.data.Device)18 DeviceId (org.thingsboard.server.common.data.id.DeviceId)7 DeviceCredentialsId (org.thingsboard.server.common.data.id.DeviceCredentialsId)6 AbstractControllerTest (org.thingsboard.server.controller.AbstractControllerTest)4 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)2 DatabaseSetup (com.github.springtestdbunit.annotation.DatabaseSetup)2 Before (org.junit.Before)2 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)2 AbstractJpaDaoTest (org.thingsboard.server.dao.AbstractJpaDaoTest)2 IncorrectParameterException (org.thingsboard.server.dao.exception.IncorrectParameterException)2 ThingsboardException (org.thingsboard.server.exception.ThingsboardException)2 ArrayNode (com.fasterxml.jackson.databind.node.ArrayNode)1 UUID (java.util.UUID)1 Cache (org.springframework.cache.Cache)1 CacheEvict (org.springframework.cache.annotation.CacheEvict)1 AttributeKvEntry (org.thingsboard.server.common.data.kv.AttributeKvEntry)1 DeviceCredentialsService (org.thingsboard.server.dao.device.DeviceCredentialsService)1