@ -30,6 +30,7 @@ import org.thingsboard.server.common.data.Tenant;
import org.thingsboard.server.common.data.asset.Asset ;
import org.thingsboard.server.common.data.asset.AssetInfo ;
import org.thingsboard.server.common.data.asset.AssetProfile ;
import org.thingsboard.server.common.data.calculated_field.CalculatedField ;
import org.thingsboard.server.common.data.id.CustomerId ;
import org.thingsboard.server.common.data.id.TenantId ;
import org.thingsboard.server.common.data.page.PageData ;
@ -39,6 +40,7 @@ import org.thingsboard.server.common.data.relation.RelationTypeGroup;
import org.thingsboard.server.dao.asset.AssetDao ;
import org.thingsboard.server.dao.asset.AssetProfileService ;
import org.thingsboard.server.dao.asset.AssetService ;
import org.thingsboard.server.dao.calculated_field.CalculatedFieldService ;
import org.thingsboard.server.dao.customer.CustomerService ;
import org.thingsboard.server.dao.exception.DataValidationException ;
import org.thingsboard.server.dao.relation.RelationService ;
@ -47,6 +49,7 @@ import java.util.ArrayList;
import java.util.Collections ;
import java.util.List ;
import static org.assertj.core.api.Assertions.assertThatThrownBy ;
import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID ;
@DaoSqlTest
@ -63,6 +66,8 @@ public class AssetServiceTest extends AbstractServiceTest {
@Autowired
private AssetProfileService assetProfileService ;
@Autowired
private CalculatedFieldService calculatedFieldService ;
@Autowired
private PlatformTransactionManager platformTransactionManager ;
private IdComparator < Asset > idComparator = new IdComparator < > ( ) ;
@ -214,24 +219,24 @@ public class AssetServiceTest extends AbstractServiceTest {
public void testFindAssetTypesByTenantId ( ) throws Exception {
List < Asset > assets = new ArrayList < > ( ) ;
try {
for ( int i = 0 ; i < 3 ; i + + ) {
for ( int i = 0 ; i < 3 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
asset . setName ( "My asset B" + i ) ;
asset . setName ( "My asset B" + i ) ;
asset . setType ( "typeB" ) ;
assets . add ( assetService . saveAsset ( asset ) ) ;
}
for ( int i = 0 ; i < 7 ; i + + ) {
for ( int i = 0 ; i < 7 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
asset . setName ( "My asset C" + i ) ;
asset . setName ( "My asset C" + i ) ;
asset . setType ( "typeC" ) ;
assets . add ( assetService . saveAsset ( asset ) ) ;
}
for ( int i = 0 ; i < 9 ; i + + ) {
for ( int i = 0 ; i < 9 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
asset . setName ( "My asset A" + i ) ;
asset . setName ( "My asset A" + i ) ;
asset . setType ( "typeA" ) ;
assets . add ( assetService . saveAsset ( asset ) ) ;
}
@ -267,10 +272,10 @@ public class AssetServiceTest extends AbstractServiceTest {
@Test
public void testFindAssetsByTenantId ( ) {
List < Asset > assets = new ArrayList < > ( ) ;
for ( int i = 0 ; i < 13 ; i + + ) {
for ( int i = 0 ; i < 13 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
asset . setName ( "Asset" + i ) ;
asset . setName ( "Asset" + i ) ;
asset . setType ( "default" ) ;
assets . add ( assetService . saveAsset ( asset ) ) ;
}
@ -303,11 +308,11 @@ public class AssetServiceTest extends AbstractServiceTest {
public void testFindAssetsByTenantIdAndName ( ) {
String title1 = "Asset title 1" ;
List < AssetInfo > assetsTitle1 = new ArrayList < > ( ) ;
for ( int i = 0 ; i < 13 ; i + + ) {
for ( int i = 0 ; i < 13 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
String suffix = StringUtils . randomAlphanumeric ( 15 ) ;
String name = title1 + suffix ;
String name = title1 + suffix ;
name = i % 2 = = 0 ? name . toLowerCase ( ) : name . toUpperCase ( ) ;
asset . setName ( name ) ;
asset . setType ( "default" ) ;
@ -315,11 +320,11 @@ public class AssetServiceTest extends AbstractServiceTest {
}
String title2 = "Asset title 2" ;
List < AssetInfo > assetsTitle2 = new ArrayList < > ( ) ;
for ( int i = 0 ; i < 17 ; i + + ) {
for ( int i = 0 ; i < 17 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
String suffix = StringUtils . randomAlphanumeric ( 15 ) ;
String name = title2 + suffix ;
String name = title2 + suffix ;
name = i % 2 = = 0 ? name . toLowerCase ( ) : name . toUpperCase ( ) ;
asset . setName ( name ) ;
asset . setType ( "default" ) ;
@ -381,11 +386,11 @@ public class AssetServiceTest extends AbstractServiceTest {
String title1 = "Asset title 1" ;
String type1 = "typeA" ;
List < Asset > assetsType1 = new ArrayList < > ( ) ;
for ( int i = 0 ; i < 13 ; i + + ) {
for ( int i = 0 ; i < 13 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
String suffix = StringUtils . randomAlphanumeric ( 15 ) ;
String name = title1 + suffix ;
String name = title1 + suffix ;
name = i % 2 = = 0 ? name . toLowerCase ( ) : name . toUpperCase ( ) ;
asset . setName ( name ) ;
asset . setType ( type1 ) ;
@ -394,11 +399,11 @@ public class AssetServiceTest extends AbstractServiceTest {
String title2 = "Asset title 2" ;
String type2 = "typeB" ;
List < Asset > assetsType2 = new ArrayList < > ( ) ;
for ( int i = 0 ; i < 17 ; i + + ) {
for ( int i = 0 ; i < 17 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
String suffix = StringUtils . randomAlphanumeric ( 15 ) ;
String name = title2 + suffix ;
String name = title2 + suffix ;
name = i % 2 = = 0 ? name . toLowerCase ( ) : name . toUpperCase ( ) ;
asset . setName ( name ) ;
asset . setType ( type2 ) ;
@ -464,10 +469,10 @@ public class AssetServiceTest extends AbstractServiceTest {
CustomerId customerId = customer . getId ( ) ;
List < AssetInfo > assets = new ArrayList < > ( ) ;
for ( int i = 0 ; i < 13 ; i + + ) {
for ( int i = 0 ; i < 13 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
asset . setName ( "Asset" + i ) ;
asset . setName ( "Asset" + i ) ;
asset . setType ( "default" ) ;
asset = assetService . saveAsset ( asset ) ;
assets . add ( new AssetInfo ( assetService . assignAssetToCustomer ( tenantId , asset . getId ( ) , customerId ) , customer . getTitle ( ) , customer . isPublic ( ) , "default" ) ) ;
@ -508,11 +513,11 @@ public class AssetServiceTest extends AbstractServiceTest {
String title1 = "Asset title 1" ;
List < Asset > assetsTitle1 = new ArrayList < > ( ) ;
for ( int i = 0 ; i < 17 ; i + + ) {
for ( int i = 0 ; i < 17 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
String suffix = StringUtils . randomAlphanumeric ( 15 ) ;
String name = title1 + suffix ;
String name = title1 + suffix ;
name = i % 2 = = 0 ? name . toLowerCase ( ) : name . toUpperCase ( ) ;
asset . setName ( name ) ;
asset . setType ( "default" ) ;
@ -521,11 +526,11 @@ public class AssetServiceTest extends AbstractServiceTest {
}
String title2 = "Asset title 2" ;
List < Asset > assetsTitle2 = new ArrayList < > ( ) ;
for ( int i = 0 ; i < 13 ; i + + ) {
for ( int i = 0 ; i < 13 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
String suffix = StringUtils . randomAlphanumeric ( 15 ) ;
String name = title2 + suffix ;
String name = title2 + suffix ;
name = i % 2 = = 0 ? name . toLowerCase ( ) : name . toUpperCase ( ) ;
asset . setName ( name ) ;
asset . setType ( "default" ) ;
@ -596,11 +601,11 @@ public class AssetServiceTest extends AbstractServiceTest {
String title1 = "Asset title 1" ;
String type1 = "typeC" ;
List < Asset > assetsType1 = new ArrayList < > ( ) ;
for ( int i = 0 ; i < 17 ; i + + ) {
for ( int i = 0 ; i < 17 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
String suffix = StringUtils . randomAlphanumeric ( 15 ) ;
String name = title1 + suffix ;
String name = title1 + suffix ;
name = i % 2 = = 0 ? name . toLowerCase ( ) : name . toUpperCase ( ) ;
asset . setName ( name ) ;
asset . setType ( type1 ) ;
@ -610,11 +615,11 @@ public class AssetServiceTest extends AbstractServiceTest {
String title2 = "Asset title 2" ;
String type2 = "typeD" ;
List < Asset > assetsType2 = new ArrayList < > ( ) ;
for ( int i = 0 ; i < 13 ; i + + ) {
for ( int i = 0 ; i < 13 ; i + + ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
String suffix = StringUtils . randomAlphanumeric ( 15 ) ;
String name = title2 + suffix ;
String name = title2 + suffix ;
name = i % 2 = = 0 ? name . toLowerCase ( ) : name . toUpperCase ( ) ;
asset . setName ( name ) ;
asset . setType ( type2 ) ;
@ -848,4 +853,24 @@ public class AssetServiceTest extends AbstractServiceTest {
) ;
}
@Test
public void testDeleteAssetIfCalculatedFieldExists ( ) {
Asset asset = new Asset ( ) ;
asset . setTenantId ( tenantId ) ;
asset . setName ( "My asset" ) ;
asset . setType ( "default" ) ;
Asset savedAsset = assetService . saveAsset ( asset ) ;
CalculatedField calculatedField = new CalculatedField ( ) ;
calculatedField . setTenantId ( tenantId ) ;
calculatedField . setName ( "Test CF" ) ;
calculatedField . setType ( "Simple" ) ;
calculatedField . setEntityId ( savedAsset . getId ( ) ) ;
calculatedFieldService . save ( calculatedField ) ;
assertThatThrownBy ( ( ) - > assetService . deleteAsset ( tenantId , savedAsset . getId ( ) ) )
. isInstanceOf ( DataValidationException . class )
. hasMessage ( "Can't delete asset that has entity views or calculated fields!" ) ;
}
}