Merge pull request #10901 from imbeacon/fix/profiles-creation-with-default-name-but-default-profile-exists
Fixed creation of profiles with name "default" and existing default renamed profile
This commit is contained in:
commit
0a5a60cded
@ -236,8 +236,9 @@ public class AssetProfileServiceImpl extends CachedVersionedEntityService<AssetP
|
||||
log.trace("Executing findOrCreateAssetProfile");
|
||||
AssetProfile assetProfile = findAssetProfileByName(tenantId, name, false);
|
||||
if (assetProfile == null) {
|
||||
boolean isDefault = "default".equals(name) && findDefaultAssetProfile(tenantId) == null;
|
||||
try {
|
||||
assetProfile = this.doCreateDefaultAssetProfile(tenantId, name, name.equals("default"), true);
|
||||
assetProfile = this.doCreateAssetProfile(tenantId, name, isDefault, true);
|
||||
} catch (DataValidationException e) {
|
||||
if (ASSET_PROFILE_WITH_SUCH_NAME_ALREADY_EXISTS.equals(e.getMessage())) {
|
||||
assetProfile = findAssetProfileByName(tenantId, name, false);
|
||||
@ -252,10 +253,10 @@ public class AssetProfileServiceImpl extends CachedVersionedEntityService<AssetP
|
||||
@Override
|
||||
public AssetProfile createDefaultAssetProfile(TenantId tenantId) {
|
||||
log.trace("Executing createDefaultAssetProfile tenantId [{}]", tenantId);
|
||||
return doCreateDefaultAssetProfile(tenantId, "default", true, false);
|
||||
return doCreateAssetProfile(tenantId, "default", true, false);
|
||||
}
|
||||
|
||||
private AssetProfile doCreateDefaultAssetProfile(TenantId tenantId, String profileName, boolean defaultProfile, boolean publishSaveEvent) {
|
||||
private AssetProfile doCreateAssetProfile(TenantId tenantId, String profileName, boolean defaultProfile, boolean publishSaveEvent) {
|
||||
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
|
||||
AssetProfile assetProfile = new AssetProfile();
|
||||
assetProfile.setTenantId(tenantId);
|
||||
|
||||
@ -271,8 +271,9 @@ public class DeviceProfileServiceImpl extends CachedVersionedEntityService<Devic
|
||||
log.trace("Executing findOrCreateDefaultDeviceProfile");
|
||||
DeviceProfile deviceProfile = findDeviceProfileByName(tenantId, name, false);
|
||||
if (deviceProfile == null) {
|
||||
boolean isDefault = "default".equals(name) && findDefaultDeviceProfile(tenantId) == null;
|
||||
try {
|
||||
deviceProfile = this.doCreateDefaultDeviceProfile(tenantId, name, name.equals("default"), true);
|
||||
deviceProfile = this.doCreateDeviceProfile(tenantId, name, isDefault, true);
|
||||
} catch (DataValidationException e) {
|
||||
if (DEVICE_PROFILE_WITH_SUCH_NAME_ALREADY_EXISTS.equals(e.getMessage())) {
|
||||
deviceProfile = findDeviceProfileByName(tenantId, name, false);
|
||||
@ -287,10 +288,10 @@ public class DeviceProfileServiceImpl extends CachedVersionedEntityService<Devic
|
||||
@Override
|
||||
public DeviceProfile createDefaultDeviceProfile(TenantId tenantId) {
|
||||
log.trace("Executing createDefaultDeviceProfile tenantId [{}]", tenantId);
|
||||
return doCreateDefaultDeviceProfile(tenantId, "default", true, false);
|
||||
return doCreateDeviceProfile(tenantId, "default", true, false);
|
||||
}
|
||||
|
||||
private DeviceProfile doCreateDefaultDeviceProfile(TenantId tenantId, String profileName, boolean defaultProfile, boolean publishSaveEvent) {
|
||||
private DeviceProfile doCreateDeviceProfile(TenantId tenantId, String profileName, boolean defaultProfile, boolean publishSaveEvent) {
|
||||
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
|
||||
DeviceProfile deviceProfile = new DeviceProfile();
|
||||
deviceProfile.setTenantId(tenantId);
|
||||
|
||||
@ -163,6 +163,18 @@ public class AssetProfileServiceTest extends AbstractServiceTest {
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSaveAssetProfileWithNameDefaultAndProfileWithIsDefaultAndDifferentNameAlreadyExists() {
|
||||
AssetProfile defaultAssetProfile = assetProfileService.findDefaultAssetProfile(tenantId);
|
||||
Assert.assertNotNull(defaultAssetProfile);
|
||||
defaultAssetProfile.setName("Asset Profile 1");
|
||||
assetProfileService.saveAssetProfile(defaultAssetProfile);
|
||||
AssetProfile createdAssetProfile = assetProfileService.findOrCreateAssetProfile(tenantId, "default");
|
||||
Assert.assertNotNull(createdAssetProfile);
|
||||
Assert.assertEquals("default", createdAssetProfile.getName());
|
||||
Assert.assertFalse(createdAssetProfile.isDefault());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteAssetProfileWithExistingAsset() {
|
||||
AssetProfile assetProfile = this.createAssetProfile(tenantId, "Asset Profile");
|
||||
|
||||
@ -209,6 +209,18 @@ public class DeviceProfileServiceTest extends AbstractServiceTest {
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSaveDeviceProfileWithNameDefaultAndProfileWithIsDefaultAndDifferentNameAlreadyExists() {
|
||||
DeviceProfile defaultDeviceProfile = deviceProfileService.findDefaultDeviceProfile(tenantId);
|
||||
Assert.assertNotNull(defaultDeviceProfile);
|
||||
defaultDeviceProfile.setName("Device Profile 1");
|
||||
deviceProfileService.saveDeviceProfile(defaultDeviceProfile);
|
||||
DeviceProfile createdDeviceProfile = deviceProfileService.findOrCreateDeviceProfile(tenantId, "default");
|
||||
Assert.assertNotNull(createdDeviceProfile);
|
||||
Assert.assertEquals("default", createdDeviceProfile.getName());
|
||||
Assert.assertFalse(createdDeviceProfile.isDefault());
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void testChangeDeviceProfileTypeWithExistingDevices() {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user