diff --git a/application/src/test/java/org/thingsboard/server/controller/BaseDeviceControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/BaseDeviceControllerTest.java index 7be96323c2..3139ba34b4 100644 --- a/application/src/test/java/org/thingsboard/server/controller/BaseDeviceControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/BaseDeviceControllerTest.java @@ -59,12 +59,12 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; @Slf4j public abstract class BaseDeviceControllerTest extends AbstractControllerTest { static final int TIMEOUT = 30; - static final TypeReference> PAGE_DATA_DEVICE_TYPE_REF = new TypeReference<>(){}; + static final TypeReference> PAGE_DATA_DEVICE_TYPE_REF = new TypeReference<>() { + }; ListeningExecutorService executor; - List> createFutures; - List> deleteFutures; + List> futures; PageData pageData; private Tenant savedTenant; @@ -72,8 +72,8 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { @Before public void beforeTest() throws Exception { - log.warn("beforeTest"); - executor = MoreExecutors.listeningDecorator(ThingsBoardExecutors.newWorkStealingPool(12, getClass())); + log.debug("beforeTest"); + executor = MoreExecutors.listeningDecorator(ThingsBoardExecutors.newWorkStealingPool(8, getClass())); loginSysAdmin(); @@ -94,14 +94,14 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { @After public void afterTest() throws Exception { - log.warn("afterTest..."); + log.debug("afterTest..."); executor.shutdownNow(); loginSysAdmin(); doDelete("/api/tenant/" + savedTenant.getId().getId()) .andExpect(status().isOk()); - log.warn("afterTest done"); + log.debug("afterTest done"); } @Test @@ -202,6 +202,8 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { Assert.assertEquals("typeA", deviceTypes.get(0).getType()); Assert.assertEquals("typeB", deviceTypes.get(1).getType()); Assert.assertEquals("typeC", deviceTypes.get(2).getType()); + + deleteDevicesAsync("/api/device/", devices); } @Test @@ -410,19 +412,19 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { @Test public void testFindTenantDevices() throws Exception { - log.warn("testFindTenantDevices"); - createFutures = new ArrayList<>(178); + log.debug("testFindTenantDevices"); + futures = new ArrayList<>(178); for (int i = 0; i < 178; i++) { Device device = new Device(); device.setName("Device" + i); device.setType("default"); - createFutures.add(executor.submit(() -> + futures.add(executor.submit(() -> doPost("/api/device", device, Device.class))); } - log.warn("await create devices"); - List devices = Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + log.debug("await create devices"); + List devices = Futures.allAsList(futures).get(TIMEOUT, TimeUnit.SECONDS); - log.warn("start reading"); + log.debug("start reading"); List loadedDevices = new ArrayList<>(178); PageLink pageLink = new PageLink(23); do { @@ -435,18 +437,18 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { } } while (pageData.hasNext()); - log.warn("asserting"); + log.debug("asserting"); assertThat(devices).containsExactlyInAnyOrderElementsOf(loadedDevices); - log.warn("delete devices async"); + log.debug("delete devices async"); deleteDevicesAsync("/api/device/", loadedDevices).get(TIMEOUT, TimeUnit.SECONDS); - log.warn("done"); + log.debug("done"); } @Test public void testFindTenantDevicesByName() throws Exception { String title1 = "Device title 1"; - createFutures = new ArrayList<>(143); + futures = new ArrayList<>(143); for (int i = 0; i < 143; i++) { Device device = new Device(); String suffix = RandomStringUtils.randomAlphanumeric(15); @@ -454,13 +456,13 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase(); device.setName(name); device.setType("default"); - createFutures.add(executor.submit(() -> + futures.add(executor.submit(() -> doPost("/api/device", device, Device.class))); } - List devicesTitle1 = Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + List devicesTitle1 = Futures.allAsList(futures).get(TIMEOUT, TimeUnit.SECONDS); String title2 = "Device title 2"; - createFutures = new ArrayList<>(75); + futures = new ArrayList<>(75); for (int i = 0; i < 75; i++) { Device device = new Device(); String suffix = RandomStringUtils.randomAlphanumeric(15); @@ -468,10 +470,10 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase(); device.setName(name); device.setType("default"); - createFutures.add(executor.submit(() -> + futures.add(executor.submit(() -> doPost("/api/device", device, Device.class))); } - List devicesTitle2 = Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + List devicesTitle2 = Futures.allAsList(futures).get(TIMEOUT, TimeUnit.SECONDS); List loadedDevicesTitle1 = new ArrayList<>(143); PageLink pageLink = new PageLink(15, 0, title1); @@ -517,20 +519,20 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { } ListenableFuture> deleteDevicesAsync(String urlTemplate, List loadedDevicesTitle1) { - deleteFutures = new ArrayList<>(loadedDevicesTitle1.size()); + List> futures = new ArrayList<>(loadedDevicesTitle1.size()); for (Device device : loadedDevicesTitle1) { - deleteFutures.add(executor.submit(() -> + futures.add(executor.submit(() -> doDelete(urlTemplate + device.getId().getId()) .andExpect(status().isOk()))); } - return Futures.allAsList(deleteFutures); + return Futures.allAsList(futures); } @Test public void testFindTenantDevicesByType() throws Exception { String title1 = "Device title 1"; String type1 = "typeA"; - createFutures = new ArrayList<>(143); + futures = new ArrayList<>(143); for (int i = 0; i < 143; i++) { Device device = new Device(); String suffix = RandomStringUtils.randomAlphanumeric(15); @@ -538,17 +540,17 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase(); device.setName(name); device.setType(type1); - createFutures.add(executor.submit(() -> + futures.add(executor.submit(() -> doPost("/api/device", device, Device.class))); if (i == 0) { - createFutures.get(0).get(TIMEOUT, TimeUnit.SECONDS); // wait for the device profile created first time + futures.get(0).get(TIMEOUT, TimeUnit.SECONDS); // wait for the device profile created first time } } - List devicesType1 = Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + List devicesType1 = Futures.allAsList(futures).get(TIMEOUT, TimeUnit.SECONDS); String title2 = "Device title 2"; String type2 = "typeB"; - createFutures = new ArrayList<>(75); + futures = new ArrayList<>(75); for (int i = 0; i < 75; i++) { Device device = new Device(); String suffix = RandomStringUtils.randomAlphanumeric(15); @@ -556,14 +558,14 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase(); device.setName(name); device.setType(type2); - createFutures.add(executor.submit(() -> + futures.add(executor.submit(() -> doPost("/api/device", device, Device.class))); if (i == 0) { - createFutures.get(0).get(TIMEOUT, TimeUnit.SECONDS); // wait for the device profile created first time + futures.get(0).get(TIMEOUT, TimeUnit.SECONDS); // wait for the device profile created first time } } - List devicesType2 = Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + List devicesType2 = Futures.allAsList(futures).get(TIMEOUT, TimeUnit.SECONDS); List loadedDevicesType1 = new ArrayList<>(143); PageLink pageLink = new PageLink(15); @@ -615,18 +617,18 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { customer = doPost("/api/customer", customer, Customer.class); CustomerId customerId = customer.getId(); - createFutures = new ArrayList<>(128); + futures = new ArrayList<>(128); for (int i = 0; i < 128; i++) { Device device = new Device(); device.setName("Device" + i); device.setType("default"); ListenableFuture future = executor.submit(() -> doPost("/api/device", device, Device.class)); - createFutures.add(Futures.transform(future, (dev) -> + futures.add(Futures.transform(future, (dev) -> doPost("/api/customer/" + customerId.getId() + "/device/" + dev.getId().getId(), Device.class), MoreExecutors.directExecutor())); } - List devices = Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + List devices = Futures.allAsList(futures).get(TIMEOUT, TimeUnit.SECONDS); List loadedDevices = new ArrayList<>(128); PageLink pageLink = new PageLink(23); @@ -641,9 +643,9 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { assertThat(devices).containsExactlyInAnyOrderElementsOf(loadedDevices); - log.warn("delete devices async"); + log.debug("delete devices async"); deleteDevicesAsync("/api/customer/device/", loadedDevices).get(TIMEOUT, TimeUnit.SECONDS); - log.warn("done"); + log.debug("done"); } @Test @@ -654,7 +656,7 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { CustomerId customerId = customer.getId(); String title1 = "Device title 1"; - createFutures = new ArrayList<>(125); + futures = new ArrayList<>(125); for (int i = 0; i < 125; i++) { Device device = new Device(); String suffix = RandomStringUtils.randomAlphanumeric(15); @@ -663,14 +665,14 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { device.setName(name); device.setType("default"); ListenableFuture future = executor.submit(() -> doPost("/api/device", device, Device.class)); - createFutures.add(Futures.transform(future, (dev) -> + futures.add(Futures.transform(future, (dev) -> doPost("/api/customer/" + customerId.getId() + "/device/" + dev.getId().getId(), Device.class), MoreExecutors.directExecutor())); } - List devicesTitle1 = Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + List devicesTitle1 = Futures.allAsList(futures).get(TIMEOUT, TimeUnit.SECONDS); String title2 = "Device title 2"; - createFutures = new ArrayList<>(143); + futures = new ArrayList<>(143); for (int i = 0; i < 143; i++) { Device device = new Device(); String suffix = RandomStringUtils.randomAlphanumeric(15); @@ -679,11 +681,11 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { device.setName(name); device.setType("default"); ListenableFuture future = executor.submit(() -> doPost("/api/device", device, Device.class)); - createFutures.add(Futures.transform(future, (dev) -> + futures.add(Futures.transform(future, (dev) -> doPost("/api/customer/" + customerId.getId() + "/device/" + dev.getId().getId(), Device.class), MoreExecutors.directExecutor())); } - List devicesTitle2 = Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + List devicesTitle2 = Futures.allAsList(futures).get(TIMEOUT, TimeUnit.SECONDS); List loadedDevicesTitle1 = new ArrayList<>(125); PageLink pageLink = new PageLink(15, 0, title1); @@ -737,7 +739,7 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { String title1 = "Device title 1"; String type1 = "typeC"; - createFutures = new ArrayList<>(125); + futures = new ArrayList<>(125); for (int i = 0; i < 125; i++) { Device device = new Device(); String suffix = RandomStringUtils.randomAlphanumeric(15); @@ -746,18 +748,18 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { device.setName(name); device.setType(type1); ListenableFuture future = executor.submit(() -> doPost("/api/device", device, Device.class)); - createFutures.add(Futures.transform(future, (dev) -> + futures.add(Futures.transform(future, (dev) -> doPost("/api/customer/" + customerId.getId() + "/device/" + dev.getId().getId(), Device.class), MoreExecutors.directExecutor())); if (i == 0) { - createFutures.get(0).get(TIMEOUT, TimeUnit.SECONDS); // wait for the device profile created first time + futures.get(0).get(TIMEOUT, TimeUnit.SECONDS); // wait for the device profile created first time } } - List devicesType1 = Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + List devicesType1 = Futures.allAsList(futures).get(TIMEOUT, TimeUnit.SECONDS); String title2 = "Device title 2"; String type2 = "typeD"; - createFutures = new ArrayList<>(143); + futures = new ArrayList<>(143); for (int i = 0; i < 143; i++) { Device device = new Device(); String suffix = RandomStringUtils.randomAlphanumeric(15); @@ -766,14 +768,14 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { device.setName(name); device.setType(type2); ListenableFuture future = executor.submit(() -> doPost("/api/device", device, Device.class)); - createFutures.add(Futures.transform(future, (dev) -> + futures.add(Futures.transform(future, (dev) -> doPost("/api/customer/" + customerId.getId() + "/device/" + dev.getId().getId(), Device.class), MoreExecutors.directExecutor())); if (i == 0) { - createFutures.get(0).get(TIMEOUT, TimeUnit.SECONDS); // wait for the device profile created first time + futures.get(0).get(TIMEOUT, TimeUnit.SECONDS); // wait for the device profile created first time } } - List devicesType2 = Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + List devicesType2 = Futures.allAsList(futures).get(TIMEOUT, TimeUnit.SECONDS); List loadedDevicesType1 = new ArrayList<>(125); PageLink pageLink = new PageLink(15); @@ -882,9 +884,8 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { doPost("/api/edge/" + savedEdge.getId().getId() + "/device/" + savedDevice.getId().getId(), Device.class); - PageData pageData = doGetTypedWithPageLink("/api/edge/" + savedEdge.getId().getId() + "/devices?", - new TypeReference>() { - }, new PageLink(100)); + pageData = doGetTypedWithPageLink("/api/edge/" + savedEdge.getId().getId() + "/devices?", + PAGE_DATA_DEVICE_TYPE_REF, new PageLink(100)); Assert.assertEquals(1, pageData.getData().size()); @@ -892,8 +893,7 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest { + "/device/" + savedDevice.getId().getId(), Device.class); pageData = doGetTypedWithPageLink("/api/edge/" + savedEdge.getId().getId() + "/devices?", - new TypeReference>() { - }, new PageLink(100)); + PAGE_DATA_DEVICE_TYPE_REF, new PageLink(100)); Assert.assertEquals(0, pageData.getData().size()); }