diff --git a/src/Umbraco.Tests.Common/Builders/BuilderBase.cs b/src/Umbraco.Tests.Common/Builders/BuilderBase.cs index d8fc048d1b..723581986c 100644 --- a/src/Umbraco.Tests.Common/Builders/BuilderBase.cs +++ b/src/Umbraco.Tests.Common/Builders/BuilderBase.cs @@ -3,5 +3,7 @@ namespace Umbraco.Tests.Common.Builders public abstract class BuilderBase { public abstract T Build(); + + protected abstract void Reset(); } } diff --git a/src/Umbraco.Tests.Common/Builders/ConfigurationEditorBuilder.cs b/src/Umbraco.Tests.Common/Builders/ConfigurationEditorBuilder.cs index 3e0b9b96a9..08cb9e07f5 100644 --- a/src/Umbraco.Tests.Common/Builders/ConfigurationEditorBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/ConfigurationEditorBuilder.cs @@ -7,12 +7,10 @@ namespace Umbraco.Tests.Common.Builders { private IDictionary _defaultConfiguration; - public ConfigurationEditorBuilder(TParent parentBuilder) : base(parentBuilder) { } - public ConfigurationEditorBuilder WithDefaultConfiguration(IDictionary defaultConfiguration) { _defaultConfiguration = defaultConfiguration; @@ -23,11 +21,16 @@ namespace Umbraco.Tests.Common.Builders { var defaultConfiguration = _defaultConfiguration ?? new Dictionary(); + Reset(); return new ConfigurationEditor() { DefaultConfiguration = defaultConfiguration, }; } + protected override void Reset() + { + _defaultConfiguration = null; + } } } diff --git a/src/Umbraco.Tests.Common/Builders/DataEditorBuilder.cs b/src/Umbraco.Tests.Common/Builders/DataEditorBuilder.cs index b3c3ff1b7e..b1e33f53df 100644 --- a/src/Umbraco.Tests.Common/Builders/DataEditorBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/DataEditorBuilder.cs @@ -9,8 +9,8 @@ namespace Umbraco.Tests.Common.Builders { public class DataEditorBuilder : ChildBuilderBase { - private readonly ConfigurationEditorBuilder> _explicitConfigurationEditorBuilder; - private readonly DataValueEditorBuilder> _explicitValueEditorBuilder; + private ConfigurationEditorBuilder> _explicitConfigurationEditorBuilder; + private DataValueEditorBuilder> _explicitValueEditorBuilder; private IDictionary _defaultConfiguration; public DataEditorBuilder(TParent parentBuilder) : base(parentBuilder) @@ -37,6 +37,7 @@ namespace Umbraco.Tests.Common.Builders var explicitConfigurationEditor = _explicitConfigurationEditorBuilder.Build(); var explicitValueEditor = _explicitValueEditorBuilder.Build(); + Reset(); return new DataEditor( Mock.Of(), Mock.Of(), @@ -50,5 +51,12 @@ namespace Umbraco.Tests.Common.Builders ExplicitValueEditor = explicitValueEditor }; } + + protected override void Reset() + { + _defaultConfiguration = null; + _explicitConfigurationEditorBuilder = new ConfigurationEditorBuilder>(this); + _explicitValueEditorBuilder = new DataValueEditorBuilder>(this); + } } } diff --git a/src/Umbraco.Tests.Common/Builders/DataTypeBuilder.cs b/src/Umbraco.Tests.Common/Builders/DataTypeBuilder.cs index de7b8d9a97..582c7f58b5 100644 --- a/src/Umbraco.Tests.Common/Builders/DataTypeBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/DataTypeBuilder.cs @@ -19,7 +19,7 @@ namespace Umbraco.Tests.Common.Builders IWithPathBuilder, IWithSortOrderBuilder { - private readonly DataEditorBuilder _dataEditorBuilder; + private DataEditorBuilder _dataEditorBuilder; private int? _id; private int? _parentId; private Guid? _key; @@ -28,7 +28,6 @@ namespace Umbraco.Tests.Common.Builders private DateTime? _deleteDate; private string _name; private bool? _trashed; - // private object _configuration; private int? _level; private string _path; private int? _creatorId; @@ -40,12 +39,6 @@ namespace Umbraco.Tests.Common.Builders _dataEditorBuilder = new DataEditorBuilder(this); } - // public DataTypeBuilder WithConfiguration(object configuration) - // { - // _configuration = configuration; - // return this; - // } - public DataTypeBuilder WithDatabaseType(ValueStorageType databaseType) { _databaseType = databaseType; @@ -67,13 +60,13 @@ namespace Umbraco.Tests.Common.Builders var updateDate = _updateDate ?? DateTime.Now; var deleteDate = _deleteDate ?? null; var name = _name ?? Guid.NewGuid().ToString(); - // var configuration = _configuration ?? editor.GetConfigurationEditor().DefaultConfigurationObject; var level = _level ?? 0; var path = _path ?? string.Empty; var creatorId = _creatorId ?? 1; var databaseType = _databaseType ?? ValueStorageType.Ntext; var sortOrder = _sortOrder ?? 0; + Reset(); return new DataType(editor, parentId) { Id = id, @@ -91,6 +84,24 @@ namespace Umbraco.Tests.Common.Builders }; } + protected override void Reset() + { + _dataEditorBuilder = new DataEditorBuilder(this); + _id = null; + _parentId = null; + _key = null; + _createDate = null; + _updateDate = null; + _deleteDate = null; + _name = null; + _trashed = null; + _level = null; + _path = null; + _creatorId = null; + _databaseType = null; + _sortOrder = null; + } + int? IWithIdBuilder.Id { get => _id; diff --git a/src/Umbraco.Tests.Common/Builders/DataValueEditorBuilder.cs b/src/Umbraco.Tests.Common/Builders/DataValueEditorBuilder.cs index 3d0b518ee7..4c271d127c 100644 --- a/src/Umbraco.Tests.Common/Builders/DataValueEditorBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/DataValueEditorBuilder.cs @@ -13,7 +13,6 @@ namespace Umbraco.Tests.Common.Builders private bool? _hideLabel; private string _valueType; - public DataValueEditorBuilder(TParent parentBuilder) : base(parentBuilder) { } @@ -49,6 +48,7 @@ namespace Umbraco.Tests.Common.Builders var hideLabel = _hideLabel ?? false; var valueType = _valueType ?? Guid.NewGuid().ToString(); + Reset(); return new DataValueEditor( Mock.Of(), Mock.Of(), @@ -62,5 +62,13 @@ namespace Umbraco.Tests.Common.Builders ValueType = valueType, }; } + + protected override void Reset() + { + _configuration = null; + _view = null; + _hideLabel = null; + _valueType = null; + } } } diff --git a/src/Umbraco.Tests.Common/Builders/DictionaryItemBuilder.cs b/src/Umbraco.Tests.Common/Builders/DictionaryItemBuilder.cs index 206bccba80..17ccbcc3fb 100644 --- a/src/Umbraco.Tests.Common/Builders/DictionaryItemBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/DictionaryItemBuilder.cs @@ -65,6 +65,7 @@ namespace Umbraco.Tests.Common.Builders var parentId = _parentId ?? null; var itemKey = _itemKey ?? Guid.NewGuid().ToString(); + Reset(); var result = new DictionaryItem(itemKey) { Translations = _translationBuilders.Select(x => x.Build()), @@ -78,6 +79,17 @@ namespace Umbraco.Tests.Common.Builders return result; } + protected override void Reset() + { + _createDate = null; + _deleteDate = null; + _id = null; + _itemKey = null; + _key = null; + _parentId = null; + _updateDate = null; + } + public DictionaryItemBuilder WithParentId(Guid parentId) { _parentId = parentId; diff --git a/src/Umbraco.Tests.Common/Builders/DictionaryTranslationBuilder.cs b/src/Umbraco.Tests.Common/Builders/DictionaryTranslationBuilder.cs index d2f9d4bf02..6104b005cf 100644 --- a/src/Umbraco.Tests.Common/Builders/DictionaryTranslationBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/DictionaryTranslationBuilder.cs @@ -12,8 +12,7 @@ namespace Umbraco.Tests.Common.Builders IWithDeleteDateBuilder, IWithKeyBuilder { - private readonly LanguageBuilder _languageBuilder; - private readonly Guid? _uniqueId = null; + private LanguageBuilder _languageBuilder; private DateTime? _createDate; private DateTime? _deleteDate; private int? _id; @@ -26,6 +25,48 @@ namespace Umbraco.Tests.Common.Builders _languageBuilder = new LanguageBuilder(this); } + public LanguageBuilder AddLanguage() => _languageBuilder; + + public DictionaryTranslationBuilder WithValue(string value) + { + _value = value; + return this; + } + + public override IDictionaryTranslation Build() + { + var createDate = _createDate ?? DateTime.Now; + var updateDate = _updateDate ?? DateTime.Now; + var deleteDate = _deleteDate ?? null; + var id = _id ?? 1; + var key = _key ?? Guid.NewGuid(); + + var result = new DictionaryTranslation( + _languageBuilder.Build(), + _value ?? Guid.NewGuid().ToString(), + key) + { + CreateDate = createDate, + UpdateDate = updateDate, + DeleteDate = deleteDate, + Id = id + }; + + Reset(); + return result; + } + + protected override void Reset() + { + _languageBuilder = new LanguageBuilder(this); + _createDate = null; + _deleteDate = null; + _id = null; + _key = null; + _updateDate = null; + _value = null; + } + DateTime? IWithCreateDateBuilder.CreateDate { get => _createDate; @@ -55,35 +96,5 @@ namespace Umbraco.Tests.Common.Builders get => _updateDate; set => _updateDate = value; } - - public override IDictionaryTranslation Build() - { - var createDate = _createDate ?? DateTime.Now; - var updateDate = _updateDate ?? DateTime.Now; - var deleteDate = _deleteDate ?? null; - var id = _id ?? 1; - var key = _key ?? Guid.NewGuid(); - - var result = new DictionaryTranslation( - _languageBuilder.Build(), - _value ?? Guid.NewGuid().ToString(), - _uniqueId ?? key) - { - CreateDate = createDate, - UpdateDate = updateDate, - DeleteDate = deleteDate, - Id = id - }; - - return result; - } - - public LanguageBuilder AddLanguage() => _languageBuilder; - - public DictionaryTranslationBuilder WithValue(string value) - { - _value = value; - return this; - } } } diff --git a/src/Umbraco.Tests.Common/Builders/EntitySlimBuilder.cs b/src/Umbraco.Tests.Common/Builders/EntitySlimBuilder.cs index 844c765a9d..f4649d6b49 100644 --- a/src/Umbraco.Tests.Common/Builders/EntitySlimBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/EntitySlimBuilder.cs @@ -16,6 +16,7 @@ namespace Umbraco.Tests.Common.Builders var id = _id ?? 1; var parentId = _parentId ?? -1; + Reset(); return new EntitySlim { Id = id, @@ -23,6 +24,12 @@ namespace Umbraco.Tests.Common.Builders }; } + protected override void Reset() + { + _id = null; + _parentId = null; + } + public EntitySlimBuilder WithNoParentId() { _parentId = 0; diff --git a/src/Umbraco.Tests.Common/Builders/GenericCollectionBuilder.cs b/src/Umbraco.Tests.Common/Builders/GenericCollectionBuilder.cs index c7e176e9b0..290fdfc45b 100644 --- a/src/Umbraco.Tests.Common/Builders/GenericCollectionBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/GenericCollectionBuilder.cs @@ -1,24 +1,36 @@ using System.Collections.Generic; +using System.Linq; namespace Umbraco.Tests.Common.Builders { public class GenericCollectionBuilder : ChildBuilderBase> { - private readonly IList _collection; + private IList _collection; public GenericCollectionBuilder(TBuilder parentBuilder) : base(parentBuilder) { - _collection = new List(); } public override IEnumerable Build() { - return _collection; + var collection = _collection?.ToList() ?? Enumerable.Empty(); + Reset(); + return collection; + } + + protected override void Reset() + { + _collection = null; } public GenericCollectionBuilder WithValue(T value) { + if (_collection == null) + { + _collection = new List(); + } + _collection.Add(value); return this; } diff --git a/src/Umbraco.Tests.Common/Builders/GenericDictionaryBuilder.cs b/src/Umbraco.Tests.Common/Builders/GenericDictionaryBuilder.cs index 8f6aedcf43..444bbb61d2 100644 --- a/src/Umbraco.Tests.Common/Builders/GenericDictionaryBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/GenericDictionaryBuilder.cs @@ -5,20 +5,34 @@ namespace Umbraco.Tests.Common.Builders public class GenericDictionaryBuilder : ChildBuilderBase> { - private readonly IDictionary _dictionary; + private IDictionary _dictionary; public GenericDictionaryBuilder(TBuilder parentBuilder) : base(parentBuilder) { - _dictionary = new Dictionary(); } public override IDictionary Build() { - return _dictionary; + var dictionary = _dictionary == null + ? new Dictionary() + : new Dictionary(_dictionary); + Reset(); + return dictionary; } + protected override void Reset() + { + _dictionary = null; + } + + public GenericDictionaryBuilder WithKeyValue(TKey key, TValue value) { + if (_dictionary == null) + { + _dictionary = new Dictionary(); + } + _dictionary.Add(key, value); return this; } diff --git a/src/Umbraco.Tests.Common/Builders/GlobalSettingsBuilder.cs b/src/Umbraco.Tests.Common/Builders/GlobalSettingsBuilder.cs index 56e242146c..1fe1164eba 100644 --- a/src/Umbraco.Tests.Common/Builders/GlobalSettingsBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/GlobalSettingsBuilder.cs @@ -32,8 +32,7 @@ namespace Umbraco.Tests.Common.Builders private string _noNodesViewPath; private bool? _useHttps; private int? _versionCheckPeriod; - private readonly SmtpSettingsBuilder> _smtpSettingsBuilder; - + private SmtpSettingsBuilder> _smtpSettingsBuilder; public GlobalSettingsBuilder(TParent parentBuilder) : base(parentBuilder) { @@ -192,7 +191,7 @@ namespace Umbraco.Tests.Common.Builders var mainDomLock = _mainDomLock ?? string.Empty; var noNodesViewPath = _noNodesViewPath ?? "~/config/splashes/NoNodes.cshtml"; - + Reset(); return new TestGlobalSettings { ConfigurationStatus = configurationStatus, @@ -220,6 +219,32 @@ namespace Umbraco.Tests.Common.Builders }; } + protected override void Reset() + { + _configurationStatus = null; + _databaseFactoryServerVersion = null; + _defaultUiLanguage = null; + _disableElectionForSingleServer = null; + _hideTopLevelNodeFromPath = null; + _installEmptyDatabase = null; + _installMissingDatabase = null; + _isSmtpServerConfigured = null; + _path = null; + _registerType = null; + _reservedPaths = null; + _reservedUrls = null; + _timeOutInMinutes = null; + _umbracoCssPath = null; + _umbracoMediaPath = null; + _umbracoPath = null; + _umbracoScriptsPath = null; + _mainDomLock = null; + _noNodesViewPath = null; + _useHttps = null; + _versionCheckPeriod = null; + _smtpSettingsBuilder = new SmtpSettingsBuilder>(this); + } + private class TestGlobalSettings : IGlobalSettings { public string ReservedUrls { get; set; } diff --git a/src/Umbraco.Tests.Common/Builders/LanguageBuilder.cs b/src/Umbraco.Tests.Common/Builders/LanguageBuilder.cs index ae60920c9c..186b961526 100644 --- a/src/Umbraco.Tests.Common/Builders/LanguageBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/LanguageBuilder.cs @@ -37,6 +37,64 @@ namespace Umbraco.Tests.Common.Builders { } + public LanguageBuilder WithIsDefault(bool isDefault) + { + _isDefault = isDefault; + return this; + } + + public LanguageBuilder WithIsMandatory(bool isMandatory) + { + _isMandatory = isMandatory; + return this; + } + + public LanguageBuilder WithFallbackLanguageId(int fallbackLanguageId) + { + _fallbackLanguageId = fallbackLanguageId; + return this; + } + + public override ILanguage Build() + { + var cultureInfo = _cultureInfo ?? CultureInfo.GetCultureInfo("en-US"); + var key = _key ?? Guid.NewGuid(); + var createDate = _createDate ?? DateTime.Now; + var updateDate = _updateDate ?? DateTime.Now; + var deleteDate = _deleteDate ?? null; + var fallbackLanguageId = _fallbackLanguageId ?? null; + var isDefault = _isDefault ?? false; + var isMandatory = _isMandatory ?? false; + + Reset(); + return new Language(Mock.Of(), cultureInfo.Name) + { + Id = _id ?? 1, + CultureName = cultureInfo.TwoLetterISOLanguageName, + IsoCode = new RegionInfo(cultureInfo.LCID).Name, + Key = key, + CreateDate = createDate, + UpdateDate = updateDate, + DeleteDate = deleteDate, + IsDefault = isDefault, + IsMandatory = isMandatory, + FallbackLanguageId = fallbackLanguageId + }; + } + + protected override void Reset() + { + _createDate = null; + _cultureInfo = null; + _deleteDate = null; + _fallbackLanguageId = null; + _id = null; + _isDefault = null; + _isMandatory = null; + _key = null; + _updateDate = null; + } + DateTime? IWithCreateDateBuilder.CreateDate { get => _createDate; @@ -72,49 +130,5 @@ namespace Umbraco.Tests.Common.Builders get => _updateDate; set => _updateDate = value; } - - public override ILanguage Build() - { - var cultureInfo = _cultureInfo ?? CultureInfo.GetCultureInfo("en-US"); - var key = _key ?? Guid.NewGuid(); - var createDate = _createDate ?? DateTime.Now; - var updateDate = _updateDate ?? DateTime.Now; - var deleteDate = _deleteDate ?? null; - var fallbackLanguageId = _fallbackLanguageId ?? null; - var isDefault = _isDefault ?? false; - var isMandatory = _isMandatory ?? false; - - return new Language(Mock.Of(), cultureInfo.Name) - { - Id = _id ?? 1, - CultureName = cultureInfo.TwoLetterISOLanguageName, - IsoCode = new RegionInfo(cultureInfo.LCID).Name, - Key = key, - CreateDate = createDate, - UpdateDate = updateDate, - DeleteDate = deleteDate, - IsDefault = isDefault, - IsMandatory = isMandatory, - FallbackLanguageId = fallbackLanguageId - }; - } - - public LanguageBuilder WithIsDefault(bool isDefault) - { - _isDefault = isDefault; - return this; - } - - public LanguageBuilder WithIsMandatory(bool isMandatory) - { - _isMandatory = isMandatory; - return this; - } - - public LanguageBuilder WithFallbackLanguageId(int fallbackLanguageId) - { - _fallbackLanguageId = fallbackLanguageId; - return this; - } } } diff --git a/src/Umbraco.Tests.Common/Builders/MemberBuilder.cs b/src/Umbraco.Tests.Common/Builders/MemberBuilder.cs index 16ec7ed005..f32035c5c9 100644 --- a/src/Umbraco.Tests.Common/Builders/MemberBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/MemberBuilder.cs @@ -161,9 +161,34 @@ namespace Umbraco.Tests.Common.Builders member.ResetDirtyProperties(false); } + Reset(); return member; } + protected override void Reset() + { + _id = null; + _key = null; + _createDate = null; + _updateDate = null; + _name = null; + _creatorId = null; + _level = null; + _path = null; + _username = null; + _rawPasswordValue = null; + _email = null; + _failedPasswordAttempts = null; + _isApproved = null; + _isLockedOut = null; + _lastLockoutDate = null; + _lastLoginDate = null; + _lastPasswordChangeDate = null; + _sortOrder = null; + _trashed = null; + _propertyIdsIncrementingFrom = null; + } + int? IWithIdBuilder.Id { get => _id; diff --git a/src/Umbraco.Tests.Common/Builders/MemberGroupBuilder.cs b/src/Umbraco.Tests.Common/Builders/MemberGroupBuilder.cs index bfd7f30a14..127a071083 100644 --- a/src/Umbraco.Tests.Common/Builders/MemberGroupBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/MemberGroupBuilder.cs @@ -57,9 +57,20 @@ namespace Umbraco.Tests.Common.Builders } } + Reset(); return memberGroup; } + protected override void Reset() + { + _id = null; + _key = null; + _createDate = null; + _updateDate = null; + _name = null; + _creatorId = null; + } + int? IWithIdBuilder.Id { get => _id; diff --git a/src/Umbraco.Tests.Common/Builders/MemberTypeBuilder.cs b/src/Umbraco.Tests.Common/Builders/MemberTypeBuilder.cs index d5a145331e..c132163c21 100644 --- a/src/Umbraco.Tests.Common/Builders/MemberTypeBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/MemberTypeBuilder.cs @@ -134,9 +134,25 @@ namespace Umbraco.Tests.Common.Builders memberType.ResetDirtyProperties(false); + Reset(); return memberType; } + protected override void Reset() + { + _id = null; + _alias = null; + _name = null; + _parentId = null; + _sortOrder = null; + _creatorId = null; + _description = null; + _icon = null; + _thumbnail = null; + _trashed = null; + _propertyGroupBuilders.Clear(); + } + int? IWithIdBuilder.Id { get => _id; diff --git a/src/Umbraco.Tests.Common/Builders/PropertyBuilder.cs b/src/Umbraco.Tests.Common/Builders/PropertyBuilder.cs index 6cb7a431f2..6396b604e9 100644 --- a/src/Umbraco.Tests.Common/Builders/PropertyBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/PropertyBuilder.cs @@ -36,6 +36,7 @@ namespace Umbraco.Tests.Common.Builders // Needs to be within collection to support publishing. var propertyTypeCollection = new PropertyTypeCollection(true, new[] { _propertyTypeBuilder.Build() }); + Reset(); return new Property(id, propertyTypeCollection[0]) { Key = key, @@ -44,6 +45,14 @@ namespace Umbraco.Tests.Common.Builders }; } + protected override void Reset() + { + _id = null; + _key = null; + _createDate = null; + _updateDate = null; + } + int? IWithIdBuilder.Id { get => _id; diff --git a/src/Umbraco.Tests.Common/Builders/PropertyGroupBuilder.cs b/src/Umbraco.Tests.Common/Builders/PropertyGroupBuilder.cs index 5df61dd072..25ec8bf21a 100644 --- a/src/Umbraco.Tests.Common/Builders/PropertyGroupBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/PropertyGroupBuilder.cs @@ -62,6 +62,7 @@ namespace Umbraco.Tests.Common.Builders properties.Add(propertyType); } + Reset(); return new PropertyGroup(properties) { Id = id, @@ -73,6 +74,17 @@ namespace Umbraco.Tests.Common.Builders }; } + protected override void Reset() + { + _id = null; + _key = null; + _createDate = null; + _updateDate = null; + _name = null; + _sortOrder = null; + _propertyTypeBuilders.Clear(); + } + int? IWithIdBuilder.Id { get => _id; diff --git a/src/Umbraco.Tests.Common/Builders/PropertyTypeBuilder.cs b/src/Umbraco.Tests.Common/Builders/PropertyTypeBuilder.cs index 9dc61014b5..3c499fb855 100644 --- a/src/Umbraco.Tests.Common/Builders/PropertyTypeBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/PropertyTypeBuilder.cs @@ -108,6 +108,7 @@ namespace Umbraco.Tests.Common.Builders var shortStringHelper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig()); + Reset(); return new PropertyType(shortStringHelper, propertyEditorAlias, valueStorageType) { Id = id, @@ -126,6 +127,26 @@ namespace Umbraco.Tests.Common.Builders ValidationRegExpMessage = validationRegExpMessage, }; } + + protected override void Reset() + { + _id = null; + _key = null; + _propertyEditorAlias = null; + _valueStorageType = null; + _alias = null; + _name = null; + _createDate = null; + _updateDate = null; + _sortOrder = null; + _description = null; + _dataTypeId = null; + _propertyGroupId = null; + _mandatory = null; + _mandatoryMessage = null; + _validationRegExp = null; + _validationRegExpMessage = null; + } int? IWithIdBuilder.Id { diff --git a/src/Umbraco.Tests.Common/Builders/RelationBuilder.cs b/src/Umbraco.Tests.Common/Builders/RelationBuilder.cs index 2cea234200..bf805aba77 100644 --- a/src/Umbraco.Tests.Common/Builders/RelationBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/RelationBuilder.cs @@ -58,6 +58,7 @@ namespace Umbraco.Tests.Common.Builders var relationType = _relationTypeBuilder.Build(); + Reset(); return new Relation(parentId, childId, relationType) { Comment = comment, @@ -68,6 +69,17 @@ namespace Umbraco.Tests.Common.Builders }; } + protected override void Reset() + { + _id = null; + _parentId = null; + _childId = null; + _key = null; + _createDate = null; + _updateDate = null; + _comment = null; + } + int? IWithIdBuilder.Id { get => _id; diff --git a/src/Umbraco.Tests.Common/Builders/RelationTypeBuilder.cs b/src/Umbraco.Tests.Common/Builders/RelationTypeBuilder.cs index 677d02bf09..dd25ae864a 100644 --- a/src/Umbraco.Tests.Common/Builders/RelationTypeBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/RelationTypeBuilder.cs @@ -33,6 +33,62 @@ namespace Umbraco.Tests.Common.Builders { } + public RelationTypeBuilder WithIsBidirectional(bool isBidirectional) + { + _isBidirectional = isBidirectional; + return this; + } + + public RelationTypeBuilder WithChildObjectType(Guid childObjectType) + { + _childObjectType = childObjectType; + return this; + } + + public RelationTypeBuilder WithParentObjectType(Guid parentObjectType) + { + _parentObjectType = parentObjectType; + return this; + } + + public override IRelationType Build() + { + var alias = _alias ?? Guid.NewGuid().ToString(); + var name = _name ?? Guid.NewGuid().ToString(); + var parentObjectType = _parentObjectType ?? null; + var childObjectType = _childObjectType ?? null; + var id = _id ?? 1; + var key = _key ?? Guid.NewGuid(); + var isBidirectional = _isBidirectional ?? false; + var createDate = _createDate ?? DateTime.Now; + var updateDate = _updateDate ?? DateTime.Now; + var deleteDate = _deleteDate ?? null; + + Reset(); + return new RelationType(name, alias, isBidirectional, parentObjectType, childObjectType) + { + Id = id, + Key = key, + CreateDate = createDate, + UpdateDate = updateDate, + DeleteDate = deleteDate + }; + } + + protected override void Reset() + { + _alias = null; + _childObjectType = null; + _createDate = null; + _deleteDate = null; + _id = null; + _isBidirectional = null; + _key = null; + _name = null; + _parentObjectType = null; + _updateDate = null; + } + string IWithAliasBuilder.Alias { get => _alias; @@ -74,46 +130,5 @@ namespace Umbraco.Tests.Common.Builders get => _updateDate; set => _updateDate = value; } - - public override IRelationType Build() - { - var alias = _alias ?? Guid.NewGuid().ToString(); - var name = _name ?? Guid.NewGuid().ToString(); - var parentObjectType = _parentObjectType ?? null; - var childObjectType = _childObjectType ?? null; - var id = _id ?? 1; - var key = _key ?? Guid.NewGuid(); - var isBidirectional = _isBidirectional ?? false; - var createDate = _createDate ?? DateTime.Now; - var updateDate = _updateDate ?? DateTime.Now; - var deleteDate = _deleteDate ?? null; - - return new RelationType(name, alias, isBidirectional, parentObjectType, childObjectType) - { - Id = id, - Key = key, - CreateDate = createDate, - UpdateDate = updateDate, - DeleteDate = deleteDate - }; - } - - public RelationTypeBuilder WithIsBidirectional(bool isBidirectional) - { - _isBidirectional = isBidirectional; - return this; - } - - public RelationTypeBuilder WithChildObjectType(Guid childObjectType) - { - _childObjectType = childObjectType; - return this; - } - - public RelationTypeBuilder WithParentObjectType(Guid parentObjectType) - { - _parentObjectType = parentObjectType; - return this; - } } } diff --git a/src/Umbraco.Tests.Common/Builders/SmtpSettingsBuilder.cs b/src/Umbraco.Tests.Common/Builders/SmtpSettingsBuilder.cs index 3120cc95f6..586aedec9e 100644 --- a/src/Umbraco.Tests.Common/Builders/SmtpSettingsBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/SmtpSettingsBuilder.cs @@ -9,65 +9,73 @@ namespace Umbraco.Tests.Common.Builders } } - public class SmtpSettingsBuilder - : ChildBuilderBase - { - private string _from; - private string _host; - private int? _port; - private string _pickupDirectoryLocation; + public class SmtpSettingsBuilder + : ChildBuilderBase + { + private string _from; + private string _host; + private int? _port; + private string _pickupDirectoryLocation; - public SmtpSettingsBuilder(TParent parentBuilder) : base(parentBuilder) - { - } + public SmtpSettingsBuilder(TParent parentBuilder) : base(parentBuilder) + { + } - public SmtpSettingsBuilder WithFrom(string from) - { - _from = from; - return this; - } + public SmtpSettingsBuilder WithFrom(string from) + { + _from = from; + return this; + } - public SmtpSettingsBuilder WithHost(string host) - { - _host = host; - return this; - } + public SmtpSettingsBuilder WithHost(string host) + { + _host = host; + return this; + } - public SmtpSettingsBuilder WithPost(int port) - { - _port = port; - return this; - } + public SmtpSettingsBuilder WithPost(int port) + { + _port = port; + return this; + } - public SmtpSettingsBuilder WithPickupDirectoryLocation(string pickupDirectoryLocation) - { - _pickupDirectoryLocation = pickupDirectoryLocation; - return this; - } + public SmtpSettingsBuilder WithPickupDirectoryLocation(string pickupDirectoryLocation) + { + _pickupDirectoryLocation = pickupDirectoryLocation; + return this; + } + public override ISmtpSettings Build() + { + var from = _from ?? null; + var host = _host ?? null; + var port = _port ?? 25; + var pickupDirectoryLocation = _pickupDirectoryLocation ?? null; - public override ISmtpSettings Build() - { - var from = _from ?? null; - var host = _host ?? null; - var port = _port ?? 25; - var pickupDirectoryLocation = _pickupDirectoryLocation ?? null; - - return new TestSmtpSettings() - { + Reset(); + return new TestSmtpSettings() + { From = from, Host = host, Port = port, PickupDirectoryLocation = pickupDirectoryLocation, - }; - } + }; + } - private class TestSmtpSettings : ISmtpSettings - { - public string From { get; set; } - public string Host { get; set; } - public int Port { get; set; } - public string PickupDirectoryLocation { get; set; } - } - } + protected override void Reset() + { + _from = null; + _host = null; + _port = null; + _pickupDirectoryLocation = null; + } + + private class TestSmtpSettings : ISmtpSettings + { + public string From { get; set; } + public string Host { get; set; } + public int Port { get; set; } + public string PickupDirectoryLocation { get; set; } + } + } } diff --git a/src/Umbraco.Tests.Common/Builders/StylesheetBuilder.cs b/src/Umbraco.Tests.Common/Builders/StylesheetBuilder.cs index ed871b9c31..c3eb097e65 100644 --- a/src/Umbraco.Tests.Common/Builders/StylesheetBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/StylesheetBuilder.cs @@ -25,10 +25,17 @@ namespace Umbraco.Tests.Common.Builders var path = _path ?? string.Empty; var content = _content ?? string.Empty; + Reset(); return new Stylesheet(path) { Content = content, }; } + + protected override void Reset() + { + _path = null; + _content = null; + } } } diff --git a/src/Umbraco.Tests.Common/Builders/TemplateBuilder.cs b/src/Umbraco.Tests.Common/Builders/TemplateBuilder.cs index 7f7fa0f098..6a29b89e6a 100644 --- a/src/Umbraco.Tests.Common/Builders/TemplateBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/TemplateBuilder.cs @@ -57,6 +57,8 @@ namespace Umbraco.Tests.Common.Builders var masterTemplateId = _masterTemplateId ?? null; var shortStringHelper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig()); + + Reset(); return new Template(shortStringHelper, name, alias) { Id = id, @@ -71,6 +73,21 @@ namespace Umbraco.Tests.Common.Builders }; } + protected override void Reset() + { + _id = null; + _key = null; + _alias = null; + _name = null; + _createDate = null; + _updateDate = null; + _path = null; + _content = null; + _isMasterTemplate = null; + _masterTemplateAlias = null; + _masterTemplateId = null; + } + int? IWithIdBuilder.Id { get => _id; diff --git a/src/Umbraco.Tests.Common/Builders/UserBuilder.cs b/src/Umbraco.Tests.Common/Builders/UserBuilder.cs index 4fafb3e1bd..4d69280ec5 100644 --- a/src/Umbraco.Tests.Common/Builders/UserBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/UserBuilder.cs @@ -10,7 +10,6 @@ namespace Umbraco.Tests.Common.Builders { } } - public class UserBuilder : ChildBuilderBase, IWithIdBuilder, @@ -135,6 +134,7 @@ namespace Umbraco.Tests.Common.Builders var startContentIds = _startContentIds ?? new int[0]; var startMediaIds = _startMediaIds ?? new int[0]; + Reset(); return new User( globalSettings, name, @@ -160,6 +160,31 @@ namespace Umbraco.Tests.Common.Builders }; } + protected override void Reset() + { + _id = null; + _key = null; + _createDate = null; + _updateDate = null; + _language = null; + _name = null; + _username = null; + _rawPasswordValue = null; + _email = null; + _failedPasswordAttempts = null; + _isApproved = null; + _isLockedOut = null; + _lastLockoutDate = null; + _lastLoginDate = null; + _lastPasswordChangeDate = null; + _suffix = string.Empty; + _defaultLang = null; + _comments = null; + _sessionTimeout = null; + _startContentIds = null; + _startMediaIds = null; + } + int? IWithIdBuilder.Id { get => _id; diff --git a/src/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs b/src/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs index 4c6bb7a74c..8b0568d2d4 100644 --- a/src/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs @@ -6,7 +6,6 @@ using Umbraco.Tests.Common.Builders.Interfaces; namespace Umbraco.Tests.Common.Builders { - public class UserGroupBuilder : UserGroupBuilder { public UserGroupBuilder() : base(null) @@ -61,7 +60,7 @@ namespace Umbraco.Tests.Common.Builders public override IUserGroup Build() { - return Mock.Of(x => + var userGroup = Mock.Of(x => x.StartContentId == _startContentId && x.StartMediaId == _startMediaId && x.Name == (_name ?? ("TestUserGroup" + _suffix)) && @@ -69,6 +68,21 @@ namespace Umbraco.Tests.Common.Builders x.Icon == _icon && x.Permissions == _permissions && x.AllowedSections == _sectionCollection); + Reset(); + return userGroup; + } + + protected override void Reset() + { + _startContentId = null; + _startMediaId = null; + _alias = null; + _icon = null; + _name = null; + _permissions = Enumerable.Empty(); + _sectionCollection = Enumerable.Empty(); + _suffix = null; + _id = null; } int? IWithIdBuilder.Id diff --git a/src/Umbraco.Tests.Integration/Persistence/Repositories/UserRepositoryTest.cs b/src/Umbraco.Tests.Integration/Persistence/Repositories/UserRepositoryTest.cs index a590121556..23c9e398d3 100644 --- a/src/Umbraco.Tests.Integration/Persistence/Repositories/UserRepositoryTest.cs +++ b/src/Umbraco.Tests.Integration/Persistence/Repositories/UserRepositoryTest.cs @@ -87,7 +87,7 @@ namespace Umbraco.Tests.Persistence.Repositories { var repository = CreateRepository(provider); - var user = UserBuilder.Build(); + var user = UserBuilder.WithoutIdentity().Build(); repository.Save(user); @@ -365,10 +365,9 @@ namespace Umbraco.Tests.Persistence.Repositories private User CreateAndCommitUserWithGroup(IUserRepository repository, IUserGroupRepository userGroupRepository) { - var user = UserBuilder.Build(); + var user = UserBuilder.WithoutIdentity().Build(); repository.Save(user); - var group = UserGroupBuilder.Build(); userGroupRepository.AddOrUpdateGroupWithUsers(@group, new[] { user.Id });