Commit 9272611ace55e63f13bfe2f7ad12cb2ed8cbc65a

Authored by nickAS21
1 parent 090babdf

lwm2m: back add resource(s)

@@ -117,6 +117,8 @@ public class TbResourceController extends BaseController { @@ -117,6 +117,8 @@ public class TbResourceController extends BaseController {
117 StringJoiner noSaveResources = new StringJoiner("; "); 117 StringJoiner noSaveResources = new StringJoiner("; ");
118 resources.forEach(resource -> { 118 resources.forEach(resource -> {
119 try { 119 try {
  120 + resource.setTenantId(getTenantId());
  121 + checkEntity(resource.getId(), resource, Resource.TB_RESOURCE);
120 addResources.add(addResource(resource)); 122 addResources.add(addResource(resource));
121 } catch (Exception e) { 123 } catch (Exception e) {
122 noSaveResources.add(resource.getFileName()); 124 noSaveResources.add(resource.getFileName());
@@ -197,7 +199,6 @@ public class TbResourceController extends BaseController { @@ -197,7 +199,6 @@ public class TbResourceController extends BaseController {
197 } 199 }
198 200
199 private TbResource addResource(TbResource resource) throws Exception { 201 private TbResource addResource(TbResource resource) throws Exception {
200 - resource.setTenantId(getTenantId());  
201 checkEntity(resource.getId(), resource, Resource.TB_RESOURCE); 202 checkEntity(resource.getId(), resource, Resource.TB_RESOURCE);
202 TbResource savedResource = checkNotNull(resourceService.saveResource(resource)); 203 TbResource savedResource = checkNotNull(resourceService.saveResource(resource));
203 tbClusterService.onResourceChange(savedResource, null); 204 tbClusterService.onResourceChange(savedResource, null);
@@ -465,6 +465,10 @@ public abstract class AbstractWebTest { @@ -465,6 +465,10 @@ public abstract class AbstractWebTest {
465 return readResponse(doPost(urlTemplate, content, params).andExpect(status().isOk()), responseType); 465 return readResponse(doPost(urlTemplate, content, params).andExpect(status().isOk()), responseType);
466 } 466 }
467 467
  468 + protected <T, R> R doPostWithTypedResponse(String urlTemplate, T content, TypeReference<R> responseType, ResultMatcher resultMatcher, String... params) throws Exception {
  469 + return readResponse(doPost(urlTemplate, content, params).andExpect(resultMatcher), responseType);
  470 + }
  471 +
468 protected <T> T doPostAsync(String urlTemplate, T content, Class<T> responseClass, ResultMatcher resultMatcher, String... params) throws Exception { 472 protected <T> T doPostAsync(String urlTemplate, T content, Class<T> responseClass, ResultMatcher resultMatcher, String... params) throws Exception {
469 return readResponse(doPostAsync(urlTemplate, content, DEFAULT_TIMEOUT, params).andExpect(resultMatcher), responseClass); 473 return readResponse(doPostAsync(urlTemplate, content, DEFAULT_TIMEOUT, params).andExpect(resultMatcher), responseClass);
470 } 474 }
@@ -32,6 +32,7 @@ import org.thingsboard.server.common.data.security.Authority; @@ -32,6 +32,7 @@ import org.thingsboard.server.common.data.security.Authority;
32 import java.util.ArrayList; 32 import java.util.ArrayList;
33 import java.util.Collections; 33 import java.util.Collections;
34 import java.util.List; 34 import java.util.List;
  35 +import java.util.stream.Collectors;
35 36
36 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; 37 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
37 38
@@ -79,7 +80,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes @@ -79,7 +80,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
79 resource.setFileName(DEFAULT_FILE_NAME); 80 resource.setFileName(DEFAULT_FILE_NAME);
80 resource.setData("Test Data"); 81 resource.setData("Test Data");
81 82
82 - TbResource savedResource = doPost("/api/resource", resource, TbResource.class); 83 + TbResource savedResource = save(resource);
83 84
84 Assert.assertNotNull(savedResource); 85 Assert.assertNotNull(savedResource);
85 Assert.assertNotNull(savedResource.getId()); 86 Assert.assertNotNull(savedResource.getId());
@@ -92,7 +93,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes @@ -92,7 +93,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
92 93
93 savedResource.setTitle("My new resource"); 94 savedResource.setTitle("My new resource");
94 95
95 - doPost("/api/resource", savedResource, TbResource.class); 96 + save(savedResource);
96 97
97 TbResource foundResource = doGet("/api/resource/" + savedResource.getId().getId().toString(), TbResource.class); 98 TbResource foundResource = doGet("/api/resource/" + savedResource.getId().getId().toString(), TbResource.class);
98 Assert.assertEquals(foundResource.getTitle(), savedResource.getTitle()); 99 Assert.assertEquals(foundResource.getTitle(), savedResource.getTitle());
@@ -106,10 +107,10 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes @@ -106,10 +107,10 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
106 resource.setFileName(DEFAULT_FILE_NAME); 107 resource.setFileName(DEFAULT_FILE_NAME);
107 resource.setData("Test Data"); 108 resource.setData("Test Data");
108 109
109 - TbResource savedResource = doPost("/api/resource", resource, TbResource.class); 110 + TbResource savedResource = save(resource);
110 111
111 loginDifferentTenant(); 112 loginDifferentTenant();
112 - doPost("/api/resource", savedResource, TbResource.class, status().isForbidden()); 113 + doPostWithTypedResponse("/api/resource", Collections.singletonList(savedResource), new TypeReference<>(){}, status().isBadRequest());
113 deleteDifferentTenant(); 114 deleteDifferentTenant();
114 } 115 }
115 116
@@ -121,7 +122,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes @@ -121,7 +122,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
121 resource.setFileName(DEFAULT_FILE_NAME); 122 resource.setFileName(DEFAULT_FILE_NAME);
122 resource.setData("Test Data"); 123 resource.setData("Test Data");
123 124
124 - TbResource savedResource = doPost("/api/resource", resource, TbResource.class); 125 + TbResource savedResource = save(resource);
125 126
126 TbResource foundResource = doGet("/api/resource/" + savedResource.getId().getId().toString(), TbResource.class); 127 TbResource foundResource = doGet("/api/resource/" + savedResource.getId().getId().toString(), TbResource.class);
127 Assert.assertNotNull(foundResource); 128 Assert.assertNotNull(foundResource);
@@ -136,7 +137,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes @@ -136,7 +137,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
136 resource.setFileName(DEFAULT_FILE_NAME); 137 resource.setFileName(DEFAULT_FILE_NAME);
137 resource.setData("Test Data"); 138 resource.setData("Test Data");
138 139
139 - TbResource savedResource = doPost("/api/resource", resource, TbResource.class); 140 + TbResource savedResource = save(resource);
140 141
141 doDelete("/api/resource/" + savedResource.getId().getId().toString()) 142 doDelete("/api/resource/" + savedResource.getId().getId().toString())
142 .andExpect(status().isOk()); 143 .andExpect(status().isOk());
@@ -147,15 +148,18 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes @@ -147,15 +148,18 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
147 148
148 @Test 149 @Test
149 public void testFindTenantTbResources() throws Exception { 150 public void testFindTenantTbResources() throws Exception {
150 - List<TbResourceInfo> resources = new ArrayList<>(); 151 + List<TbResource> resourcesToSave = new ArrayList<>();
151 for (int i = 0; i < 173; i++) { 152 for (int i = 0; i < 173; i++) {
152 TbResource resource = new TbResource(); 153 TbResource resource = new TbResource();
153 resource.setTitle("Resource" + i); 154 resource.setTitle("Resource" + i);
154 resource.setResourceType(ResourceType.JKS); 155 resource.setResourceType(ResourceType.JKS);
155 resource.setFileName(i + DEFAULT_FILE_NAME); 156 resource.setFileName(i + DEFAULT_FILE_NAME);
156 resource.setData("Test Data"); 157 resource.setData("Test Data");
157 - resources.add(new TbResourceInfo(doPost("/api/resource", resource, TbResource.class))); 158 + resourcesToSave.add(resource);
158 } 159 }
  160 +
  161 + List<TbResourceInfo> resources =save(resourcesToSave).stream().map(TbResourceInfo::new).collect(Collectors.toList());
  162 +
159 List<TbResourceInfo> loadedResources = new ArrayList<>(); 163 List<TbResourceInfo> loadedResources = new ArrayList<>();
160 PageLink pageLink = new PageLink(24); 164 PageLink pageLink = new PageLink(24);
161 PageData<TbResourceInfo> pageData; 165 PageData<TbResourceInfo> pageData;
@@ -186,7 +190,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes @@ -186,7 +190,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
186 resource.setResourceType(ResourceType.JKS); 190 resource.setResourceType(ResourceType.JKS);
187 resource.setFileName(i + DEFAULT_FILE_NAME); 191 resource.setFileName(i + DEFAULT_FILE_NAME);
188 resource.setData("Test Data"); 192 resource.setData("Test Data");
189 - resources.add(new TbResourceInfo(doPost("/api/resource", resource, TbResource.class))); 193 + resources.add(new TbResourceInfo(save(resource)));
190 } 194 }
191 List<TbResourceInfo> loadedResources = new ArrayList<>(); 195 List<TbResourceInfo> loadedResources = new ArrayList<>();
192 PageLink pageLink = new PageLink(24); 196 PageLink pageLink = new PageLink(24);
@@ -236,7 +240,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes @@ -236,7 +240,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
236 resource.setResourceType(ResourceType.JKS); 240 resource.setResourceType(ResourceType.JKS);
237 resource.setFileName(i + DEFAULT_FILE_NAME); 241 resource.setFileName(i + DEFAULT_FILE_NAME);
238 resource.setData("Test Data"); 242 resource.setData("Test Data");
239 - expectedResources.add(new TbResourceInfo(doPost("/api/resource", resource, TbResource.class))); 243 + expectedResources.add(new TbResourceInfo(save(resource)));
240 } 244 }
241 245
242 loginSysAdmin(); 246 loginSysAdmin();
@@ -247,7 +251,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes @@ -247,7 +251,7 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
247 resource.setResourceType(ResourceType.JKS); 251 resource.setResourceType(ResourceType.JKS);
248 resource.setFileName(i + DEFAULT_FILE_NAME); 252 resource.setFileName(i + DEFAULT_FILE_NAME);
249 resource.setData("Test Data"); 253 resource.setData("Test Data");
250 - TbResourceInfo savedResource = new TbResourceInfo(doPost("/api/resource", resource, TbResource.class)); 254 + TbResourceInfo savedResource = new TbResourceInfo(save(resource));
251 systemResources.add(savedResource); 255 systemResources.add(savedResource);
252 if (i >= 73) { 256 if (i >= 73) {
253 expectedResources.add(savedResource); 257 expectedResources.add(savedResource);
@@ -281,4 +285,12 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes @@ -281,4 +285,12 @@ public abstract class BaseTbResourceControllerTest extends AbstractControllerTes
281 .andExpect(status().isOk()); 285 .andExpect(status().isOk());
282 } 286 }
283 } 287 }
  288 +
  289 + private TbResource save(TbResource tbResource) throws Exception {
  290 + return save(Collections.singletonList(tbResource)).get(0);
  291 + }
  292 +
  293 + private List<TbResource> save(List<TbResource> tbResources) throws Exception {
  294 + return doPostWithTypedResponse("/api/resource", tbResources, new TypeReference<>(){});
  295 + }
284 } 296 }