|
|
@ -15,84 +15,43 @@ |
|
|
*/ |
|
|
*/ |
|
|
package org.thingsboard.server.controller; |
|
|
package org.thingsboard.server.controller; |
|
|
|
|
|
|
|
|
import com.datastax.oss.driver.api.core.uuid.Uuids; |
|
|
|
|
|
import com.fasterxml.jackson.core.type.TypeReference; |
|
|
import com.fasterxml.jackson.core.type.TypeReference; |
|
|
import com.fasterxml.jackson.databind.JsonNode; |
|
|
import com.fasterxml.jackson.databind.JsonNode; |
|
|
import com.google.common.util.concurrent.Futures; |
|
|
|
|
|
import com.google.common.util.concurrent.ListenableFuture; |
|
|
|
|
|
import com.google.common.util.concurrent.ListeningExecutorService; |
|
|
import com.google.common.util.concurrent.ListeningExecutorService; |
|
|
import com.google.common.util.concurrent.MoreExecutors; |
|
|
import com.google.common.util.concurrent.MoreExecutors; |
|
|
import org.junit.After; |
|
|
import org.junit.After; |
|
|
import org.junit.Assert; |
|
|
import org.junit.Assert; |
|
|
import org.junit.Before; |
|
|
import org.junit.Before; |
|
|
import org.junit.Ignore; |
|
|
|
|
|
import org.junit.Test; |
|
|
import org.junit.Test; |
|
|
import org.mockito.AdditionalAnswers; |
|
|
import org.mockito.AdditionalAnswers; |
|
|
import org.mockito.Mockito; |
|
|
import org.mockito.Mockito; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
|
import org.springframework.boot.test.mock.mockito.SpyBean; |
|
|
|
|
|
import org.springframework.context.annotation.Bean; |
|
|
import org.springframework.context.annotation.Bean; |
|
|
import org.springframework.context.annotation.Primary; |
|
|
import org.springframework.context.annotation.Primary; |
|
|
import org.springframework.test.context.ContextConfiguration; |
|
|
import org.springframework.test.context.ContextConfiguration; |
|
|
import org.springframework.test.context.TestPropertySource; |
|
|
import org.springframework.test.context.TestPropertySource; |
|
|
import org.thingsboard.common.util.JacksonUtil; |
|
|
import org.thingsboard.common.util.JacksonUtil; |
|
|
import org.thingsboard.common.util.ThingsBoardExecutors; |
|
|
import org.thingsboard.common.util.ThingsBoardExecutors; |
|
|
import org.thingsboard.server.common.data.Customer; |
|
|
|
|
|
import org.thingsboard.server.common.data.Device; |
|
|
import org.thingsboard.server.common.data.Device; |
|
|
import org.thingsboard.server.common.data.DeviceInfo; |
|
|
|
|
|
import org.thingsboard.server.common.data.DeviceProfile; |
|
|
import org.thingsboard.server.common.data.DeviceProfile; |
|
|
import org.thingsboard.server.common.data.DeviceProfileType; |
|
|
import org.thingsboard.server.common.data.DeviceProfileType; |
|
|
import org.thingsboard.server.common.data.DeviceTransportType; |
|
|
import org.thingsboard.server.common.data.DeviceTransportType; |
|
|
import org.thingsboard.server.common.data.EntitySubtype; |
|
|
|
|
|
import org.thingsboard.server.common.data.EntityType; |
|
|
|
|
|
import org.thingsboard.server.common.data.OtaPackageInfo; |
|
|
|
|
|
import org.thingsboard.server.common.data.SaveDeviceWithCredentialsRequest; |
|
|
|
|
|
import org.thingsboard.server.common.data.SaveOtaPackageInfoRequest; |
|
|
|
|
|
import org.thingsboard.server.common.data.StringUtils; |
|
|
|
|
|
import org.thingsboard.server.common.data.Tenant; |
|
|
import org.thingsboard.server.common.data.Tenant; |
|
|
import org.thingsboard.server.common.data.User; |
|
|
import org.thingsboard.server.common.data.User; |
|
|
import org.thingsboard.server.common.data.audit.ActionType; |
|
|
|
|
|
import org.thingsboard.server.common.data.device.credentials.BasicMqttCredentials; |
|
|
import org.thingsboard.server.common.data.device.credentials.BasicMqttCredentials; |
|
|
import org.thingsboard.server.common.data.device.profile.CoapDeviceProfileTransportConfiguration; |
|
|
import org.thingsboard.server.common.data.device.profile.CoapDeviceProfileTransportConfiguration; |
|
|
import org.thingsboard.server.common.data.device.profile.DefaultDeviceProfileConfiguration; |
|
|
import org.thingsboard.server.common.data.device.profile.DefaultDeviceProfileConfiguration; |
|
|
import org.thingsboard.server.common.data.device.profile.DeviceProfileData; |
|
|
import org.thingsboard.server.common.data.device.profile.DeviceProfileData; |
|
|
import org.thingsboard.server.common.data.device.profile.MqttDeviceProfileTransportConfiguration; |
|
|
import org.thingsboard.server.common.data.device.profile.MqttDeviceProfileTransportConfiguration; |
|
|
import org.thingsboard.server.common.data.edge.Edge; |
|
|
|
|
|
import org.thingsboard.server.common.data.id.CustomerId; |
|
|
|
|
|
import org.thingsboard.server.common.data.id.DeviceCredentialsId; |
|
|
|
|
|
import org.thingsboard.server.common.data.id.DeviceId; |
|
|
|
|
|
import org.thingsboard.server.common.data.id.DeviceProfileId; |
|
|
import org.thingsboard.server.common.data.id.DeviceProfileId; |
|
|
import org.thingsboard.server.common.data.id.EntityId; |
|
|
|
|
|
import org.thingsboard.server.common.data.page.PageData; |
|
|
import org.thingsboard.server.common.data.page.PageData; |
|
|
import org.thingsboard.server.common.data.page.PageLink; |
|
|
|
|
|
import org.thingsboard.server.common.data.relation.EntityRelation; |
|
|
|
|
|
import org.thingsboard.server.common.data.relation.RelationTypeGroup; |
|
|
|
|
|
import org.thingsboard.server.common.data.security.Authority; |
|
|
import org.thingsboard.server.common.data.security.Authority; |
|
|
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.common.data.sync.ie.importing.csv.BulkImportColumnType; |
|
|
|
|
|
import org.thingsboard.server.common.data.sync.ie.importing.csv.BulkImportRequest; |
|
|
|
|
|
import org.thingsboard.server.common.data.sync.ie.importing.csv.BulkImportResult; |
|
|
|
|
|
import org.thingsboard.server.dao.device.DeviceDao; |
|
|
import org.thingsboard.server.dao.device.DeviceDao; |
|
|
import org.thingsboard.server.dao.exception.DataValidationException; |
|
|
|
|
|
import org.thingsboard.server.dao.exception.DeviceCredentialsValidationException; |
|
|
|
|
|
import org.thingsboard.server.dao.model.ModelConstants; |
|
|
|
|
|
import org.thingsboard.server.dao.service.DaoSqlTest; |
|
|
import org.thingsboard.server.dao.service.DaoSqlTest; |
|
|
import org.thingsboard.server.service.gateway_device.GatewayNotificationsService; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
import java.util.Map; |
|
|
|
|
|
import java.util.concurrent.TimeUnit; |
|
|
|
|
|
|
|
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
import static org.hamcrest.Matchers.containsString; |
|
|
|
|
|
import static org.mockito.Mockito.never; |
|
|
|
|
|
import static org.mockito.Mockito.times; |
|
|
|
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; |
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; |
|
|
import static org.thingsboard.server.common.data.ota.OtaPackageType.FIRMWARE; |
|
|
|
|
|
import static org.thingsboard.server.common.data.ota.OtaPackageType.SOFTWARE; |
|
|
|
|
|
import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; |
|
|
|
|
|
import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.COAP; |
|
|
import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.COAP; |
|
|
import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.COAPS; |
|
|
import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.COAPS; |
|
|
import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.DOCKER; |
|
|
import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.DOCKER; |
|
|
|