Browse Source

lwm2m: back add resource(s)

pull/4339/head
nickAS21 6 years ago
parent
commit
9272611ace
  1. 3
      application/src/main/java/org/thingsboard/server/controller/TbResourceController.java
  2. 4
      application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java
  3. 34
      application/src/test/java/org/thingsboard/server/controller/BaseTbResourceControllerTest.java

3
application/src/main/java/org/thingsboard/server/controller/TbResourceController.java

@ -117,6 +117,8 @@ public class TbResourceController extends BaseController {
StringJoiner noSaveResources = new StringJoiner("; ");
resources.forEach(resource -> {
try {
resource.setTenantId(getTenantId());
checkEntity(resource.getId(), resource, Resource.TB_RESOURCE);
addResources.add(addResource(resource));
} catch (Exception e) {
noSaveResources.add(resource.getFileName());
@ -197,7 +199,6 @@ public class TbResourceController extends BaseController {
}
private TbResource addResource(TbResource resource) throws Exception {
resource.setTenantId(getTenantId());
checkEntity(resource.getId(), resource, Resource.TB_RESOURCE);
TbResource savedResource = checkNotNull(resourceService.saveResource(resource));
tbClusterService.onResourceChange(savedResource, null);

4
application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java

@ -465,6 +465,10 @@ public abstract class AbstractWebTest {
return readResponse(doPost(urlTemplate, content, params).andExpect(status().isOk()), responseType);
}
protected <T, R> R doPostWithTypedResponse(String urlTemplate, T content, TypeReference<R> responseType, ResultMatcher resultMatcher, String... params) throws Exception {
return readResponse(doPost(urlTemplate, content, params).andExpect(resultMatcher), responseType);
}
protected <T> T doPostAsync(String urlTemplate, T content, Class<T> responseClass, ResultMatcher resultMatcher, String... params) throws Exception {
return readResponse(doPostAsync(urlTemplate, content, DEFAULT_TIMEOUT, params).andExpect(resultMatcher), responseClass);
}

34
application/src/test/java/org/thingsboard/server/controller/BaseTbResourceControllerTest.java

@ -32,6 +32,7 @@ import org.thingsboard.server.common.data.security.Authority;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@ -79,7 +80,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
resource.setFileName(DEFAULT_FILE_NAME);
resource.setData("Test Data");
TbResource savedResource = doPost("/api/resource", resource, TbResource.class);
TbResource savedResource = save(resource);
Assert.assertNotNull(savedResource);
Assert.assertNotNull(savedResource.getId());
@ -92,7 +93,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
savedResource.setTitle("My new resource");
doPost("/api/resource", savedResource, TbResource.class);
save(savedResource);
TbResource foundResource = doGet("/api/resource/" + savedResource.getId().getId().toString(), TbResource.class);
Assert.assertEquals(foundResource.getTitle(), savedResource.getTitle());
@ -106,10 +107,10 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
resource.setFileName(DEFAULT_FILE_NAME);
resource.setData("Test Data");
TbResource savedResource = doPost("/api/resource", resource, TbResource.class);
TbResource savedResource = save(resource);
loginDifferentTenant();
doPost("/api/resource", savedResource, TbResource.class, status().isForbidden());
doPostWithTypedResponse("/api/resource", Collections.singletonList(savedResource), new TypeReference<>(){}, status().isBadRequest());
deleteDifferentTenant();
}
@ -121,7 +122,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
resource.setFileName(DEFAULT_FILE_NAME);
resource.setData("Test Data");
TbResource savedResource = doPost("/api/resource", resource, TbResource.class);
TbResource savedResource = save(resource);
TbResource foundResource = doGet("/api/resource/" + savedResource.getId().getId().toString(), TbResource.class);
Assert.assertNotNull(foundResource);
@ -136,7 +137,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
resource.setFileName(DEFAULT_FILE_NAME);
resource.setData("Test Data");
TbResource savedResource = doPost("/api/resource", resource, TbResource.class);
TbResource savedResource = save(resource);
doDelete("/api/resource/" + savedResource.getId().getId().toString())
.andExpect(status().isOk());
@ -147,15 +148,18 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
@Test
public void testFindTenantTbResources() throws Exception {
List<TbResourceInfo> resources = new ArrayList<>();
List<TbResource> resourcesToSave = new ArrayList<>();
for (int i = 0; i < 173; i++) {
TbResource resource = new TbResource();
resource.setTitle("Resource" + i);
resource.setResourceType(ResourceType.JKS);
resource.setFileName(i + DEFAULT_FILE_NAME);
resource.setData("Test Data");
resources.add(new TbResourceInfo(doPost("/api/resource", resource, TbResource.class)));
resourcesToSave.add(resource);
}
List<TbResourceInfo> resources =save(resourcesToSave).stream().map(TbResourceInfo::new).collect(Collectors.toList());
List<TbResourceInfo> loadedResources = new ArrayList<>();
PageLink pageLink = new PageLink(24);
PageData<TbResourceInfo> pageData;
@ -186,7 +190,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
resource.setResourceType(ResourceType.JKS);
resource.setFileName(i + DEFAULT_FILE_NAME);
resource.setData("Test Data");
resources.add(new TbResourceInfo(doPost("/api/resource", resource, TbResource.class)));
resources.add(new TbResourceInfo(save(resource)));
}
List<TbResourceInfo> loadedResources = new ArrayList<>();
PageLink pageLink = new PageLink(24);
@ -236,7 +240,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
resource.setResourceType(ResourceType.JKS);
resource.setFileName(i + DEFAULT_FILE_NAME);
resource.setData("Test Data");
expectedResources.add(new TbResourceInfo(doPost("/api/resource", resource, TbResource.class)));
expectedResources.add(new TbResourceInfo(save(resource)));
}
loginSysAdmin();
@ -247,7 +251,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
resource.setResourceType(ResourceType.JKS);
resource.setFileName(i + DEFAULT_FILE_NAME);
resource.setData("Test Data");
TbResourceInfo savedResource = new TbResourceInfo(doPost("/api/resource", resource, TbResource.class));
TbResourceInfo savedResource = new TbResourceInfo(save(resource));
systemResources.add(savedResource);
if (i >= 73) {
expectedResources.add(savedResource);
@ -281,4 +285,12 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
.andExpect(status().isOk());
}
}
private TbResource save(TbResource tbResource) throws Exception {
return save(Collections.singletonList(tbResource)).get(0);
}
private List<TbResource> save(List<TbResource> tbResources) throws Exception {
return doPostWithTypedResponse("/api/resource", tbResources, new TypeReference<>(){});
}
}

Loading…
Cancel
Save