From 3084c2d70160f2e463630891fe2348f6b3368e81 Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Tue, 19 Apr 2022 16:41:40 +0300 Subject: [PATCH] BaseTenantControllerTest refactored and reformatted --- .../controller/BaseTenantControllerTest.java | 116 +++++++++--------- 1 file changed, 56 insertions(+), 60 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/BaseTenantControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/BaseTenantControllerTest.java index d89cc4c3c5..1538dde38f 100644 --- a/application/src/test/java/org/thingsboard/server/controller/BaseTenantControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/BaseTenantControllerTest.java @@ -34,9 +34,7 @@ import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import java.util.ArrayList; -import java.util.Collection; import java.util.List; -import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.TimeUnit; import static org.assertj.core.api.Assertions.assertThat; @@ -50,7 +48,6 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { static final TypeReference> PAGE_DATA_TENANT_INFO_TYPE_REF = new TypeReference<>(){}; static final int TIMEOUT = 30; - List> createFutures = new ArrayList<>(); List> deleteFutures = new ArrayList<>(); ListeningExecutorService executor; @@ -76,10 +73,10 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { Assert.assertEquals(tenant.getTitle(), savedTenant.getTitle()); savedTenant.setTitle("My new tenant"); doPost("/api/tenant", savedTenant, Tenant.class); - Tenant foundTenant = doGet("/api/tenant/"+savedTenant.getId().getId().toString(), Tenant.class); + Tenant foundTenant = doGet("/api/tenant/" + savedTenant.getId().getId().toString(), Tenant.class); Assert.assertEquals(foundTenant.getTitle(), savedTenant.getTitle()); - doDelete("/api/tenant/"+savedTenant.getId().getId().toString()) - .andExpect(status().isOk()); + doDelete("/api/tenant/" + savedTenant.getId().getId().toString()) + .andExpect(status().isOk()); } @Test @@ -96,11 +93,11 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { Tenant tenant = new Tenant(); tenant.setTitle("My tenant"); Tenant savedTenant = doPost("/api/tenant", tenant, Tenant.class); - Tenant foundTenant = doGet("/api/tenant/"+savedTenant.getId().getId().toString(), Tenant.class); + Tenant foundTenant = doGet("/api/tenant/" + savedTenant.getId().getId().toString(), Tenant.class); Assert.assertNotNull(foundTenant); Assert.assertEquals(savedTenant, foundTenant); - doDelete("/api/tenant/"+savedTenant.getId().getId().toString()) - .andExpect(status().isOk()); + doDelete("/api/tenant/" + savedTenant.getId().getId().toString()) + .andExpect(status().isOk()); } @Test @@ -109,10 +106,10 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { Tenant tenant = new Tenant(); tenant.setTitle("My tenant"); Tenant savedTenant = doPost("/api/tenant", tenant, Tenant.class); - TenantInfo foundTenant = doGet("/api/tenant/info/"+savedTenant.getId().getId().toString(), TenantInfo.class); + TenantInfo foundTenant = doGet("/api/tenant/info/" + savedTenant.getId().getId().toString(), TenantInfo.class); Assert.assertNotNull(foundTenant); Assert.assertEquals(new TenantInfo(savedTenant, "Default"), foundTenant); - doDelete("/api/tenant/"+savedTenant.getId().getId().toString()) + doDelete("/api/tenant/" + savedTenant.getId().getId().toString()) .andExpect(status().isOk()); } @@ -121,8 +118,8 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { loginSysAdmin(); Tenant tenant = new Tenant(); doPost("/api/tenant", tenant) - .andExpect(status().isBadRequest()) - .andExpect(statusReason(containsString("Tenant title should be specified"))); + .andExpect(status().isBadRequest()) + .andExpect(statusReason(containsString("Tenant title should be specified"))); } @Test @@ -132,8 +129,8 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { tenant.setTitle("My tenant"); tenant.setEmail("invalid@mail"); doPost("/api/tenant", tenant) - .andExpect(status().isBadRequest()) - .andExpect(statusReason(containsString("Invalid email address format"))); + .andExpect(status().isBadRequest()) + .andExpect(statusReason(containsString("Invalid email address format"))); } @Test @@ -142,29 +139,30 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { Tenant tenant = new Tenant(); tenant.setTitle("My tenant"); Tenant savedTenant = doPost("/api/tenant", tenant, Tenant.class); - doDelete("/api/tenant/"+savedTenant.getId().getId().toString()) - .andExpect(status().isOk()); - doGet("/api/tenant/"+savedTenant.getId().getId().toString()) - .andExpect(status().isNotFound()); + doDelete("/api/tenant/" + savedTenant.getId().getId().toString()) + .andExpect(status().isOk()); + doGet("/api/tenant/" + savedTenant.getId().getId().toString()) + .andExpect(status().isNotFound()); } @Test public void testFindTenants() throws Exception { loginSysAdmin(); - Collection tenants = new ConcurrentLinkedQueue<>(); + List tenants = new ArrayList<>(); PageLink pageLink = new PageLink(17); PageData pageData = doGetTypedWithPageLink("/api/tenants?", PAGE_DATA_TENANT_TYPE_REF, pageLink); Assert.assertFalse(pageData.hasNext()); Assert.assertEquals(1, pageData.getData().size()); tenants.addAll(pageData.getData()); - for (int i=0;i<56;i++) { + List> createFutures = new ArrayList<>(56); + for (int i = 0; i < 56; i++) { Tenant tenant = new Tenant(); - tenant.setTitle("Tenant"+i); + tenant.setTitle("Tenant" + i); createFutures.add(executor.submit(() -> - tenants.add(doPost("/api/tenant", tenant, Tenant.class)))); + doPost("/api/tenant", tenant, Tenant.class))); } - Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + tenants.addAll(Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS)); List loadedTenants = new ArrayList<>(); pageLink = new PageLink(17); @@ -180,15 +178,15 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { for (Tenant tenant : loadedTenants) { if (!tenant.getTitle().equals(TEST_TENANT_NAME)) { - deleteFutures.add(executor.submit(()-> - doDelete("/api/tenant/"+tenant.getId().getId().toString()) + deleteFutures.add(executor.submit(() -> + doDelete("/api/tenant/" + tenant.getId().getId().toString()) .andExpect(status().isOk()))); } } Futures.allAsList(deleteFutures).get(TIMEOUT, TimeUnit.SECONDS); pageLink = new PageLink(17); - pageData = doGetTypedWithPageLink("/api/tenants?", PAGE_DATA_TENANT_TYPE_REF, pageLink); + pageData = doGetTypedWithPageLink("/api/tenants?", PAGE_DATA_TENANT_TYPE_REF, pageLink); Assert.assertFalse(pageData.hasNext()); Assert.assertEquals(1, pageData.getData().size()); } @@ -199,39 +197,36 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { loginSysAdmin(); log.debug("test started"); String title1 = "Tenant title 1"; - Collection tenantsTitle1 = new ConcurrentLinkedQueue<>(); - createFutures.clear(); - for (int i=0;i<134;i++) { + List> createFutures = new ArrayList<>(134); + for (int i = 0; i < 134; i++) { Tenant tenant = new Tenant(); - String suffix = RandomStringUtils.randomAlphanumeric((int)(5 + Math.random()*10)); - String title = title1+suffix; + String suffix = RandomStringUtils.randomAlphanumeric((int) (5 + Math.random() * 10)); + String title = title1 + suffix; title = i % 2 == 0 ? title.toLowerCase() : title.toUpperCase(); tenant.setTitle(title); - createFutures.add(executor.submit(() -> - tenantsTitle1.add(doPost("/api/tenant", tenant, Tenant.class)))); + doPost("/api/tenant", tenant, Tenant.class))); } - Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); - log.debug("saved '{}', qty {}", title1, 134); + List tenantsTitle1 = Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + log.debug("saved '{}', qty {}", title1, tenantsTitle1.size()); String title2 = "Tenant title 2"; - Collection tenantsTitle2 = new ConcurrentLinkedQueue<>(); - createFutures.clear(); - for (int i=0;i<127;i++) { + createFutures = new ArrayList<>(127); + for (int i = 0; i < 127; i++) { Tenant tenant = new Tenant(); - String suffix = RandomStringUtils.randomAlphanumeric((int)(5 + Math.random()*10)); - String title = title2+suffix; + String suffix = RandomStringUtils.randomAlphanumeric((int) (5 + Math.random() * 10)); + String title = title2 + suffix; title = i % 2 == 0 ? title.toLowerCase() : title.toUpperCase(); tenant.setTitle(title); createFutures.add(executor.submit(() -> - tenantsTitle2.add(doPost("/api/tenant", tenant, Tenant.class)))); + doPost("/api/tenant", tenant, Tenant.class))); } - Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); - log.debug("saved '{}', qty {}", title2, 127); + List tenantsTitle2 = Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + log.debug("saved '{}', qty {}", title2, tenantsTitle2.size()); - List loadedTenantsTitle1 = new ArrayList<>(); + List loadedTenantsTitle1 = new ArrayList<>(134); PageLink pageLink = new PageLink(15, 0, title1); PageData pageData = null; do { @@ -247,7 +242,7 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { assertThat(tenantsTitle1).as(title1).containsExactlyInAnyOrderElementsOf(loadedTenantsTitle1); log.debug("asserted"); - List loadedTenantsTitle2 = new ArrayList<>(); + List loadedTenantsTitle2 = new ArrayList<>(127); pageLink = new PageLink(4, 0, title2); do { pageData = doGetTypedWithPageLink("/api/tenants?", PAGE_DATA_TENANT_TYPE_REF, pageLink); @@ -263,8 +258,8 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { deleteFutures.clear(); for (Tenant tenant : loadedTenantsTitle1) { - deleteFutures.add(executor.submit(()-> - doDelete("/api/tenant/"+tenant.getId().getId().toString()) + deleteFutures.add(executor.submit(() -> + doDelete("/api/tenant/" + tenant.getId().getId().toString()) .andExpect(status().isOk()))); } @@ -280,8 +275,8 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { deleteFutures.clear(); for (Tenant tenant : loadedTenantsTitle2) { - deleteFutures.add(executor.submit(()-> - doDelete("/api/tenant/"+tenant.getId().getId().toString()) + deleteFutures.add(executor.submit(() -> + doDelete("/api/tenant/" + tenant.getId().getId().toString()) .andExpect(status().isOk()))); } @@ -298,20 +293,21 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { @Test public void testFindTenantInfos() throws Exception { loginSysAdmin(); - Collection tenants = new ConcurrentLinkedQueue<>(); + List tenants = new ArrayList<>(); PageLink pageLink = new PageLink(17); PageData pageData = doGetTypedWithPageLink("/api/tenantInfos?", PAGE_DATA_TENANT_INFO_TYPE_REF, pageLink); Assert.assertFalse(pageData.hasNext()); Assert.assertEquals(1, pageData.getData().size()); tenants.addAll(pageData.getData()); - for (int i=0;i<56;i++) { + List> createFutures = new ArrayList<>(56); + for (int i = 0; i < 56; i++) { Tenant tenant = new Tenant(); - tenant.setTitle("Tenant"+i); + tenant.setTitle("Tenant" + i); createFutures.add(executor.submit(() -> - tenants.add(new TenantInfo(doPost("/api/tenant", tenant, Tenant.class), "Default")))); + new TenantInfo(doPost("/api/tenant", tenant, Tenant.class), "Default"))); } - Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS); + tenants.addAll(Futures.allAsList(createFutures).get(TIMEOUT, TimeUnit.SECONDS)); List loadedTenants = new ArrayList<>(); pageLink = new PageLink(17); @@ -322,20 +318,20 @@ public abstract class BaseTenantControllerTest extends AbstractControllerTest { pageLink = pageLink.nextPageLink(); } } while (pageData.hasNext()); - + assertThat(tenants).containsExactlyInAnyOrderElementsOf(loadedTenants); for (TenantInfo tenant : loadedTenants) { if (!tenant.getTitle().equals(TEST_TENANT_NAME)) { - deleteFutures.add(executor.submit(()-> - doDelete("/api/tenant/"+tenant.getId().getId().toString()) + deleteFutures.add(executor.submit(() -> + doDelete("/api/tenant/" + tenant.getId().getId().toString()) .andExpect(status().isOk()))); } } Futures.allAsList(deleteFutures).get(TIMEOUT, TimeUnit.SECONDS); - + pageLink = new PageLink(17); - pageData = doGetTypedWithPageLink("/api/tenantInfos?", PAGE_DATA_TENANT_INFO_TYPE_REF, pageLink); + pageData = doGetTypedWithPageLink("/api/tenantInfos?", PAGE_DATA_TENANT_INFO_TYPE_REF, pageLink); Assert.assertFalse(pageData.hasNext()); Assert.assertEquals(1, pageData.getData().size()); }