Skip to content

Commit 6fe39b0

Browse files
Add a backing field for EditorUIAlias and track changes when its set. (#19733)
* Add a backing field for EditorUIAlias and track changes when its set. * Add previously failing unit test to verify fix. * Aligned backing field casing with property name. --------- Co-authored-by: Andy Butland <[email protected]>
1 parent 7458143 commit 6fe39b0

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

src/Umbraco.Core/Models/DataType.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class DataType : TreeEntityBase, IDataType
1717
private IDictionary<string, object> _configurationData;
1818
private ValueStorageType _databaseType;
1919
private IDataEditor? _editor;
20+
private string? _editorUiAlias;
2021
private bool _hasConfigurationObject;
2122

2223
/// <summary>
@@ -60,7 +61,11 @@ public IDataEditor? Editor
6061

6162
/// <inheritdoc />
6263
[DataMember]
63-
public string? EditorUiAlias { get; set; }
64+
public string? EditorUiAlias
65+
{
66+
get => _editorUiAlias;
67+
set => SetPropertyValueAndDetectChanges(value, ref _editorUiAlias, nameof(EditorUiAlias));
68+
}
6469

6570
/// <inheritdoc />
6671
[DataMember]
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// Copyright (c) Umbraco.
2+
// See LICENSE for more details.
3+
4+
using NUnit.Framework;
5+
using Umbraco.Cms.Core.Models;
6+
using Umbraco.Cms.Tests.Common.Builders;
7+
using Umbraco.Cms.Tests.Common.Builders.Extensions;
8+
9+
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Models;
10+
11+
[TestFixture]
12+
public class DataTypeTests
13+
{
14+
[Test]
15+
public void Can_Update_And_Verify_Dirty_Properties()
16+
{
17+
var dataType = new DataTypeBuilder()
18+
.WithName("Test Data Type")
19+
.WithDatabaseType(ValueStorageType.Ntext)
20+
.Build();
21+
22+
dataType.ResetDirtyProperties();
23+
24+
dataType.DatabaseType = ValueStorageType.Nvarchar;
25+
dataType.EditorUiAlias = "Test.EditorUiAlias";
26+
27+
var dirtyProperties = dataType.GetDirtyProperties().OrderBy(x => x).ToList();
28+
29+
Assert.IsTrue(dataType.IsPropertyDirty(nameof(dataType.DatabaseType)));
30+
Assert.IsTrue(dataType.IsPropertyDirty(nameof(dataType.EditorUiAlias)));
31+
32+
Assert.AreEqual(2, dirtyProperties.Count);
33+
Assert.AreEqual($"{nameof(dataType.DatabaseType)},{nameof(dataType.EditorUiAlias)}", string.Join(",", dirtyProperties));
34+
}
35+
}

0 commit comments

Comments
 (0)