From acae5f2d5796f0ae46bda63a626c112599876620 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Thu, 11 Apr 2024 10:55:21 +0200 Subject: [PATCH] Remove "additional data" from entities (#16024) * Remove "additional data" from entities * Fix merge issue --------- Co-authored-by: Bjarke Berg --- .../DependencyInjection/UmbracoBuilder.cs | 2 + .../Handlers/PublicAccessHandler.cs | 55 ++++++++++++++----- .../Models/Entities/EntitySlim.cs | 13 ----- .../Models/Entities/IEntitySlim.cs | 2 +- .../Models/Entities/IHaveAdditionalData.cs | 43 --------------- .../Models/HaveAdditionalDataExtensions.cs | 27 --------- src/Umbraco.Core/Models/IMember.cs | 3 +- src/Umbraco.Core/Models/IMemberGroup.cs | 2 +- src/Umbraco.Core/Models/Member.cs | 10 ---- src/Umbraco.Core/Models/MemberGroup.cs | 24 +------- .../Builders/DocumentEntitySlimBuilder.cs | 18 ------ .../Builders/MemberBuilder.cs | 19 ------- .../Builders/MemberGroupBuilder.cs | 18 ------ .../Services/EntityServiceTests.cs | 6 -- .../Models/DocumentEntityTests.cs | 4 -- .../Umbraco.Core/Models/MemberGroupTests.cs | 6 -- .../Umbraco.Core/Models/MemberTests.cs | 5 -- .../DocumentEntitySlimBuilderTests.cs | 10 ---- .../Builders/MemberBuilderTests.cs | 12 ---- .../Builders/MemberGroupBuilderTests.cs | 12 ---- 20 files changed, 48 insertions(+), 243 deletions(-) delete mode 100644 src/Umbraco.Core/Models/Entities/IHaveAdditionalData.cs delete mode 100644 src/Umbraco.Core/Models/HaveAdditionalDataExtensions.cs diff --git a/src/Umbraco.Core/DependencyInjection/UmbracoBuilder.cs b/src/Umbraco.Core/DependencyInjection/UmbracoBuilder.cs index 15330ff1e8..5191f03837 100644 --- a/src/Umbraco.Core/DependencyInjection/UmbracoBuilder.cs +++ b/src/Umbraco.Core/DependencyInjection/UmbracoBuilder.cs @@ -254,7 +254,9 @@ namespace Umbraco.Cms.Core.DependencyInjection Services.AddSingleton(factory => factory.CreateDefaultPublishedModelFactory()); Services + .AddNotificationAsyncHandler() .AddNotificationHandler() + .AddNotificationAsyncHandler() .AddNotificationHandler(); Services.AddSingleton(); diff --git a/src/Umbraco.Core/Handlers/PublicAccessHandler.cs b/src/Umbraco.Core/Handlers/PublicAccessHandler.cs index d441509a85..3262e225e0 100644 --- a/src/Umbraco.Core/Handlers/PublicAccessHandler.cs +++ b/src/Umbraco.Core/Handlers/PublicAccessHandler.cs @@ -7,32 +7,61 @@ using Umbraco.Extensions; namespace Umbraco.Cms.Core.Handlers; public sealed class PublicAccessHandler : + INotificationAsyncHandler, INotificationHandler, + INotificationAsyncHandler, INotificationHandler { private readonly IPublicAccessService _publicAccessService; + private readonly IMemberGroupService _memberGroupService; - public PublicAccessHandler(IPublicAccessService publicAccessService) => - _publicAccessService = publicAccessService ?? throw new ArgumentNullException(nameof(publicAccessService)); + public PublicAccessHandler(IPublicAccessService publicAccessService, IMemberGroupService memberGroupService) + { + _publicAccessService = publicAccessService; + _memberGroupService = memberGroupService; + } - public void Handle(MemberGroupDeletedNotification notification) => Handle(notification.DeletedEntities); + public async Task HandleAsync(MemberGroupSavingNotification notification, CancellationToken cancellationToken) + => await SaveStateAsync(notification.SavedEntities, notification); - public void Handle(MemberGroupSavedNotification notification) => Handle(notification.SavedEntities); + public async Task HandleAsync(MemberGroupDeletingNotification notification, CancellationToken cancellationToken) + => await SaveStateAsync(notification.DeletedEntities, notification); - private void Handle(IEnumerable affectedEntities) + public void Handle(MemberGroupDeletedNotification notification) => Handle(notification.DeletedEntities, notification); + + public void Handle(MemberGroupSavedNotification notification) => Handle(notification.SavedEntities, notification); + + private async Task SaveStateAsync(IEnumerable affectedEntities, IStatefulNotification notification) + { + foreach (IMemberGroup memberGroup in affectedEntities) + { + // store the current group name in the notification state + var currentMemberGroupName = (await _memberGroupService.GetAsync(memberGroup.Key))?.Name; + if (currentMemberGroupName.IsNullOrWhiteSpace()) + { + continue; + } + + notification.State[StateKey(memberGroup)] = currentMemberGroupName; + } + } + + private void Handle(IEnumerable affectedEntities, IStatefulNotification notification) { foreach (IMemberGroup grp in affectedEntities) { - // check if the name has changed - if ((grp.AdditionalData?.ContainsKey("previousName") ?? false) - && grp.AdditionalData["previousName"] != null - && grp.AdditionalData["previousName"]?.ToString().IsNullOrWhiteSpace() == false - && grp.AdditionalData["previousName"]?.ToString() != grp.Name) + // check if the group name has changed and update group based rules accordingly + if (notification.State.TryGetValue(StateKey(grp), out var stateValue) is false + || stateValue is not string previousName + || previousName.IsNullOrWhiteSpace() + || previousName == grp.Name) { - _publicAccessService.RenameMemberGroupRoleRules( - grp.AdditionalData["previousName"]?.ToString(), - grp.Name); + continue; } + + _publicAccessService.RenameMemberGroupRoleRules(previousName, grp.Name); } } + + private static string StateKey(IMemberGroup memberGroup) => $"{nameof(PublicAccessHandler)}:{memberGroup.Key}"; } diff --git a/src/Umbraco.Core/Models/Entities/EntitySlim.cs b/src/Umbraco.Core/Models/Entities/EntitySlim.cs index 91acaea3fd..494e6abf6e 100644 --- a/src/Umbraco.Core/Models/Entities/EntitySlim.cs +++ b/src/Umbraco.Core/Models/Entities/EntitySlim.cs @@ -22,8 +22,6 @@ public class EntitySlim : IEntitySlim /// public static readonly IEntitySlim Root = new EntitySlim { Path = "-1", Name = "root", HasChildren = true }; - private IDictionary? _additionalData; - // implement IEntity /// @@ -84,17 +82,6 @@ public class EntitySlim : IEntitySlim [DataMember] public bool Trashed { get; set; } - // implement IUmbracoEntity - - /// - [DataMember] - public IDictionary? AdditionalData => -_additionalData ??= new Dictionary(); - - /// - [IgnoreDataMember] - public bool HasAdditionalData => _additionalData != null; - // implement IEntitySlim /// diff --git a/src/Umbraco.Core/Models/Entities/IEntitySlim.cs b/src/Umbraco.Core/Models/Entities/IEntitySlim.cs index 120d417d1a..fe7f093c81 100644 --- a/src/Umbraco.Core/Models/Entities/IEntitySlim.cs +++ b/src/Umbraco.Core/Models/Entities/IEntitySlim.cs @@ -3,7 +3,7 @@ namespace Umbraco.Cms.Core.Models.Entities; /// /// Represents a lightweight entity, managed by the entity service. /// -public interface IEntitySlim : IUmbracoEntity, IHaveAdditionalData +public interface IEntitySlim : IUmbracoEntity { /// /// Gets or sets the entity object type. diff --git a/src/Umbraco.Core/Models/Entities/IHaveAdditionalData.cs b/src/Umbraco.Core/Models/Entities/IHaveAdditionalData.cs deleted file mode 100644 index a2ac3a247a..0000000000 --- a/src/Umbraco.Core/Models/Entities/IHaveAdditionalData.cs +++ /dev/null @@ -1,43 +0,0 @@ -namespace Umbraco.Cms.Core.Models.Entities; - -/// -/// Provides support for additional data. -/// -/// -/// Additional data are transient, not deep-cloned. -/// -public interface IHaveAdditionalData -{ - /// - /// Gets additional data for this entity. - /// - /// - /// Can be empty, but never null. To avoid allocating, do not - /// test for emptiness, but use instead. - /// - IDictionary? AdditionalData { get; } - - /// - /// Determines whether this entity has additional data. - /// - /// - /// Use this property to check for additional data without - /// getting , to avoid allocating. - /// - bool HasAdditionalData { get; } - - // how to implement: - - /* - private IDictionary _additionalData; - - /// - [DataMember] - [DoNotClone] - PublicAccessEntry IDictionary AdditionalData => _additionalData ?? (_additionalData = new Dictionary()); - - /// - [IgnoreDataMember] - PublicAccessEntry bool HasAdditionalData => _additionalData != null; - */ -} diff --git a/src/Umbraco.Core/Models/HaveAdditionalDataExtensions.cs b/src/Umbraco.Core/Models/HaveAdditionalDataExtensions.cs deleted file mode 100644 index 79db47414a..0000000000 --- a/src/Umbraco.Core/Models/HaveAdditionalDataExtensions.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) Umbraco. -// See LICENSE for more details. - -using Umbraco.Cms.Core.Models.Entities; - -namespace Umbraco.Extensions; - -public static class HaveAdditionalDataExtensions -{ - /// - /// Gets additional data. - /// - public static object? GetAdditionalDataValueIgnoreCase(this IHaveAdditionalData entity, string key, object? defaultValue) - { - if (!entity.HasAdditionalData) - { - return defaultValue; - } - - if (entity.AdditionalData?.ContainsKeyIgnoreCase(key) == false) - { - return defaultValue; - } - - return entity.AdditionalData?.GetValueIgnoreCase(key, defaultValue); - } -} diff --git a/src/Umbraco.Core/Models/IMember.cs b/src/Umbraco.Core/Models/IMember.cs index 6085b84f01..e8f4fe9986 100644 --- a/src/Umbraco.Core/Models/IMember.cs +++ b/src/Umbraco.Core/Models/IMember.cs @@ -1,10 +1,9 @@ using System.ComponentModel; -using Umbraco.Cms.Core.Models.Entities; using Umbraco.Cms.Core.Models.Membership; namespace Umbraco.Cms.Core.Models; -public interface IMember : IContentBase, IMembershipUser, IHaveAdditionalData +public interface IMember : IContentBase, IMembershipUser { /// /// String alias of the default ContentType diff --git a/src/Umbraco.Core/Models/IMemberGroup.cs b/src/Umbraco.Core/Models/IMemberGroup.cs index 904d60cf8c..f79ca3536c 100644 --- a/src/Umbraco.Core/Models/IMemberGroup.cs +++ b/src/Umbraco.Core/Models/IMemberGroup.cs @@ -5,7 +5,7 @@ namespace Umbraco.Cms.Core.Models; /// /// Represents a member type /// -public interface IMemberGroup : IEntity, IRememberBeingDirty, IHaveAdditionalData +public interface IMemberGroup : IEntity, IRememberBeingDirty { /// /// The name of the member group diff --git a/src/Umbraco.Core/Models/Member.cs b/src/Umbraco.Core/Models/Member.cs index cddf04b4fe..3f2b904ed0 100644 --- a/src/Umbraco.Core/Models/Member.cs +++ b/src/Umbraco.Core/Models/Member.cs @@ -11,7 +11,6 @@ namespace Umbraco.Cms.Core.Models; [DataContract(IsReference = true)] public class Member : ContentBase, IMember { - private IDictionary? _additionalData; private string _email; private DateTime? _emailConfirmedDate; private int _failedPasswordAttempts; @@ -508,15 +507,6 @@ public class Member : ContentBase, IMember [EditorBrowsable(EditorBrowsableState.Never)] public string? PropertyTypeAlias { get; set; } - /// - [DataMember] - [DoNotClone] - public IDictionary AdditionalData => _additionalData ??= new Dictionary(); - - /// - [IgnoreDataMember] - public bool HasAdditionalData => _additionalData != null; - private Attempt WarnIfPropertyTypeNotFoundOnGet(string propertyAlias, string propertyName, T defaultVal) { static void DoLog(string logPropertyAlias, string logPropertyName) diff --git a/src/Umbraco.Core/Models/MemberGroup.cs b/src/Umbraco.Core/Models/MemberGroup.cs index 5ae7a7edd2..b36344a002 100644 --- a/src/Umbraco.Core/Models/MemberGroup.cs +++ b/src/Umbraco.Core/Models/MemberGroup.cs @@ -10,36 +10,14 @@ namespace Umbraco.Cms.Core.Models; [DataContract(IsReference = true)] public class MemberGroup : EntityBase, IMemberGroup { - private IDictionary? _additionalData; private int _creatorId; private string? _name; - /// - [DataMember] - [DoNotClone] - public IDictionary AdditionalData => -_additionalData ??= new Dictionary(); - - /// - [IgnoreDataMember] - public bool HasAdditionalData => _additionalData != null; - [DataMember] public string? Name { get => _name; - set - { - if (_name != value) - { - // if the name has changed, add the value to the additional data, - // this is required purely for event handlers to know the previous name of the group - // so we can keep the public access up to date. - AdditionalData["previousName"] = _name; - } - - SetPropertyValueAndDetectChanges(value, ref _name, nameof(Name)); - } + set => SetPropertyValueAndDetectChanges(value, ref _name, nameof(Name)); } [DataMember] diff --git a/tests/Umbraco.Tests.Common/Builders/DocumentEntitySlimBuilder.cs b/tests/Umbraco.Tests.Common/Builders/DocumentEntitySlimBuilder.cs index b3a35b50ae..af5f9c8933 100644 --- a/tests/Umbraco.Tests.Common/Builders/DocumentEntitySlimBuilder.cs +++ b/tests/Umbraco.Tests.Common/Builders/DocumentEntitySlimBuilder.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Umbraco.Cms.Core.Models.Entities; using Umbraco.Cms.Tests.Common.Builders.Interfaces; @@ -20,7 +19,6 @@ public class DocumentEntitySlimBuilder IWithSortOrderBuilder, IWithParentIdBuilder { - private GenericDictionaryBuilder _additionalDataBuilder; private string _contentTypeAlias; private string _contentTypeIcon; private string _contentTypeThumbnail; @@ -128,13 +126,6 @@ public class DocumentEntitySlimBuilder return this; } - public GenericDictionaryBuilder AddAdditionalData() - { - var builder = new GenericDictionaryBuilder(this); - _additionalDataBuilder = builder; - return builder; - } - public override DocumentEntitySlim Build() { var id = _id ?? 1; @@ -172,15 +163,6 @@ public class DocumentEntitySlimBuilder Published = published }; - if (_additionalDataBuilder != null) - { - var additionalData = _additionalDataBuilder.Build(); - foreach (var kvp in additionalData) - { - documentEntitySlim.AdditionalData.Add(kvp.Key, kvp.Value); - } - } - return documentEntitySlim; } } diff --git a/tests/Umbraco.Tests.Common/Builders/MemberBuilder.cs b/tests/Umbraco.Tests.Common/Builders/MemberBuilder.cs index 11b35ccad4..29eb2f2a3c 100644 --- a/tests/Umbraco.Tests.Common/Builders/MemberBuilder.cs +++ b/tests/Umbraco.Tests.Common/Builders/MemberBuilder.cs @@ -1,8 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; -using System.Collections.Generic; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Tests.Common.Builders.Extensions; using Umbraco.Cms.Tests.Common.Builders.Interfaces; @@ -24,7 +22,6 @@ public class MemberBuilder IWithSortOrderBuilder, IAccountBuilder { - private GenericDictionaryBuilder _additionalDataBuilder; private DateTime? _createDate; private int? _creatorId; private string _email; @@ -201,13 +198,6 @@ public class MemberBuilder return builder; } - public GenericDictionaryBuilder AddAdditionalData() - { - var builder = new GenericDictionaryBuilder(this); - _additionalDataBuilder = builder; - return builder; - } - public GenericDictionaryBuilder AddPropertyData() { var builder = new GenericDictionaryBuilder(this); @@ -281,15 +271,6 @@ public class MemberBuilder member.Groups = _memberGroupsBuilder.Build(); } - if (_additionalDataBuilder != null) - { - var additionalData = _additionalDataBuilder.Build(); - foreach (var kvp in additionalData) - { - member.AdditionalData.Add(kvp.Key, kvp.Value); - } - } - if (_propertyDataBuilder != null) { var propertyData = _propertyDataBuilder.Build(); diff --git a/tests/Umbraco.Tests.Common/Builders/MemberGroupBuilder.cs b/tests/Umbraco.Tests.Common/Builders/MemberGroupBuilder.cs index 4841acbe6a..8bf7db7cc4 100644 --- a/tests/Umbraco.Tests.Common/Builders/MemberGroupBuilder.cs +++ b/tests/Umbraco.Tests.Common/Builders/MemberGroupBuilder.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Tests.Common.Builders.Interfaces; @@ -16,7 +15,6 @@ public class MemberGroupBuilder IWithUpdateDateBuilder, IWithNameBuilder { - private GenericDictionaryBuilder _additionalDataBuilder; private DateTime? _createDate; private int? _creatorId; @@ -61,13 +59,6 @@ public class MemberGroupBuilder set => _updateDate = value; } - public GenericDictionaryBuilder AddAdditionalData() - { - var builder = new GenericDictionaryBuilder(this); - _additionalDataBuilder = builder; - return builder; - } - public override MemberGroup Build() { var id = _id ?? 1; @@ -87,15 +78,6 @@ public class MemberGroupBuilder CreatorId = creatorId }; - if (_additionalDataBuilder != null) - { - var additionalData = _additionalDataBuilder.Build(); - foreach (var kvp in additionalData) - { - memberGroup.AdditionalData.Add(kvp.Key, kvp.Value); - } - } - return memberGroup; } } diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityServiceTests.cs index 475fa69559..6643352faf 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityServiceTests.cs @@ -690,8 +690,6 @@ public class EntityServiceTests : UmbracoIntegrationTest for (var i = 0; i < entities.Length; i++) { - Assert.AreEqual(0, entities[i].AdditionalData.Count); - if (i % 2 == 0) { var doc = (IDocumentEntitySlim)entities[i]; @@ -702,10 +700,6 @@ public class EntityServiceTests : UmbracoIntegrationTest Assert.AreEqual(_langEs.IsoCode.ToLowerInvariant(), keys[1].ToLowerInvariant()); Assert.AreEqual("Test " + i + " - ES", vals[1]); } - else - { - Assert.AreEqual(0, entities[i].AdditionalData.Count); - } } } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/DocumentEntityTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/DocumentEntityTests.cs index e0443d4b53..3c311e6782 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/DocumentEntityTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/DocumentEntityTests.cs @@ -32,10 +32,6 @@ public class DocumentEntityTests .WithContentTypeThumbnail("thumb") .WithHasChildren(true) .WithPublished(true) - .AddAdditionalData() - .WithKeyValue("test1", 3) - .WithKeyValue("test2", "value") - .Done() .Build(); var json = JsonSerializer.Serialize(item); diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MemberGroupTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MemberGroupTests.cs index 1080d70b30..7efa4f5446 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MemberGroupTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MemberGroupTests.cs @@ -31,8 +31,6 @@ public class MemberGroupTests Assert.AreNotSame(clone, group); Assert.AreEqual(clone, group); Assert.AreEqual(clone.Id, group.Id); - Assert.AreEqual(clone.AdditionalData, group.AdditionalData); - Assert.AreEqual(clone.AdditionalData.Count, group.AdditionalData.Count); Assert.AreEqual(clone.CreateDate, group.CreateDate); Assert.AreEqual(clone.CreatorId, group.CreatorId); Assert.AreEqual(clone.Key, group.Key); @@ -64,9 +62,5 @@ public class MemberGroupTests .WithCreatorId(4) .WithCreateDate(DateTime.Now) .WithUpdateDate(DateTime.Now) - .AddAdditionalData() - .WithKeyValue("test1", 123) - .WithKeyValue("test2", "hello") - .Done() .Build(); } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MemberTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MemberTests.cs index 1cda2de32a..5856b6321b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MemberTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MemberTests.cs @@ -32,7 +32,6 @@ public class MemberTests Assert.AreEqual(clone, member); Assert.AreEqual(clone.Id, member.Id); Assert.AreEqual(clone.VersionId, member.VersionId); - Assert.AreEqual(clone.AdditionalData, member.AdditionalData); Assert.AreEqual(clone.ContentType, member.ContentType); Assert.AreEqual(clone.ContentTypeId, member.ContentTypeId); Assert.AreEqual(clone.CreateDate, member.CreateDate); @@ -123,10 +122,6 @@ public class MemberTests .WithValue("Group 1") .WithValue("Group 2") .Done() - .AddAdditionalData() - .WithKeyValue("test1", 123) - .WithKeyValue("test2", "hello") - .Done() .WithPropertyIdsIncrementingFrom(200) .AddPropertyData() .WithKeyValue("title", "Name member") diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/DocumentEntitySlimBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/DocumentEntitySlimBuilderTests.cs index 062d8aa7b0..8cdcac7dc8 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/DocumentEntitySlimBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/DocumentEntitySlimBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System.Collections.Generic; using NUnit.Framework; using Umbraco.Cms.Tests.Common.Builders; using Umbraco.Cms.Tests.Common.Builders.Extensions; @@ -30,8 +29,6 @@ public class DocumentEntitySlimBuilderTests var testKey = Guid.NewGuid(); var testCreateDate = DateTime.Now.AddHours(-1); var testUpdateDate = DateTime.Now; - var testAdditionalData1 = new KeyValuePair("test1", 123); - var testAdditionalData2 = new KeyValuePair("test2", "hello"); var builder = new DocumentEntitySlimBuilder(); @@ -52,10 +49,6 @@ public class DocumentEntitySlimBuilderTests .WithContentTypeThumbnail(testContentTypeThumbnail) .WithHasChildren(testHasChildren) .WithPublished(testPublished) - .AddAdditionalData() - .WithKeyValue(testAdditionalData1.Key, testAdditionalData1.Value) - .WithKeyValue(testAdditionalData2.Key, testAdditionalData2.Value) - .Done() .Build(); // Assert @@ -74,8 +67,5 @@ public class DocumentEntitySlimBuilderTests Assert.AreEqual(testContentTypeThumbnail, item.ContentTypeThumbnail); Assert.AreEqual(testHasChildren, item.HasChildren); Assert.AreEqual(testPublished, item.Published); - Assert.AreEqual(2, item.AdditionalData.Count); - Assert.AreEqual(testAdditionalData1.Value, item.AdditionalData[testAdditionalData1.Key]); - Assert.AreEqual(testAdditionalData2.Value, item.AdditionalData[testAdditionalData2.Key]); } } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberBuilderTests.cs index b173ba6ce5..fa9e770f76 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberBuilderTests.cs @@ -1,8 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System.Collections.Generic; -using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Tests.Common.Builders; @@ -56,8 +54,6 @@ public class MemberBuilderTests var testPropertyData1 = new KeyValuePair("title", "Name member"); var testPropertyData2 = new KeyValuePair("bodyText", "This is a subpage"); var testPropertyData3 = new KeyValuePair("author", "John Doe"); - var testAdditionalData1 = new KeyValuePair("test1", 123); - var testAdditionalData2 = new KeyValuePair("test2", "hello"); const int testPropertyIdsIncrementingFrom = 200; var builder = new MemberBuilder(); @@ -116,10 +112,6 @@ public class MemberBuilderTests .WithValue(testGroups[0]) .WithValue(testGroups[1]) .Done() - .AddAdditionalData() - .WithKeyValue(testAdditionalData1.Key, testAdditionalData1.Value) - .WithKeyValue(testAdditionalData2.Key, testAdditionalData2.Value) - .Done() .WithPropertyIdsIncrementingFrom(200) .AddPropertyData() .WithKeyValue(testPropertyData1.Key, testPropertyData1.Value) @@ -153,9 +145,5 @@ public class MemberBuilderTests var propertyIds = member.Properties.Select(x => x.Id).OrderBy(x => x).ToArray(); Assert.AreEqual(testPropertyIdsIncrementingFrom + 1, propertyIds.Min()); Assert.AreEqual(testPropertyIdsIncrementingFrom + 4, propertyIds.Max()); - - Assert.AreEqual(2, member.AdditionalData.Count); - Assert.AreEqual(testAdditionalData1.Value, member.AdditionalData[testAdditionalData1.Key]); - Assert.AreEqual(testAdditionalData2.Value, member.AdditionalData[testAdditionalData2.Key]); } } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberGroupBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberGroupBuilderTests.cs index 8d52cbb0bc..d612038dae 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberGroupBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberGroupBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System.Collections.Generic; using NUnit.Framework; using Umbraco.Cms.Tests.Common.Builders; using Umbraco.Cms.Tests.Common.Builders.Extensions; @@ -21,8 +20,6 @@ public class MemberGroupBuilderTests var testKey = Guid.NewGuid(); var testCreateDate = DateTime.Now.AddHours(-1); var testUpdateDate = DateTime.Now; - var testAdditionalData1 = new KeyValuePair("test1", 123); - var testAdditionalData2 = new KeyValuePair("test2", "hello"); var builder = new MemberGroupBuilder(); @@ -34,10 +31,6 @@ public class MemberGroupBuilderTests .WithCreatorId(testCreatorId) .WithCreateDate(testCreateDate) .WithUpdateDate(testUpdateDate) - .AddAdditionalData() - .WithKeyValue(testAdditionalData1.Key, testAdditionalData1.Value) - .WithKeyValue(testAdditionalData2.Key, testAdditionalData2.Value) - .Done() .Build(); // Assert @@ -47,10 +40,5 @@ public class MemberGroupBuilderTests Assert.AreEqual(testCreateDate, group.CreateDate); Assert.AreEqual(testUpdateDate, group.UpdateDate); Assert.AreEqual(testCreatorId, group.CreatorId); - - // previousName is added as part of the MemberGroup construction, plus the 2 we've added. - Assert.AreEqual(3, group.AdditionalData.Count); - Assert.AreEqual(testAdditionalData1.Value, group.AdditionalData[testAdditionalData1.Key]); - Assert.AreEqual(testAdditionalData2.Value, group.AdditionalData[testAdditionalData2.Key]); } }