From b8b078e590dda599b8a1e518fc7eb5da0caa9920 Mon Sep 17 00:00:00 2001 From: Volodymyr Babak Date: Mon, 3 Jul 2017 18:43:26 +0300 Subject: [PATCH] Fixed controller tests --- .mvn/jvm.config | 1 - .../controller/AbstractControllerTest.java | 1 - .../controller/AdminControllerTest.java | 133 ---- .../controller/AssetControllerTest.java | 658 ------------------ .../controller/BaseAdminControllerTest.java | 13 - .../controller/BaseTenantControllerTest.java | 2 +- .../controller/ControllerSqlTestSuite.java | 11 +- .../server/system/SystemSqlTestSuite.java | 3 +- 8 files changed, 7 insertions(+), 815 deletions(-) delete mode 100644 .mvn/jvm.config delete mode 100644 application/src/test/java/org/thingsboard/server/controller/AdminControllerTest.java delete mode 100644 application/src/test/java/org/thingsboard/server/controller/AssetControllerTest.java diff --git a/.mvn/jvm.config b/.mvn/jvm.config deleted file mode 100644 index 16e2988be2..0000000000 --- a/.mvn/jvm.config +++ /dev/null @@ -1 +0,0 @@ --Xmx6G -Xms1024m \ No newline at end of file diff --git a/application/src/test/java/org/thingsboard/server/controller/AbstractControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/AbstractControllerTest.java index 052b61ac6b..8be6105e35 100644 --- a/application/src/test/java/org/thingsboard/server/controller/AbstractControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/AbstractControllerTest.java @@ -80,7 +80,6 @@ import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppC @ActiveProfiles("test") @RunWith(SpringRunner.class) @ContextConfiguration(classes = AbstractControllerTest.class, loader = SpringBootContextLoader.class) -@TestPropertySource(locations = {"classpath:cassandra-test.properties", "classpath:application-test.properties", "classpath:nosql-test.properties"}) @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) @Configuration @ComponentScan({"org.thingsboard.server"}) diff --git a/application/src/test/java/org/thingsboard/server/controller/AdminControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/AdminControllerTest.java deleted file mode 100644 index 8f6bef66a7..0000000000 --- a/application/src/test/java/org/thingsboard/server/controller/AdminControllerTest.java +++ /dev/null @@ -1,133 +0,0 @@ -/** - * Copyright © 2016-2017 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.controller; - -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.notNullValue; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -import org.thingsboard.server.common.data.AdminSettings; -import org.junit.Test; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; - -public class AdminControllerTest extends AbstractControllerTest { - - @Test - public void testFindAdminSettingsByKey() throws Exception { - loginSysAdmin(); - doGet("/api/admin/settings/general") - .andExpect(status().isOk()) - .andExpect(content().contentType(contentType)) - .andExpect(jsonPath("$.id", notNullValue())) - .andExpect(jsonPath("$.key", is("general"))) - .andExpect(jsonPath("$.jsonValue.baseUrl", is("http://localhost:8080"))); - - doGet("/api/admin/settings/mail") - .andExpect(status().isOk()) - .andExpect(content().contentType(contentType)) - .andExpect(jsonPath("$.id", notNullValue())) - .andExpect(jsonPath("$.key", is("mail"))) - .andExpect(jsonPath("$.jsonValue.smtpProtocol", is("smtp"))) - .andExpect(jsonPath("$.jsonValue.smtpHost", is("localhost"))) - .andExpect(jsonPath("$.jsonValue.smtpPort", is("25"))); - - doGet("/api/admin/settings/unknown") - .andExpect(status().isNotFound()); - - } - - @Test - public void testSaveAdminSettings() throws Exception { - loginSysAdmin(); - AdminSettings adminSettings = doGet("/api/admin/settings/general", AdminSettings.class); - - JsonNode jsonValue = adminSettings.getJsonValue(); - ((ObjectNode) jsonValue).put("baseUrl", "http://myhost.org"); - adminSettings.setJsonValue(jsonValue); - - doPost("/api/admin/settings", adminSettings).andExpect(status().isOk()); - - doGet("/api/admin/settings/general") - .andExpect(status().isOk()) - .andExpect(content().contentType(contentType)) - .andExpect(jsonPath("$.jsonValue.baseUrl", is("http://myhost.org"))); - - ((ObjectNode) jsonValue).put("baseUrl", "http://localhost:8080"); - adminSettings.setJsonValue(jsonValue); - - doPost("/api/admin/settings", adminSettings) - .andExpect(status().isOk()); - } - - @Test - public void testSaveAdminSettingsWithEmptyKey() throws Exception { - loginSysAdmin(); - AdminSettings adminSettings = doGet("/api/admin/settings/mail", AdminSettings.class); - adminSettings.setKey(null); - doPost("/api/admin/settings", adminSettings) - .andExpect(status().isBadRequest()) - .andExpect(statusReason(containsString("Key should be specified"))); - } - - @Test - public void testChangeAdminSettingsKey() throws Exception { - loginSysAdmin(); - AdminSettings adminSettings = doGet("/api/admin/settings/mail", AdminSettings.class); - adminSettings.setKey("newKey"); - doPost("/api/admin/settings", adminSettings) - .andExpect(status().isBadRequest()) - .andExpect(statusReason(containsString("is prohibited"))); - } - - @Test - public void testSaveAdminSettingsWithNewJsonStructure() throws Exception { - loginSysAdmin(); - AdminSettings adminSettings = doGet("/api/admin/settings/mail", AdminSettings.class); - JsonNode json = adminSettings.getJsonValue(); - ((ObjectNode) json).put("newKey", "my new value"); - adminSettings.setJsonValue(json); - doPost("/api/admin/settings", adminSettings) - .andExpect(status().isBadRequest()) - .andExpect(statusReason(containsString("Provided json structure is different"))); - } - - @Test - public void testSaveAdminSettingsWithNonTextValue() throws Exception { - loginSysAdmin(); - AdminSettings adminSettings = doGet("/api/admin/settings/mail", AdminSettings.class); - JsonNode json = adminSettings.getJsonValue(); - ((ObjectNode) json).put("timeout", 10000L); - adminSettings.setJsonValue(json); - doPost("/api/admin/settings", adminSettings) - .andExpect(status().isBadRequest()) - .andExpect(statusReason(containsString("Provided json structure can't contain non-text values"))); - } - - @Test - public void testSendTestMail() throws Exception { - loginSysAdmin(); - AdminSettings adminSettings = doGet("/api/admin/settings/mail", AdminSettings.class); - doPost("/api/admin/settings/testMail", adminSettings) - .andExpect(status().isOk()); - } - -} diff --git a/application/src/test/java/org/thingsboard/server/controller/AssetControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/AssetControllerTest.java deleted file mode 100644 index d15023b91f..0000000000 --- a/application/src/test/java/org/thingsboard/server/controller/AssetControllerTest.java +++ /dev/null @@ -1,658 +0,0 @@ -/** - * Copyright © 2016-2017 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.controller; - -import static org.hamcrest.Matchers.containsString; -import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.apache.commons.lang3.RandomStringUtils; -import org.thingsboard.server.common.data.*; -import org.thingsboard.server.common.data.asset.Asset; -import org.thingsboard.server.common.data.asset.TenantAssetType; -import org.thingsboard.server.common.data.id.CustomerId; -import org.thingsboard.server.common.data.page.TextPageData; -import org.thingsboard.server.common.data.page.TextPageLink; -import org.thingsboard.server.common.data.security.Authority; -import org.thingsboard.server.dao.model.ModelConstants; -import org.junit.After; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.datastax.driver.core.utils.UUIDs; -import com.fasterxml.jackson.core.type.TypeReference; - -public class AssetControllerTest extends AbstractControllerTest { - - private IdComparator idComparator = new IdComparator<>(); - - private Tenant savedTenant; - private User tenantAdmin; - - @Before - public void beforeTest() throws Exception { - loginSysAdmin(); - - Tenant tenant = new Tenant(); - tenant.setTitle("My tenant"); - savedTenant = doPost("/api/tenant", tenant, Tenant.class); - Assert.assertNotNull(savedTenant); - - tenantAdmin = new User(); - tenantAdmin.setAuthority(Authority.TENANT_ADMIN); - tenantAdmin.setTenantId(savedTenant.getId()); - tenantAdmin.setEmail("tenant2@thingsboard.org"); - tenantAdmin.setFirstName("Joe"); - tenantAdmin.setLastName("Downs"); - - tenantAdmin = createUserAndLogin(tenantAdmin, "testPassword1"); - } - - @After - public void afterTest() throws Exception { - loginSysAdmin(); - - doDelete("/api/tenant/"+savedTenant.getId().getId().toString()) - .andExpect(status().isOk()); - } - - @Test - public void testSaveAsset() throws Exception { - Asset asset = new Asset(); - asset.setName("My asset"); - asset.setType("default"); - Asset savedAsset = doPost("/api/asset", asset, Asset.class); - - Assert.assertNotNull(savedAsset); - Assert.assertNotNull(savedAsset.getId()); - Assert.assertTrue(savedAsset.getCreatedTime() > 0); - Assert.assertEquals(savedTenant.getId(), savedAsset.getTenantId()); - Assert.assertNotNull(savedAsset.getCustomerId()); - Assert.assertEquals(NULL_UUID, savedAsset.getCustomerId().getId()); - Assert.assertEquals(asset.getName(), savedAsset.getName()); - - savedAsset.setName("My new asset"); - doPost("/api/asset", savedAsset, Asset.class); - - Asset foundAsset = doGet("/api/asset/" + savedAsset.getId().getId().toString(), Asset.class); - Assert.assertEquals(foundAsset.getName(), savedAsset.getName()); - } - - @Test - public void testFindAssetById() throws Exception { - Asset asset = new Asset(); - asset.setName("My asset"); - asset.setType("default"); - Asset savedAsset = doPost("/api/asset", asset, Asset.class); - Asset foundAsset = doGet("/api/asset/" + savedAsset.getId().getId().toString(), Asset.class); - Assert.assertNotNull(foundAsset); - Assert.assertEquals(savedAsset, foundAsset); - } - - @Test - public void testFindAssetTypesByTenantId() throws Exception { - List assets = new ArrayList<>(); - for (int i=0;i<3;i++) { - Asset asset = new Asset(); - asset.setName("My asset B"+i); - asset.setType("typeB"); - assets.add(doPost("/api/asset", asset, Asset.class)); - } - for (int i=0;i<7;i++) { - Asset asset = new Asset(); - asset.setName("My asset C"+i); - asset.setType("typeC"); - assets.add(doPost("/api/asset", asset, Asset.class)); - } - for (int i=0;i<9;i++) { - Asset asset = new Asset(); - asset.setName("My asset A"+i); - asset.setType("typeA"); - assets.add(doPost("/api/asset", asset, Asset.class)); - } - List assetTypes = doGetTyped("/api/asset/types", - new TypeReference>(){}); - - Assert.assertNotNull(assetTypes); - Assert.assertEquals(3, assetTypes.size()); - Assert.assertEquals("typeA", assetTypes.get(0).getType()); - Assert.assertEquals("typeB", assetTypes.get(1).getType()); - Assert.assertEquals("typeC", assetTypes.get(2).getType()); - } - - @Test - public void testDeleteAsset() throws Exception { - Asset asset = new Asset(); - asset.setName("My asset"); - asset.setType("default"); - Asset savedAsset = doPost("/api/asset", asset, Asset.class); - - doDelete("/api/asset/"+savedAsset.getId().getId().toString()) - .andExpect(status().isOk()); - - doGet("/api/asset/"+savedAsset.getId().getId().toString()) - .andExpect(status().isNotFound()); - } - - @Test - public void testSaveAssetWithEmptyType() throws Exception { - Asset asset = new Asset(); - asset.setName("My asset"); - doPost("/api/asset", asset) - .andExpect(status().isBadRequest()) - .andExpect(statusReason(containsString("Asset type should be specified"))); - } - - @Test - public void testSaveAssetWithEmptyName() throws Exception { - Asset asset = new Asset(); - asset.setType("default"); - doPost("/api/asset", asset) - .andExpect(status().isBadRequest()) - .andExpect(statusReason(containsString("Asset name should be specified"))); - } - - @Test - public void testAssignUnassignAssetToCustomer() throws Exception { - Asset asset = new Asset(); - asset.setName("My asset"); - asset.setType("default"); - Asset savedAsset = doPost("/api/asset", asset, Asset.class); - - Customer customer = new Customer(); - customer.setTitle("My customer"); - Customer savedCustomer = doPost("/api/customer", customer, Customer.class); - - Asset assignedAsset = doPost("/api/customer/" + savedCustomer.getId().getId().toString() - + "/asset/" + savedAsset.getId().getId().toString(), Asset.class); - Assert.assertEquals(savedCustomer.getId(), assignedAsset.getCustomerId()); - - Asset foundAsset = doGet("/api/asset/" + savedAsset.getId().getId().toString(), Asset.class); - Assert.assertEquals(savedCustomer.getId(), foundAsset.getCustomerId()); - - Asset unassignedAsset = - doDelete("/api/customer/asset/" + savedAsset.getId().getId().toString(), Asset.class); - Assert.assertEquals(ModelConstants.NULL_UUID, unassignedAsset.getCustomerId().getId()); - - foundAsset = doGet("/api/asset/" + savedAsset.getId().getId().toString(), Asset.class); - Assert.assertEquals(ModelConstants.NULL_UUID, foundAsset.getCustomerId().getId()); - } - - @Test - public void testAssignAssetToNonExistentCustomer() throws Exception { - Asset asset = new Asset(); - asset.setName("My asset"); - asset.setType("default"); - Asset savedAsset = doPost("/api/asset", asset, Asset.class); - - doPost("/api/customer/" + UUIDs.timeBased().toString() - + "/asset/" + savedAsset.getId().getId().toString()) - .andExpect(status().isNotFound()); - } - - @Test - public void testAssignAssetToCustomerFromDifferentTenant() throws Exception { - loginSysAdmin(); - - Tenant tenant2 = new Tenant(); - tenant2.setTitle("Different tenant"); - Tenant savedTenant2 = doPost("/api/tenant", tenant2, Tenant.class); - Assert.assertNotNull(savedTenant2); - - User tenantAdmin2 = new User(); - tenantAdmin2.setAuthority(Authority.TENANT_ADMIN); - tenantAdmin2.setTenantId(savedTenant2.getId()); - tenantAdmin2.setEmail("tenant3@thingsboard.org"); - tenantAdmin2.setFirstName("Joe"); - tenantAdmin2.setLastName("Downs"); - - tenantAdmin2 = createUserAndLogin(tenantAdmin2, "testPassword1"); - - Customer customer = new Customer(); - customer.setTitle("Different customer"); - Customer savedCustomer = doPost("/api/customer", customer, Customer.class); - - login(tenantAdmin.getEmail(), "testPassword1"); - - Asset asset = new Asset(); - asset.setName("My asset"); - asset.setType("default"); - Asset savedAsset = doPost("/api/asset", asset, Asset.class); - - doPost("/api/customer/" + savedCustomer.getId().getId().toString() - + "/asset/" + savedAsset.getId().getId().toString()) - .andExpect(status().isForbidden()); - - loginSysAdmin(); - - doDelete("/api/tenant/"+savedTenant2.getId().getId().toString()) - .andExpect(status().isOk()); - } - - @Test - public void testFindTenantAssets() throws Exception { - List assets = new ArrayList<>(); - for (int i=0;i<178;i++) { - Asset asset = new Asset(); - asset.setName("Asset"+i); - asset.setType("default"); - assets.add(doPost("/api/asset", asset, Asset.class)); - } - List loadedAssets = new ArrayList<>(); - TextPageLink pageLink = new TextPageLink(23); - TextPageData pageData = null; - do { - pageData = doGetTypedWithPageLink("/api/tenant/assets?", - new TypeReference>(){}, pageLink); - loadedAssets.addAll(pageData.getData()); - if (pageData.hasNext()) { - pageLink = pageData.getNextPageLink(); - } - } while (pageData.hasNext()); - - Collections.sort(assets, idComparator); - Collections.sort(loadedAssets, idComparator); - - Assert.assertEquals(assets, loadedAssets); - } - - @Test - public void testFindTenantAssetsByName() throws Exception { - String title1 = "Asset title 1"; - List assetsTitle1 = new ArrayList<>(); - for (int i=0;i<143;i++) { - Asset asset = new Asset(); - String suffix = RandomStringUtils.randomAlphanumeric(15); - String name = title1+suffix; - name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase(); - asset.setName(name); - asset.setType("default"); - assetsTitle1.add(doPost("/api/asset", asset, Asset.class)); - } - String title2 = "Asset title 2"; - List assetsTitle2 = new ArrayList<>(); - for (int i=0;i<75;i++) { - Asset asset = new Asset(); - String suffix = RandomStringUtils.randomAlphanumeric(15); - String name = title2+suffix; - name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase(); - asset.setName(name); - asset.setType("default"); - assetsTitle2.add(doPost("/api/asset", asset, Asset.class)); - } - - List loadedAssetsTitle1 = new ArrayList<>(); - TextPageLink pageLink = new TextPageLink(15, title1); - TextPageData pageData = null; - do { - pageData = doGetTypedWithPageLink("/api/tenant/assets?", - new TypeReference>(){}, pageLink); - loadedAssetsTitle1.addAll(pageData.getData()); - if (pageData.hasNext()) { - pageLink = pageData.getNextPageLink(); - } - } while (pageData.hasNext()); - - Collections.sort(assetsTitle1, idComparator); - Collections.sort(loadedAssetsTitle1, idComparator); - - Assert.assertEquals(assetsTitle1, loadedAssetsTitle1); - - List loadedAssetsTitle2 = new ArrayList<>(); - pageLink = new TextPageLink(4, title2); - do { - pageData = doGetTypedWithPageLink("/api/tenant/assets?", - new TypeReference>(){}, pageLink); - loadedAssetsTitle2.addAll(pageData.getData()); - if (pageData.hasNext()) { - pageLink = pageData.getNextPageLink(); - } - } while (pageData.hasNext()); - - Collections.sort(assetsTitle2, idComparator); - Collections.sort(loadedAssetsTitle2, idComparator); - - Assert.assertEquals(assetsTitle2, loadedAssetsTitle2); - - for (Asset asset : loadedAssetsTitle1) { - doDelete("/api/asset/"+asset.getId().getId().toString()) - .andExpect(status().isOk()); - } - - pageLink = new TextPageLink(4, title1); - pageData = doGetTypedWithPageLink("/api/tenant/assets?", - new TypeReference>(){}, pageLink); - Assert.assertFalse(pageData.hasNext()); - Assert.assertEquals(0, pageData.getData().size()); - - for (Asset asset : loadedAssetsTitle2) { - doDelete("/api/asset/"+asset.getId().getId().toString()) - .andExpect(status().isOk()); - } - - pageLink = new TextPageLink(4, title2); - pageData = doGetTypedWithPageLink("/api/tenant/assets?", - new TypeReference>(){}, pageLink); - Assert.assertFalse(pageData.hasNext()); - Assert.assertEquals(0, pageData.getData().size()); - } - - @Test - public void testFindTenantAssetsByType() throws Exception { - String title1 = "Asset title 1"; - String type1 = "typeA"; - List assetsType1 = new ArrayList<>(); - for (int i=0;i<143;i++) { - Asset asset = new Asset(); - String suffix = RandomStringUtils.randomAlphanumeric(15); - String name = title1+suffix; - name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase(); - asset.setName(name); - asset.setType(type1); - assetsType1.add(doPost("/api/asset", asset, Asset.class)); - } - String title2 = "Asset title 2"; - String type2 = "typeB"; - List assetsType2 = new ArrayList<>(); - for (int i=0;i<75;i++) { - Asset asset = new Asset(); - String suffix = RandomStringUtils.randomAlphanumeric(15); - String name = title2+suffix; - name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase(); - asset.setName(name); - asset.setType(type2); - assetsType2.add(doPost("/api/asset", asset, Asset.class)); - } - - List loadedAssetsType1 = new ArrayList<>(); - TextPageLink pageLink = new TextPageLink(15); - TextPageData pageData = null; - do { - pageData = doGetTypedWithPageLink("/api/tenant/assets?type={type}&", - new TypeReference>(){}, pageLink, type1); - loadedAssetsType1.addAll(pageData.getData()); - if (pageData.hasNext()) { - pageLink = pageData.getNextPageLink(); - } - } while (pageData.hasNext()); - - Collections.sort(assetsType1, idComparator); - Collections.sort(loadedAssetsType1, idComparator); - - Assert.assertEquals(assetsType1, loadedAssetsType1); - - List loadedAssetsType2 = new ArrayList<>(); - pageLink = new TextPageLink(4); - do { - pageData = doGetTypedWithPageLink("/api/tenant/assets?type={type}&", - new TypeReference>(){}, pageLink, type2); - loadedAssetsType2.addAll(pageData.getData()); - if (pageData.hasNext()) { - pageLink = pageData.getNextPageLink(); - } - } while (pageData.hasNext()); - - Collections.sort(assetsType2, idComparator); - Collections.sort(loadedAssetsType2, idComparator); - - Assert.assertEquals(assetsType2, loadedAssetsType2); - - for (Asset asset : loadedAssetsType1) { - doDelete("/api/asset/"+asset.getId().getId().toString()) - .andExpect(status().isOk()); - } - - pageLink = new TextPageLink(4); - pageData = doGetTypedWithPageLink("/api/tenant/assets?type={type}&", - new TypeReference>(){}, pageLink, type1); - Assert.assertFalse(pageData.hasNext()); - Assert.assertEquals(0, pageData.getData().size()); - - for (Asset asset : loadedAssetsType2) { - doDelete("/api/asset/"+asset.getId().getId().toString()) - .andExpect(status().isOk()); - } - - pageLink = new TextPageLink(4); - pageData = doGetTypedWithPageLink("/api/tenant/assets?type={type}&", - new TypeReference>(){}, pageLink, type2); - Assert.assertFalse(pageData.hasNext()); - Assert.assertEquals(0, pageData.getData().size()); - } - - @Test - public void testFindCustomerAssets() throws Exception { - Customer customer = new Customer(); - customer.setTitle("Test customer"); - customer = doPost("/api/customer", customer, Customer.class); - CustomerId customerId = customer.getId(); - - List assets = new ArrayList<>(); - for (int i=0;i<128;i++) { - Asset asset = new Asset(); - asset.setName("Asset"+i); - asset.setType("default"); - asset = doPost("/api/asset", asset, Asset.class); - assets.add(doPost("/api/customer/" + customerId.getId().toString() - + "/asset/" + asset.getId().getId().toString(), Asset.class)); - } - - List loadedAssets = new ArrayList<>(); - TextPageLink pageLink = new TextPageLink(23); - TextPageData pageData = null; - do { - pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/assets?", - new TypeReference>(){}, pageLink); - loadedAssets.addAll(pageData.getData()); - if (pageData.hasNext()) { - pageLink = pageData.getNextPageLink(); - } - } while (pageData.hasNext()); - - Collections.sort(assets, idComparator); - Collections.sort(loadedAssets, idComparator); - - Assert.assertEquals(assets, loadedAssets); - } - - @Test - public void testFindCustomerAssetsByName() throws Exception { - Customer customer = new Customer(); - customer.setTitle("Test customer"); - customer = doPost("/api/customer", customer, Customer.class); - CustomerId customerId = customer.getId(); - - String title1 = "Asset title 1"; - List assetsTitle1 = new ArrayList<>(); - for (int i=0;i<125;i++) { - Asset asset = new Asset(); - String suffix = RandomStringUtils.randomAlphanumeric(15); - String name = title1+suffix; - name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase(); - asset.setName(name); - asset.setType("default"); - asset = doPost("/api/asset", asset, Asset.class); - assetsTitle1.add(doPost("/api/customer/" + customerId.getId().toString() - + "/asset/" + asset.getId().getId().toString(), Asset.class)); - } - String title2 = "Asset title 2"; - List assetsTitle2 = new ArrayList<>(); - for (int i=0;i<143;i++) { - Asset asset = new Asset(); - String suffix = RandomStringUtils.randomAlphanumeric(15); - String name = title2+suffix; - name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase(); - asset.setName(name); - asset.setType("default"); - asset = doPost("/api/asset", asset, Asset.class); - assetsTitle2.add(doPost("/api/customer/" + customerId.getId().toString() - + "/asset/" + asset.getId().getId().toString(), Asset.class)); - } - - List loadedAssetsTitle1 = new ArrayList<>(); - TextPageLink pageLink = new TextPageLink(15, title1); - TextPageData pageData = null; - do { - pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/assets?", - new TypeReference>(){}, pageLink); - loadedAssetsTitle1.addAll(pageData.getData()); - if (pageData.hasNext()) { - pageLink = pageData.getNextPageLink(); - } - } while (pageData.hasNext()); - - Collections.sort(assetsTitle1, idComparator); - Collections.sort(loadedAssetsTitle1, idComparator); - - Assert.assertEquals(assetsTitle1, loadedAssetsTitle1); - - List loadedAssetsTitle2 = new ArrayList<>(); - pageLink = new TextPageLink(4, title2); - do { - pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/assets?", - new TypeReference>(){}, pageLink); - loadedAssetsTitle2.addAll(pageData.getData()); - if (pageData.hasNext()) { - pageLink = pageData.getNextPageLink(); - } - } while (pageData.hasNext()); - - Collections.sort(assetsTitle2, idComparator); - Collections.sort(loadedAssetsTitle2, idComparator); - - Assert.assertEquals(assetsTitle2, loadedAssetsTitle2); - - for (Asset asset : loadedAssetsTitle1) { - doDelete("/api/customer/asset/" + asset.getId().getId().toString()) - .andExpect(status().isOk()); - } - - pageLink = new TextPageLink(4, title1); - pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/assets?", - new TypeReference>(){}, pageLink); - Assert.assertFalse(pageData.hasNext()); - Assert.assertEquals(0, pageData.getData().size()); - - for (Asset asset : loadedAssetsTitle2) { - doDelete("/api/customer/asset/" + asset.getId().getId().toString()) - .andExpect(status().isOk()); - } - - pageLink = new TextPageLink(4, title2); - pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/assets?", - new TypeReference>(){}, pageLink); - Assert.assertFalse(pageData.hasNext()); - Assert.assertEquals(0, pageData.getData().size()); - } - - @Test - public void testFindCustomerAssetsByType() throws Exception { - Customer customer = new Customer(); - customer.setTitle("Test customer"); - customer = doPost("/api/customer", customer, Customer.class); - CustomerId customerId = customer.getId(); - - String title1 = "Asset title 1"; - String type1 = "typeC"; - List assetsType1 = new ArrayList<>(); - for (int i=0;i<125;i++) { - Asset asset = new Asset(); - String suffix = RandomStringUtils.randomAlphanumeric(15); - String name = title1+suffix; - name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase(); - asset.setName(name); - asset.setType(type1); - asset = doPost("/api/asset", asset, Asset.class); - assetsType1.add(doPost("/api/customer/" + customerId.getId().toString() - + "/asset/" + asset.getId().getId().toString(), Asset.class)); - } - String title2 = "Asset title 2"; - String type2 = "typeD"; - List assetsType2 = new ArrayList<>(); - for (int i=0;i<143;i++) { - Asset asset = new Asset(); - String suffix = RandomStringUtils.randomAlphanumeric(15); - String name = title2+suffix; - name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase(); - asset.setName(name); - asset.setType(type2); - asset = doPost("/api/asset", asset, Asset.class); - assetsType2.add(doPost("/api/customer/" + customerId.getId().toString() - + "/asset/" + asset.getId().getId().toString(), Asset.class)); - } - - List loadedAssetsType1 = new ArrayList<>(); - TextPageLink pageLink = new TextPageLink(15); - TextPageData pageData = null; - do { - pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/assets?type={type}&", - new TypeReference>(){}, pageLink, type1); - loadedAssetsType1.addAll(pageData.getData()); - if (pageData.hasNext()) { - pageLink = pageData.getNextPageLink(); - } - } while (pageData.hasNext()); - - Collections.sort(assetsType1, idComparator); - Collections.sort(loadedAssetsType1, idComparator); - - Assert.assertEquals(assetsType1, loadedAssetsType1); - - List loadedAssetsType2 = new ArrayList<>(); - pageLink = new TextPageLink(4); - do { - pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/assets?type={type}&", - new TypeReference>(){}, pageLink, type2); - loadedAssetsType2.addAll(pageData.getData()); - if (pageData.hasNext()) { - pageLink = pageData.getNextPageLink(); - } - } while (pageData.hasNext()); - - Collections.sort(assetsType2, idComparator); - Collections.sort(loadedAssetsType2, idComparator); - - Assert.assertEquals(assetsType2, loadedAssetsType2); - - for (Asset asset : loadedAssetsType1) { - doDelete("/api/customer/asset/" + asset.getId().getId().toString()) - .andExpect(status().isOk()); - } - - pageLink = new TextPageLink(4); - pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/assets?type={type}&", - new TypeReference>(){}, pageLink, type1); - Assert.assertFalse(pageData.hasNext()); - Assert.assertEquals(0, pageData.getData().size()); - - for (Asset asset : loadedAssetsType2) { - doDelete("/api/customer/asset/" + asset.getId().getId().toString()) - .andExpect(status().isOk()); - } - - pageLink = new TextPageLink(4); - pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/assets?type={type}&", - new TypeReference>(){}, pageLink, type2); - Assert.assertFalse(pageData.hasNext()); - Assert.assertEquals(0, pageData.getData().size()); - } - -} diff --git a/application/src/test/java/org/thingsboard/server/controller/BaseAdminControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/BaseAdminControllerTest.java index cda5f3ad9f..5047c36189 100644 --- a/application/src/test/java/org/thingsboard/server/controller/BaseAdminControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/BaseAdminControllerTest.java @@ -78,19 +78,6 @@ public abstract class BaseAdminControllerTest extends AbstractControllerTest { .andExpect(status().isOk()); } - @Test - public void testCreateAdminSettings() throws Exception { - loginSysAdmin(); - - AdminSettings adminSettings = new AdminSettings(); - adminSettings.setKey("someKey"); - adminSettings.setJsonValue(new ObjectMapper().readValue("{ \"someKey\": \"someValue\" }", JsonNode.class)); - - doPost("/api/admin/settings", adminSettings) - .andExpect(status().isBadRequest()) - .andExpect(statusReason(containsString("is prohibited"))); - } - @Test public void testSaveAdminSettingsWithEmptyKey() throws Exception { loginSysAdmin(); 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 35ed1de643..770e02f9b1 100644 --- a/application/src/test/java/org/thingsboard/server/controller/BaseTenantControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/BaseTenantControllerTest.java @@ -31,7 +31,7 @@ import org.junit.Test; import com.fasterxml.jackson.core.type.TypeReference; -public class BaseTenantControllerTest extends AbstractControllerTest { +public abstract class BaseTenantControllerTest extends AbstractControllerTest { private IdComparator idComparator = new IdComparator<>(); diff --git a/application/src/test/java/org/thingsboard/server/controller/ControllerSqlTestSuite.java b/application/src/test/java/org/thingsboard/server/controller/ControllerSqlTestSuite.java index b49a0df04a..b9692272aa 100644 --- a/application/src/test/java/org/thingsboard/server/controller/ControllerSqlTestSuite.java +++ b/application/src/test/java/org/thingsboard/server/controller/ControllerSqlTestSuite.java @@ -15,12 +15,10 @@ */ package org.thingsboard.server.controller; -import org.cassandraunit.dataset.cql.ClassPathCQLDataSet; import org.junit.ClassRule; import org.junit.extensions.cpsuite.ClasspathSuite; import org.junit.runner.RunWith; -import org.thingsboard.server.dao.CustomCassandraCQLUnit; -import org.thingsboard.server.dao.CustomPostgresUnit; +import org.thingsboard.server.dao.CustomSqlUnit; import java.util.Arrays; @@ -31,7 +29,8 @@ import java.util.Arrays; public class ControllerSqlTestSuite { @ClassRule - public static CustomPostgresUnit postgresUnit = new CustomPostgresUnit( - Arrays.asList("postgres/schema.sql", "postgres/system-data.sql"), - "postgres-embedded-test.properties"); + public static CustomSqlUnit sqlUnit = new CustomSqlUnit( + Arrays.asList("sql/schema.sql", "sql/system-data.sql"), + "sql/drop-all-tables.sql", + "sql-test.properties"); } diff --git a/application/src/test/java/org/thingsboard/server/system/SystemSqlTestSuite.java b/application/src/test/java/org/thingsboard/server/system/SystemSqlTestSuite.java index 1f62027046..21667a77ec 100644 --- a/application/src/test/java/org/thingsboard/server/system/SystemSqlTestSuite.java +++ b/application/src/test/java/org/thingsboard/server/system/SystemSqlTestSuite.java @@ -33,8 +33,7 @@ public class SystemSqlTestSuite { public static CustomSqlUnit sqlUnit = new CustomSqlUnit( Arrays.asList("sql/schema.sql", "sql/system-data.sql"), "sql/drop-all-tables.sql", - "sql-test.properties" - ); + "sql-test.properties"); }