Merge pull request #12667 from YevhenBondarenko/fix/PROD-5562
Fix audit log save error when saving resource
This commit is contained in:
commit
7c2977bc8a
@ -217,7 +217,7 @@ public class TbResourceController extends BaseController {
|
|||||||
@RequestBody TbResource resource) throws Exception {
|
@RequestBody TbResource resource) throws Exception {
|
||||||
resource.setTenantId(getTenantId());
|
resource.setTenantId(getTenantId());
|
||||||
checkEntity(resource.getId(), resource, Resource.TB_RESOURCE);
|
checkEntity(resource.getId(), resource, Resource.TB_RESOURCE);
|
||||||
return new TbResourceInfo(tbResourceService.save(resource, getCurrentUser()));
|
return tbResourceService.save(resource, getCurrentUser());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "Get Resource Infos (getResources)",
|
@ApiOperation(value = "Get Resource Infos (getResources)",
|
||||||
|
|||||||
@ -126,7 +126,7 @@ public class DefaultTbImageService extends AbstractTbEntityService implements Tb
|
|||||||
return savedImage;
|
return savedImage;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
image.setData(null);
|
image.setData(null);
|
||||||
logEntityActionService.logEntityAction(tenantId, emptyId(EntityType.TB_RESOURCE), image, actionType, user, e);
|
logEntityActionService.logEntityAction(tenantId, emptyId(EntityType.TB_RESOURCE), new TbResourceInfo(image), actionType, user, e);
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -67,7 +67,7 @@ public class DefaultTbResourceService extends AbstractTbEntityService implements
|
|||||||
private final AccessControlService accessControlService;
|
private final AccessControlService accessControlService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TbResource save(TbResource resource, SecurityUser user) throws ThingsboardException {
|
public TbResourceInfo save(TbResource resource, SecurityUser user) throws ThingsboardException {
|
||||||
if (resource.getResourceType() == ResourceType.IMAGE) {
|
if (resource.getResourceType() == ResourceType.IMAGE) {
|
||||||
throw new IllegalArgumentException("Image resource type is not supported");
|
throw new IllegalArgumentException("Image resource type is not supported");
|
||||||
}
|
}
|
||||||
@ -79,12 +79,11 @@ public class DefaultTbResourceService extends AbstractTbEntityService implements
|
|||||||
} else if (resource.getResourceKey() == null) {
|
} else if (resource.getResourceKey() == null) {
|
||||||
resource.setResourceKey(resource.getFileName());
|
resource.setResourceKey(resource.getFileName());
|
||||||
}
|
}
|
||||||
TbResource savedResource = resourceService.saveResource(resource);
|
TbResourceInfo savedResource = new TbResourceInfo(resourceService.saveResource(resource));
|
||||||
logEntityActionService.logEntityAction(tenantId, savedResource.getId(), savedResource, actionType, user);
|
logEntityActionService.logEntityAction(tenantId, savedResource.getId(), savedResource, actionType, user);
|
||||||
return savedResource;
|
return savedResource;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logEntityActionService.logEntityAction(tenantId, emptyId(EntityType.TB_RESOURCE),
|
logEntityActionService.logEntityAction(tenantId, emptyId(EntityType.TB_RESOURCE), new TbResourceInfo(resource), actionType, user, e);
|
||||||
resource, actionType, user, e);
|
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,17 +18,26 @@ package org.thingsboard.server.service.resource;
|
|||||||
import org.thingsboard.server.common.data.Dashboard;
|
import org.thingsboard.server.common.data.Dashboard;
|
||||||
import org.thingsboard.server.common.data.ResourceExportData;
|
import org.thingsboard.server.common.data.ResourceExportData;
|
||||||
import org.thingsboard.server.common.data.TbResource;
|
import org.thingsboard.server.common.data.TbResource;
|
||||||
|
import org.thingsboard.server.common.data.TbResourceInfo;
|
||||||
|
import org.thingsboard.server.common.data.User;
|
||||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||||
import org.thingsboard.server.common.data.id.TenantId;
|
import org.thingsboard.server.common.data.id.TenantId;
|
||||||
import org.thingsboard.server.common.data.lwm2m.LwM2mObject;
|
import org.thingsboard.server.common.data.lwm2m.LwM2mObject;
|
||||||
import org.thingsboard.server.common.data.page.PageLink;
|
import org.thingsboard.server.common.data.page.PageLink;
|
||||||
import org.thingsboard.server.common.data.widget.WidgetTypeDetails;
|
import org.thingsboard.server.common.data.widget.WidgetTypeDetails;
|
||||||
import org.thingsboard.server.service.entitiy.SimpleTbEntityService;
|
|
||||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface TbResourceService extends SimpleTbEntityService<TbResource> {
|
public interface TbResourceService {
|
||||||
|
|
||||||
|
default TbResourceInfo save(TbResource entity) throws Exception {
|
||||||
|
return save(entity, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
TbResourceInfo save(TbResource entity, SecurityUser user) throws Exception;
|
||||||
|
|
||||||
|
void delete(TbResource entity, User user);
|
||||||
|
|
||||||
List<LwM2mObject> findLwM2mObject(TenantId tenantId,
|
List<LwM2mObject> findLwM2mObject(TenantId tenantId,
|
||||||
String sortOrder,
|
String sortOrder,
|
||||||
|
|||||||
@ -629,8 +629,11 @@ public abstract class AbstractNotifyEntityTest extends AbstractWebTest {
|
|||||||
|
|
||||||
private String entityClassToEntityTypeName(HasName entity) {
|
private String entityClassToEntityTypeName(HasName entity) {
|
||||||
String entityType = entityClassToString(entity);
|
String entityType = entityClassToString(entity);
|
||||||
return "SAVE_OTA_PACKAGE_INFO_REQUEST".equals(entityType) || "OTA_PACKAGE_INFO".equals(entityType) ?
|
return switch (entityType) {
|
||||||
EntityType.OTA_PACKAGE.name().toUpperCase(Locale.ENGLISH) : entityType;
|
case "SAVE_OTA_PACKAGE_INFO_REQUEST", "OTA_PACKAGE_INFO" -> "OTA_PACKAGE";
|
||||||
|
case "TB_RESOURCE_INFO" -> "TB_RESOURCE";
|
||||||
|
default -> entityType;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private String entityClassToString(HasName entity) {
|
private String entityClassToString(HasName entity) {
|
||||||
|
|||||||
@ -104,7 +104,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
resource.setFileName(DEFAULT_FILE_NAME);
|
resource.setFileName(DEFAULT_FILE_NAME);
|
||||||
resource.setEncodedData(TEST_DATA);
|
resource.setEncodedData(TEST_DATA);
|
||||||
|
|
||||||
TbResource savedResource = save(resource);
|
TbResourceInfo savedResource = save(resource);
|
||||||
|
|
||||||
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(savedResource, savedResource.getId(), savedResource.getId(),
|
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(savedResource, savedResource.getId(), savedResource.getId(),
|
||||||
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
@ -119,15 +119,15 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
Assert.assertEquals(DEFAULT_FILE_NAME, savedResource.getResourceKey());
|
Assert.assertEquals(DEFAULT_FILE_NAME, savedResource.getResourceKey());
|
||||||
Assert.assertArrayEquals(resource.getData(), download(savedResource.getId()));
|
Assert.assertArrayEquals(resource.getData(), download(savedResource.getId()));
|
||||||
|
|
||||||
savedResource.setTitle("My new resource");
|
|
||||||
savedResource.setData(null);
|
|
||||||
|
|
||||||
save(savedResource);
|
|
||||||
|
|
||||||
TbResource foundResource = doGet("/api/resource/" + savedResource.getId().getId().toString(), TbResource.class);
|
TbResource foundResource = doGet("/api/resource/" + savedResource.getId().getId().toString(), TbResource.class);
|
||||||
|
foundResource.setTitle("My new resource");
|
||||||
|
foundResource.setData(null);
|
||||||
|
|
||||||
|
savedResource = save(foundResource);
|
||||||
|
|
||||||
Assert.assertEquals(foundResource.getTitle(), savedResource.getTitle());
|
Assert.assertEquals(foundResource.getTitle(), savedResource.getTitle());
|
||||||
|
|
||||||
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(foundResource, foundResource.getId(), foundResource.getId(),
|
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(savedResource, savedResource.getId(), savedResource.getId(),
|
||||||
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
ActionType.UPDATED, ActionType.UPDATED);
|
ActionType.UPDATED, ActionType.UPDATED);
|
||||||
}
|
}
|
||||||
@ -147,7 +147,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
.andExpect(status().isBadRequest())
|
.andExpect(status().isBadRequest())
|
||||||
.andExpect(statusReason(containsString(msgError)));
|
.andExpect(statusReason(containsString(msgError)));
|
||||||
|
|
||||||
testNotifyEntityEqualsOneTimeServiceNeverError(resource, savedTenant.getId(),
|
testNotifyEntityEqualsOneTimeServiceNeverError(new TbResourceInfo(resource), savedTenant.getId(),
|
||||||
tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ADDED, new DataValidationException(msgError));
|
tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ADDED, new DataValidationException(msgError));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,7 +159,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
resource.setFileName(DEFAULT_FILE_NAME);
|
resource.setFileName(DEFAULT_FILE_NAME);
|
||||||
resource.setEncodedData(TEST_DATA);
|
resource.setEncodedData(TEST_DATA);
|
||||||
|
|
||||||
TbResource savedResource = save(resource);
|
TbResourceInfo savedResource = save(resource);
|
||||||
|
|
||||||
loginDifferentTenant();
|
loginDifferentTenant();
|
||||||
|
|
||||||
@ -188,7 +188,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
resource.setFileName(DEFAULT_FILE_NAME);
|
resource.setFileName(DEFAULT_FILE_NAME);
|
||||||
resource.setEncodedData(TEST_DATA);
|
resource.setEncodedData(TEST_DATA);
|
||||||
|
|
||||||
TbResource savedResource = save(resource);
|
TbResourceInfo savedResource = save(resource);
|
||||||
|
|
||||||
TbResource foundResource = doGet("/api/resource/" + savedResource.getUuidId(), TbResource.class);
|
TbResource foundResource = doGet("/api/resource/" + savedResource.getUuidId(), TbResource.class);
|
||||||
Assert.assertNotNull(foundResource);
|
Assert.assertNotNull(foundResource);
|
||||||
@ -204,7 +204,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
resource.setFileName(DEFAULT_FILE_NAME);
|
resource.setFileName(DEFAULT_FILE_NAME);
|
||||||
resource.setEncodedData(TEST_DATA);
|
resource.setEncodedData(TEST_DATA);
|
||||||
|
|
||||||
TbResource savedResource = save(resource);
|
TbResourceInfo savedResource = save(resource);
|
||||||
|
|
||||||
Mockito.reset(tbClusterService, auditLogService);
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
String resourceIdStr = savedResource.getId().getId().toString();
|
String resourceIdStr = savedResource.getId().getId().toString();
|
||||||
@ -229,7 +229,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
resource.setFileName(DEFAULT_FILE_NAME);
|
resource.setFileName(DEFAULT_FILE_NAME);
|
||||||
resource.setEncodedData(TEST_DATA);
|
resource.setEncodedData(TEST_DATA);
|
||||||
|
|
||||||
TbResource savedResource = save(resource);
|
TbResourceInfo savedResource = save(resource);
|
||||||
|
|
||||||
Mockito.reset(tbClusterService, auditLogService);
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
String resourceIdStr = savedResource.getId().getId().toString();
|
String resourceIdStr = savedResource.getId().getId().toString();
|
||||||
@ -274,7 +274,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
}
|
}
|
||||||
} while (pageData.hasNext());
|
} while (pageData.hasNext());
|
||||||
|
|
||||||
testNotifyManyEntityManyTimeMsgToEdgeServiceEntityEqAny(new TbResource(), new TbResource(),
|
testNotifyManyEntityManyTimeMsgToEdgeServiceEntityEqAny(new TbResourceInfo(), new TbResourceInfo(),
|
||||||
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
ActionType.ADDED, cntEntity, cntEntity, cntEntity);
|
ActionType.ADDED, cntEntity, cntEntity, cntEntity);
|
||||||
|
|
||||||
@ -322,7 +322,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
}
|
}
|
||||||
} while (pageData.hasNext());
|
} while (pageData.hasNext());
|
||||||
|
|
||||||
testNotifyManyEntityManyTimeMsgToEdgeServiceEntityEqAny(new TbResource(), new TbResource(),
|
testNotifyManyEntityManyTimeMsgToEdgeServiceEntityEqAny(new TbResourceInfo(), new TbResourceInfo(),
|
||||||
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ADDED,
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ADDED,
|
||||||
jksCntEntity + lwm2mCntEntity, jksCntEntity + lwm2mCntEntity, jksCntEntity + lwm2mCntEntity);
|
jksCntEntity + lwm2mCntEntity, jksCntEntity + lwm2mCntEntity, jksCntEntity + lwm2mCntEntity);
|
||||||
|
|
||||||
@ -414,7 +414,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
resource.setResourceType(ResourceType.PKCS_12);
|
resource.setResourceType(ResourceType.PKCS_12);
|
||||||
resource.setFileName(i + DEFAULT_FILE_NAME_2);
|
resource.setFileName(i + DEFAULT_FILE_NAME_2);
|
||||||
resource.setEncodedData(TEST_DATA);
|
resource.setEncodedData(TEST_DATA);
|
||||||
TbResource saved = save(resource);
|
TbResourceInfo saved = save(resource);
|
||||||
lwm2mesources.add(saved);
|
lwm2mesources.add(saved);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -536,7 +536,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
resource.setFileName(JS_TEST_FILE_NAME);
|
resource.setFileName(JS_TEST_FILE_NAME);
|
||||||
resource.setEncodedData(TEST_DATA);
|
resource.setEncodedData(TEST_DATA);
|
||||||
|
|
||||||
TbResource savedResource = save(resource);
|
TbResourceInfo savedResource = save(resource);
|
||||||
|
|
||||||
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(savedResource, savedResource.getId(), savedResource.getId(),
|
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(savedResource, savedResource.getId(), savedResource.getId(),
|
||||||
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
@ -567,7 +567,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
resource.setFileName(JS_TEST_FILE_NAME);
|
resource.setFileName(JS_TEST_FILE_NAME);
|
||||||
resource.setEncodedData(TEST_DATA);
|
resource.setEncodedData(TEST_DATA);
|
||||||
|
|
||||||
TbResource savedResource = save(resource);
|
TbResourceInfo savedResource = save(resource);
|
||||||
|
|
||||||
//download as public customer
|
//download as public customer
|
||||||
Device device = new Device();
|
Device device = new Device();
|
||||||
@ -611,7 +611,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
resource.setFileName(JS_TEST_FILE_NAME);
|
resource.setFileName(JS_TEST_FILE_NAME);
|
||||||
resource.setEncodedData(TEST_DATA);
|
resource.setEncodedData(TEST_DATA);
|
||||||
|
|
||||||
TbResource savedResource = save(resource);
|
TbResourceInfo savedResource = save(resource);
|
||||||
|
|
||||||
loginDifferentTenant();
|
loginDifferentTenant();
|
||||||
loginDifferentTenantCustomer();
|
loginDifferentTenantCustomer();
|
||||||
@ -626,17 +626,19 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
resource.setTitle("My resource");
|
resource.setTitle("My resource");
|
||||||
resource.setFileName("3.pks");
|
resource.setFileName("3.pks");
|
||||||
resource.setEncodedData(TEST_DATA);
|
resource.setEncodedData(TEST_DATA);
|
||||||
TbResource savedResource = save(resource);
|
TbResourceInfo savedResource = save(resource);
|
||||||
resource.setEtag(savedResource.getEtag());
|
resource.setEtag(savedResource.getEtag());
|
||||||
|
|
||||||
savedResource.setEncodedData(TEST_DATA);
|
TbResource foundResource = doGet("/api/resource/" + savedResource.getUuidId(), TbResource.class);
|
||||||
doPost("/api/resource", savedResource)
|
|
||||||
|
foundResource.setEncodedData(TEST_DATA);
|
||||||
|
doPost("/api/resource", foundResource)
|
||||||
.andExpect(status().isBadRequest())
|
.andExpect(status().isBadRequest())
|
||||||
.andExpect(statusReason(containsString("can't be updated")));
|
.andExpect(statusReason(containsString("can't be updated")));
|
||||||
|
|
||||||
savedResource.setData(null);
|
foundResource.setData(null);
|
||||||
savedResource.setTitle("Updated resource");
|
foundResource.setTitle("Updated resource");
|
||||||
savedResource = doPost("/api/resource", savedResource, TbResource.class);
|
savedResource = doPost("/api/resource", foundResource, TbResource.class);
|
||||||
assertThat(savedResource.getTitle()).isEqualTo("Updated resource");
|
assertThat(savedResource.getTitle()).isEqualTo("Updated resource");
|
||||||
assertThat(savedResource.getFileName()).isEqualTo(resource.getFileName());
|
assertThat(savedResource.getFileName()).isEqualTo(resource.getFileName());
|
||||||
assertThat(savedResource.getEtag()).isEqualTo(resource.getEtag());
|
assertThat(savedResource.getEtag()).isEqualTo(resource.getEtag());
|
||||||
@ -650,14 +652,16 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
resource.setTitle("My resource");
|
resource.setTitle("My resource");
|
||||||
resource.setFileName("module.js");
|
resource.setFileName("module.js");
|
||||||
resource.setEncodedData(TEST_DATA);
|
resource.setEncodedData(TEST_DATA);
|
||||||
TbResource savedResource = save(resource);
|
TbResourceInfo savedResource = save(resource);
|
||||||
resource.setEtag(savedResource.getEtag());
|
|
||||||
|
TbResource foundResource = doGet("/api/resource/" + savedResource.getUuidId(), TbResource.class);
|
||||||
|
resource.setEtag(foundResource.getEtag());
|
||||||
|
|
||||||
String newData = Base64.getEncoder().encodeToString(new byte[]{1, 2, 3});
|
String newData = Base64.getEncoder().encodeToString(new byte[]{1, 2, 3});
|
||||||
savedResource.setEncodedData(newData);
|
foundResource.setEncodedData(newData);
|
||||||
savedResource.setFileName("new-module.js");
|
foundResource.setFileName("new-module.js");
|
||||||
savedResource.setTitle("Updated title");
|
foundResource.setTitle("Updated title");
|
||||||
savedResource = save(savedResource);
|
savedResource = save(foundResource);
|
||||||
|
|
||||||
assertThat(savedResource.getTitle()).isEqualTo("Updated title");
|
assertThat(savedResource.getTitle()).isEqualTo("Updated title");
|
||||||
assertThat(savedResource.getFileName()).isEqualTo("new-module.js");
|
assertThat(savedResource.getFileName()).isEqualTo("new-module.js");
|
||||||
@ -669,7 +673,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
public void testGetLwm2mListObjectsPage() throws Exception {
|
public void testGetLwm2mListObjectsPage() throws Exception {
|
||||||
loginTenantAdmin();
|
loginTenantAdmin();
|
||||||
|
|
||||||
List<TbResource> resources = loadLwm2mResources();
|
List<TbResourceInfo> resources = loadLwm2mResources();
|
||||||
|
|
||||||
List<LwM2mObject> objects =
|
List<LwM2mObject> objects =
|
||||||
doGetTyped("/api/resource/lwm2m/page?pageSize=100&page=0", new TypeReference<>() {});
|
doGetTyped("/api/resource/lwm2m/page?pageSize=100&page=0", new TypeReference<>() {});
|
||||||
@ -683,7 +687,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
public void testGetLwm2mListObjects() throws Exception {
|
public void testGetLwm2mListObjects() throws Exception {
|
||||||
loginTenantAdmin();
|
loginTenantAdmin();
|
||||||
|
|
||||||
List<TbResource> resources = loadLwm2mResources();
|
List<TbResourceInfo> resources = loadLwm2mResources();
|
||||||
|
|
||||||
List<LwM2mObject> objects =
|
List<LwM2mObject> objects =
|
||||||
doGetTyped("/api/resource/lwm2m?sortProperty=id&sortOrder=ASC&objectIds=3_1.2,5_1.2,19_1.1", new TypeReference<>() {});
|
doGetTyped("/api/resource/lwm2m?sortProperty=id&sortOrder=ASC&objectIds=3_1.2,5_1.2,19_1.1", new TypeReference<>() {});
|
||||||
@ -693,7 +697,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
removeLoadResources(resources);
|
removeLoadResources(resources);
|
||||||
}
|
}
|
||||||
|
|
||||||
private TbResource save(TbResource tbResource) throws Exception {
|
private TbResourceInfo save(TbResource tbResource) throws Exception {
|
||||||
return doPostWithTypedResponse("/api/resource", tbResource, new TypeReference<>() {
|
return doPostWithTypedResponse("/api/resource", tbResource, new TypeReference<>() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -709,10 +713,10 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<TbResource> loadLwm2mResources() throws Exception {
|
private List<TbResourceInfo> loadLwm2mResources() throws Exception {
|
||||||
var models = List.of("1", "2", "3", "5", "6", "9", "19", "3303");
|
var models = List.of("1", "2", "3", "5", "6", "9", "19", "3303");
|
||||||
|
|
||||||
List<TbResource> resources = new ArrayList<>(models.size());
|
List<TbResourceInfo> resources = new ArrayList<>(models.size());
|
||||||
|
|
||||||
for (String model : models) {
|
for (String model : models) {
|
||||||
String fileName = model + ".xml";
|
String fileName = model + ".xml";
|
||||||
@ -728,7 +732,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
|||||||
return resources;
|
return resources;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeLoadResources(List<TbResource> resources) throws Exception {
|
private void removeLoadResources(List<TbResourceInfo> resources) throws Exception {
|
||||||
for (TbResourceInfo resource : resources) {
|
for (TbResourceInfo resource : resources) {
|
||||||
doDelete("/api/resource/" + resource.getId().getId().toString())
|
doDelete("/api/resource/" + resource.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
|
|||||||
@ -202,7 +202,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private TbResource createResource(String title, String filename) throws Exception {
|
private TbResourceInfo createResource(String title, String filename) throws Exception {
|
||||||
TbResource resource = new TbResource();
|
TbResource resource = new TbResource();
|
||||||
resource.setTenantId(tenantId);
|
resource.setTenantId(tenantId);
|
||||||
resource.setTitle(title);
|
resource.setTitle(title);
|
||||||
@ -222,25 +222,29 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
|||||||
resource.setFileName(DEFAULT_FILE_NAME);
|
resource.setFileName(DEFAULT_FILE_NAME);
|
||||||
resource.setData(TEST_DATA);
|
resource.setData(TEST_DATA);
|
||||||
|
|
||||||
TbResource savedResource = tbResourceService.save(resource);
|
TbResourceInfo savedResource = tbResourceService.save(resource);
|
||||||
|
|
||||||
Assert.assertNotNull(savedResource);
|
|
||||||
Assert.assertNotNull(savedResource.getId());
|
|
||||||
Assert.assertTrue(savedResource.getCreatedTime() > 0);
|
|
||||||
assertEquals(resource.getTenantId(), savedResource.getTenantId());
|
|
||||||
assertEquals(resource.getTitle(), savedResource.getTitle());
|
|
||||||
assertEquals(resource.getResourceKey(), savedResource.getResourceKey());
|
|
||||||
assertArrayEquals(TEST_DATA, savedResource.getData());
|
|
||||||
|
|
||||||
savedResource.setTitle("My new resource");
|
|
||||||
savedResource.setData(null);
|
|
||||||
|
|
||||||
tbResourceService.save(savedResource);
|
|
||||||
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
||||||
assertEquals(foundResource.getTitle(), savedResource.getTitle());
|
|
||||||
|
Assert.assertNotNull(foundResource);
|
||||||
|
Assert.assertNotNull(foundResource.getId());
|
||||||
|
Assert.assertTrue(foundResource.getCreatedTime() > 0);
|
||||||
|
assertEquals(resource.getTenantId(), foundResource.getTenantId());
|
||||||
|
assertEquals(resource.getTitle(), foundResource.getTitle());
|
||||||
|
assertEquals(resource.getResourceKey(), foundResource.getResourceKey());
|
||||||
|
assertArrayEquals(TEST_DATA, foundResource.getData());
|
||||||
|
|
||||||
|
String title = "My new resource";
|
||||||
|
|
||||||
|
foundResource.setTitle(title);
|
||||||
|
foundResource.setData(null);
|
||||||
|
|
||||||
|
tbResourceService.save(foundResource);
|
||||||
|
foundResource = resourceService.findResourceById(tenantId, foundResource.getId());
|
||||||
|
assertEquals(title, foundResource.getTitle());
|
||||||
assertArrayEquals(foundResource.getData(), TEST_DATA);
|
assertArrayEquals(foundResource.getData(), TEST_DATA);
|
||||||
|
|
||||||
tbResourceService.delete(savedResource, null);
|
tbResourceService.delete(foundResource, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -251,17 +255,19 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
|||||||
resource.setFileName("test_model.xml");
|
resource.setFileName("test_model.xml");
|
||||||
resource.setEncodedData(Base64.getEncoder().encodeToString(LWM2M_TEST_MODEL.getBytes()));
|
resource.setEncodedData(Base64.getEncoder().encodeToString(LWM2M_TEST_MODEL.getBytes()));
|
||||||
|
|
||||||
TbResource savedResource = tbResourceService.save(resource);
|
TbResourceInfo savedResource = tbResourceService.save(resource);
|
||||||
|
|
||||||
Assert.assertNotNull(savedResource);
|
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
||||||
Assert.assertNotNull(savedResource.getId());
|
|
||||||
Assert.assertTrue(savedResource.getCreatedTime() > 0);
|
|
||||||
assertEquals(resource.getTenantId(), savedResource.getTenantId());
|
|
||||||
assertEquals("My first resource id=0 v1.0", savedResource.getTitle());
|
|
||||||
assertEquals("0_1.0", savedResource.getResourceKey());
|
|
||||||
assertArrayEquals(savedResource.getData(), LWM2M_TEST_MODEL.getBytes());
|
|
||||||
|
|
||||||
tbResourceService.delete(savedResource, null);
|
Assert.assertNotNull(foundResource);
|
||||||
|
Assert.assertNotNull(foundResource.getId());
|
||||||
|
Assert.assertTrue(foundResource.getCreatedTime() > 0);
|
||||||
|
assertEquals(resource.getTenantId(), foundResource.getTenantId());
|
||||||
|
assertEquals("My first resource id=0 v1.0", foundResource.getTitle());
|
||||||
|
assertEquals("0_1.0", foundResource.getResourceKey());
|
||||||
|
assertArrayEquals(foundResource.getData(), LWM2M_TEST_MODEL.getBytes());
|
||||||
|
|
||||||
|
tbResourceService.delete(foundResource, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -271,11 +277,12 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
|||||||
resource.setTitle("My resource");
|
resource.setTitle("My resource");
|
||||||
resource.setFileName(DEFAULT_FILE_NAME);
|
resource.setFileName(DEFAULT_FILE_NAME);
|
||||||
resource.setData(TEST_DATA);
|
resource.setData(TEST_DATA);
|
||||||
TbResource savedResource = tbResourceService.save(resource);
|
TbResourceInfo savedResource = tbResourceService.save(resource);
|
||||||
|
|
||||||
assertEquals(TenantId.SYS_TENANT_ID, savedResource.getTenantId());
|
assertEquals(TenantId.SYS_TENANT_ID, savedResource.getTenantId());
|
||||||
|
|
||||||
tbResourceService.delete(savedResource, null);
|
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
||||||
|
tbResourceService.delete(foundResource, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -286,7 +293,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
|||||||
resource.setTitle("My resource");
|
resource.setTitle("My resource");
|
||||||
resource.setFileName(DEFAULT_FILE_NAME);
|
resource.setFileName(DEFAULT_FILE_NAME);
|
||||||
resource.setData(TEST_DATA);
|
resource.setData(TEST_DATA);
|
||||||
resource = tbResourceService.save(resource);
|
TbResourceInfo savedResource = tbResourceService.save(resource);
|
||||||
|
|
||||||
TbResource resource2 = new TbResource();
|
TbResource resource2 = new TbResource();
|
||||||
resource2.setTenantId(tenantId);
|
resource2.setTenantId(tenantId);
|
||||||
@ -294,11 +301,11 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
|||||||
resource2.setTitle("My resource");
|
resource2.setTitle("My resource");
|
||||||
resource2.setFileName(DEFAULT_FILE_NAME);
|
resource2.setFileName(DEFAULT_FILE_NAME);
|
||||||
resource2.setData(TEST_DATA);
|
resource2.setData(TEST_DATA);
|
||||||
resource2 = tbResourceService.save(resource2);
|
TbResourceInfo savedResource2 = tbResourceService.save(resource2);
|
||||||
|
|
||||||
assertThat(resource2.getId()).isNotEqualTo(resource.getId());
|
assertThat(savedResource2.getId()).isNotEqualTo(savedResource.getId());
|
||||||
assertThat(resource2.getFileName()).isEqualTo("test.jks");
|
assertThat(savedResource2.getFileName()).isEqualTo("test.jks");
|
||||||
assertThat(resource2.getResourceKey()).isEqualTo("test_(1).jks");
|
assertThat(savedResource2.getResourceKey()).isEqualTo("test_(1).jks");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -348,12 +355,13 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
|||||||
resource.setTitle("My resource");
|
resource.setTitle("My resource");
|
||||||
resource.setFileName(DEFAULT_FILE_NAME);
|
resource.setFileName(DEFAULT_FILE_NAME);
|
||||||
resource.setData(TEST_DATA);
|
resource.setData(TEST_DATA);
|
||||||
TbResource savedResource = tbResourceService.save(resource);
|
TbResourceInfo savedResource = tbResourceService.save(resource);
|
||||||
|
|
||||||
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
||||||
Assert.assertNotNull(foundResource);
|
Assert.assertNotNull(foundResource);
|
||||||
assertEquals(savedResource, foundResource);
|
assertEquals(savedResource, new TbResourceInfo(foundResource));
|
||||||
tbResourceService.delete(savedResource, null);
|
assertArrayEquals(TEST_DATA, foundResource.getData());
|
||||||
|
tbResourceService.delete(foundResource, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -364,12 +372,13 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
|||||||
resource.setTitle("My resource");
|
resource.setTitle("My resource");
|
||||||
resource.setFileName(DEFAULT_FILE_NAME);
|
resource.setFileName(DEFAULT_FILE_NAME);
|
||||||
resource.setData(TEST_DATA);
|
resource.setData(TEST_DATA);
|
||||||
TbResource savedResource = tbResourceService.save(resource);
|
TbResourceInfo savedResource = tbResourceService.save(resource);
|
||||||
|
|
||||||
TbResource foundResource = resourceService.findResourceByTenantIdAndKey(tenantId, savedResource.getResourceType(), savedResource.getResourceKey());
|
TbResource foundResource = resourceService.findResourceByTenantIdAndKey(tenantId, savedResource.getResourceType(), savedResource.getResourceKey());
|
||||||
Assert.assertNotNull(foundResource);
|
Assert.assertNotNull(foundResource);
|
||||||
assertEquals(savedResource, foundResource);
|
assertEquals(savedResource, new TbResourceInfo(foundResource));
|
||||||
tbResourceService.delete(savedResource, null);
|
assertArrayEquals(TEST_DATA, foundResource.getData());
|
||||||
|
tbResourceService.delete(foundResource, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -379,11 +388,11 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
|||||||
resource.setTitle("My resource");
|
resource.setTitle("My resource");
|
||||||
resource.setFileName(DEFAULT_FILE_NAME);
|
resource.setFileName(DEFAULT_FILE_NAME);
|
||||||
resource.setData(TEST_DATA);
|
resource.setData(TEST_DATA);
|
||||||
TbResource savedResource = tbResourceService.save(resource);
|
TbResourceInfo savedResource = tbResourceService.save(resource);
|
||||||
|
|
||||||
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
||||||
Assert.assertNotNull(foundResource);
|
Assert.assertNotNull(foundResource);
|
||||||
tbResourceService.delete(savedResource, null);
|
tbResourceService.delete(foundResource, null);
|
||||||
foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
||||||
Assert.assertNull(foundResource);
|
Assert.assertNull(foundResource);
|
||||||
}
|
}
|
||||||
@ -471,7 +480,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
|||||||
resource.setResourceType(ResourceType.JKS);
|
resource.setResourceType(ResourceType.JKS);
|
||||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||||
resource.setData(TEST_DATA);
|
resource.setData(TEST_DATA);
|
||||||
resources.add(new TbResourceInfo(tbResourceService.save(resource)));
|
resources.add(tbResourceService.save(resource));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<TbResourceInfo> loadedResources = new ArrayList<>();
|
List<TbResourceInfo> loadedResources = new ArrayList<>();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user