diff --git a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj
index a3f8953ac3..db3ae1bc25 100644
--- a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj
+++ b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj
@@ -78,7 +78,10 @@
<_Parameter1>Umbraco.Tests.Common
-
+
+
+ <_Parameter1>Umbraco.Tests.UnitTests
+
diff --git a/src/Umbraco.Tests.Common/Builders/ConfigurationEditorBuilder.cs b/src/Umbraco.Tests.Common/Builders/ConfigurationEditorBuilder.cs
index 3e0b9b96a9..f0761a983e 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;
@@ -28,6 +26,5 @@ namespace Umbraco.Tests.Common.Builders
DefaultConfiguration = defaultConfiguration,
};
}
-
}
}
diff --git a/src/Umbraco.Tests.Common/Builders/DataEditorBuilder.cs b/src/Umbraco.Tests.Common/Builders/DataEditorBuilder.cs
index b3c3ff1b7e..5e6b174f56 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)
diff --git a/src/Umbraco.Tests.Common/Builders/DataTypeBuilder.cs b/src/Umbraco.Tests.Common/Builders/DataTypeBuilder.cs
index de7b8d9a97..cdf4a68d09 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,7 +60,6 @@ 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;
diff --git a/src/Umbraco.Tests.Common/Builders/DataValueEditorBuilder.cs b/src/Umbraco.Tests.Common/Builders/DataValueEditorBuilder.cs
index 3d0b518ee7..ecc2649c02 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)
{
}
diff --git a/src/Umbraco.Tests.Common/Builders/DictionaryTranslationBuilder.cs b/src/Umbraco.Tests.Common/Builders/DictionaryTranslationBuilder.cs
index d2f9d4bf02..6742bf0d97 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,36 @@ 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
+ };
+
+ return result;
+ }
+
DateTime? IWithCreateDateBuilder.CreateDate
{
get => _createDate;
@@ -55,35 +84,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
new file mode 100644
index 0000000000..844c765a9d
--- /dev/null
+++ b/src/Umbraco.Tests.Common/Builders/EntitySlimBuilder.cs
@@ -0,0 +1,44 @@
+using Umbraco.Core.Models.Entities;
+using Umbraco.Tests.Common.Builders.Interfaces;
+
+namespace Umbraco.Tests.Common.Builders
+{
+ public class EntitySlimBuilder
+ : BuilderBase,
+ IWithIdBuilder,
+ IWithParentIdBuilder
+ {
+ private int? _id;
+ private int? _parentId;
+
+ public override EntitySlim Build()
+ {
+ var id = _id ?? 1;
+ var parentId = _parentId ?? -1;
+
+ return new EntitySlim
+ {
+ Id = id,
+ ParentId = parentId,
+ };
+ }
+
+ public EntitySlimBuilder WithNoParentId()
+ {
+ _parentId = 0;
+ return this;
+ }
+
+ int? IWithIdBuilder.Id
+ {
+ get => _id;
+ set => _id = value;
+ }
+
+ int? IWithParentIdBuilder.ParentId
+ {
+ get => _parentId;
+ set => _parentId = value;
+ }
+ }
+}
diff --git a/src/Umbraco.Tests.Common/Builders/Extensions/BuilderExtensions.cs b/src/Umbraco.Tests.Common/Builders/Extensions/BuilderExtensions.cs
index c105a8bded..f3c0b9796e 100644
--- a/src/Umbraco.Tests.Common/Builders/Extensions/BuilderExtensions.cs
+++ b/src/Umbraco.Tests.Common/Builders/Extensions/BuilderExtensions.cs
@@ -12,6 +12,13 @@ namespace Umbraco.Tests.Common.Builders.Extensions
return builder;
}
+ public static T WithoutIdentity(this T builder)
+ where T : IWithIdBuilder
+ {
+ builder.Id = 0;
+ return builder;
+ }
+
public static T WithCreatorId(this T builder, int creatorId)
where T : IWithCreatorIdBuilder
{
@@ -116,5 +123,60 @@ namespace Umbraco.Tests.Common.Builders.Extensions
builder.Thumbnail = thumbnail;
return builder;
}
+
+ public static T WithLogin(this T builder, string username, string rawPasswordValue)
+ where T : IWithLoginBuilder
+ {
+ builder.Username = username;
+ builder.RawPasswordValue = rawPasswordValue;
+ return builder;
+ }
+
+ public static T WithEmail(this T builder, string email)
+ where T : IWithEmailBuilder
+ {
+ builder.Email = email;
+ return builder;
+ }
+
+ public static T WithFailedPasswordAttempts(this T builder, int failedPasswordAttempts)
+ where T : IWithFailedPasswordAttemptsBuilder
+ {
+ builder.FailedPasswordAttempts = failedPasswordAttempts;
+ return builder;
+ }
+
+ public static T WithIsApproved(this T builder, bool isApproved)
+ where T : IWithIsApprovedBuilder
+ {
+ builder.IsApproved = isApproved;
+ return builder;
+ }
+
+ public static T WithIsLockedOut(this T builder, bool isLockedOut, DateTime? lastLockoutDate = null)
+ where T : IWithIsLockedOutBuilder
+ {
+ builder.IsLockedOut = isLockedOut;
+ if (lastLockoutDate.HasValue)
+ {
+ builder.LastLockoutDate = lastLockoutDate.Value;
+ }
+
+ return builder;
+ }
+
+ public static T WithLastLoginDate(this T builder, DateTime lastLoginDate)
+ where T : IWithLastLoginDateBuilder
+ {
+ builder.LastLoginDate = lastLoginDate;
+ return builder;
+ }
+
+ public static T WithLastPasswordChangeDate(this T builder, DateTime lastPasswordChangeDate)
+ where T : IWithLastPasswordChangeDateBuilder
+ {
+ builder.LastPasswordChangeDate = lastPasswordChangeDate;
+ return builder;
+ }
}
}
diff --git a/src/Umbraco.Tests.Common/Builders/GenericCollectionBuilder.cs b/src/Umbraco.Tests.Common/Builders/GenericCollectionBuilder.cs
index c7e176e9b0..0c45f6a599 100644
--- a/src/Umbraco.Tests.Common/Builders/GenericCollectionBuilder.cs
+++ b/src/Umbraco.Tests.Common/Builders/GenericCollectionBuilder.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Linq;
namespace Umbraco.Tests.Common.Builders
{
@@ -14,7 +15,8 @@ namespace Umbraco.Tests.Common.Builders
public override IEnumerable Build()
{
- return _collection;
+ var collection = _collection?.ToList() ?? Enumerable.Empty();
+ return collection;
}
public GenericCollectionBuilder WithValue(T value)
diff --git a/src/Umbraco.Tests.Common/Builders/GenericDictionaryBuilder.cs b/src/Umbraco.Tests.Common/Builders/GenericDictionaryBuilder.cs
index 8f6aedcf43..f4cb7c6a30 100644
--- a/src/Umbraco.Tests.Common/Builders/GenericDictionaryBuilder.cs
+++ b/src/Umbraco.Tests.Common/Builders/GenericDictionaryBuilder.cs
@@ -14,7 +14,9 @@ namespace Umbraco.Tests.Common.Builders
public override IDictionary Build()
{
- return _dictionary;
+ return _dictionary == null
+ ? new Dictionary()
+ : new Dictionary(_dictionary);
}
public GenericDictionaryBuilder WithKeyValue(TKey key, TValue value)
diff --git a/src/Umbraco.Tests.Common/Builders/GlobalSettingsBuilder.cs b/src/Umbraco.Tests.Common/Builders/GlobalSettingsBuilder.cs
index 56e242146c..4a88d4a571 100644
--- a/src/Umbraco.Tests.Common/Builders/GlobalSettingsBuilder.cs
+++ b/src/Umbraco.Tests.Common/Builders/GlobalSettingsBuilder.cs
@@ -34,7 +34,6 @@ namespace Umbraco.Tests.Common.Builders
private int? _versionCheckPeriod;
private readonly SmtpSettingsBuilder> _smtpSettingsBuilder;
-
public GlobalSettingsBuilder(TParent parentBuilder) : base(parentBuilder)
{
_smtpSettingsBuilder = new SmtpSettingsBuilder>(this);
@@ -192,7 +191,6 @@ namespace Umbraco.Tests.Common.Builders
var mainDomLock = _mainDomLock ?? string.Empty;
var noNodesViewPath = _noNodesViewPath ?? "~/config/splashes/NoNodes.cshtml";
-
return new TestGlobalSettings
{
ConfigurationStatus = configurationStatus,
diff --git a/src/Umbraco.Tests.Common/Builders/Interfaces/IAccountBuilder.cs b/src/Umbraco.Tests.Common/Builders/Interfaces/IAccountBuilder.cs
new file mode 100644
index 0000000000..77fdd30547
--- /dev/null
+++ b/src/Umbraco.Tests.Common/Builders/Interfaces/IAccountBuilder.cs
@@ -0,0 +1,12 @@
+namespace Umbraco.Tests.Common.Builders.Interfaces
+{
+ public interface IAccountBuilder : IWithLoginBuilder,
+ IWithEmailBuilder,
+ IWithFailedPasswordAttemptsBuilder,
+ IWithIsApprovedBuilder,
+ IWithIsLockedOutBuilder,
+ IWithLastLoginDateBuilder,
+ IWithLastPasswordChangeDateBuilder
+ {
+ }
+}
diff --git a/src/Umbraco.Tests.Common/Builders/Interfaces/IWithApprovedBuilder.cs b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithApprovedBuilder.cs
deleted file mode 100644
index 48d41e7a84..0000000000
--- a/src/Umbraco.Tests.Common/Builders/Interfaces/IWithApprovedBuilder.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Umbraco.Tests.Common.Builders.Interfaces
-{
- public interface IWithApprovedBuilder
- {
- bool? Approved { get; set; }
- }
-}
diff --git a/src/Umbraco.Tests.Common/Builders/Interfaces/IWithEmailBuilder.cs b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithEmailBuilder.cs
new file mode 100644
index 0000000000..cb3be57e62
--- /dev/null
+++ b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithEmailBuilder.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Tests.Common.Builders.Interfaces
+{
+ public interface IWithEmailBuilder
+ {
+ string Email { get; set; }
+ }
+}
diff --git a/src/Umbraco.Tests.Common/Builders/Interfaces/IWithFailedPasswordAttemptsBuilder.cs b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithFailedPasswordAttemptsBuilder.cs
new file mode 100644
index 0000000000..d39647b28e
--- /dev/null
+++ b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithFailedPasswordAttemptsBuilder.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Tests.Common.Builders.Interfaces
+{
+ public interface IWithFailedPasswordAttemptsBuilder
+ {
+ int? FailedPasswordAttempts { get; set; }
+ }
+}
diff --git a/src/Umbraco.Tests.Common/Builders/Interfaces/IWithIsApprovedBuilder.cs b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithIsApprovedBuilder.cs
new file mode 100644
index 0000000000..c27c34d3a2
--- /dev/null
+++ b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithIsApprovedBuilder.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Tests.Common.Builders.Interfaces
+{
+ public interface IWithIsApprovedBuilder
+ {
+ bool? IsApproved { get; set; }
+ }
+}
diff --git a/src/Umbraco.Tests.Common/Builders/Interfaces/IWithIsLockedOutBuilder.cs b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithIsLockedOutBuilder.cs
new file mode 100644
index 0000000000..55577ed312
--- /dev/null
+++ b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithIsLockedOutBuilder.cs
@@ -0,0 +1,11 @@
+using System;
+
+namespace Umbraco.Tests.Common.Builders.Interfaces
+{
+ public interface IWithIsLockedOutBuilder
+ {
+ bool? IsLockedOut { get; set; }
+
+ DateTime? LastLockoutDate { get; set; }
+ }
+}
diff --git a/src/Umbraco.Tests.Common/Builders/Interfaces/IWithLastLoginDateBuilder.cs b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithLastLoginDateBuilder.cs
new file mode 100644
index 0000000000..0355786927
--- /dev/null
+++ b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithLastLoginDateBuilder.cs
@@ -0,0 +1,9 @@
+using System;
+
+namespace Umbraco.Tests.Common.Builders.Interfaces
+{
+ public interface IWithLastLoginDateBuilder
+ {
+ DateTime? LastLoginDate { get; set; }
+ }
+}
diff --git a/src/Umbraco.Tests.Common/Builders/Interfaces/IWithLastPasswordChangeDateBuilder.cs b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithLastPasswordChangeDateBuilder.cs
new file mode 100644
index 0000000000..833da022d4
--- /dev/null
+++ b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithLastPasswordChangeDateBuilder.cs
@@ -0,0 +1,9 @@
+using System;
+
+namespace Umbraco.Tests.Common.Builders.Interfaces
+{
+ public interface IWithLastPasswordChangeDateBuilder
+ {
+ DateTime? LastPasswordChangeDate { get; set; }
+ }
+}
diff --git a/src/Umbraco.Tests.Common/Builders/Interfaces/IWithLoginBuilder.cs b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithLoginBuilder.cs
new file mode 100644
index 0000000000..dc099f55b9
--- /dev/null
+++ b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithLoginBuilder.cs
@@ -0,0 +1,9 @@
+namespace Umbraco.Tests.Common.Builders.Interfaces
+{
+ public interface IWithLoginBuilder
+ {
+ string Username { get; set; }
+
+ string RawPasswordValue { get; set; }
+ }
+}
diff --git a/src/Umbraco.Tests.Common/Builders/LanguageBuilder.cs b/src/Umbraco.Tests.Common/Builders/LanguageBuilder.cs
index ae60920c9c..953a64c5ed 100644
--- a/src/Umbraco.Tests.Common/Builders/LanguageBuilder.cs
+++ b/src/Umbraco.Tests.Common/Builders/LanguageBuilder.cs
@@ -37,6 +37,50 @@ 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;
+
+ 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
+ };
+ }
+
DateTime? IWithCreateDateBuilder.CreateDate
{
get => _createDate;
@@ -72,49 +116,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/MacroBuilder.cs b/src/Umbraco.Tests.Common/Builders/MacroBuilder.cs
new file mode 100644
index 0000000000..66e81ef8ce
--- /dev/null
+++ b/src/Umbraco.Tests.Common/Builders/MacroBuilder.cs
@@ -0,0 +1,125 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Umbraco.Core.Models;
+using Umbraco.Core.Strings;
+using Umbraco.Tests.Common.Builders.Extensions;
+using Umbraco.Tests.Common.Builders.Interfaces;
+
+namespace Umbraco.Tests.Common.Builders
+{
+ public class MacroBuilder
+ : BuilderBase,
+ IWithIdBuilder,
+ IWithKeyBuilder,
+ IWithAliasBuilder,
+ IWithNameBuilder
+ {
+ private List _propertyBuilders = new List();
+
+ private int? _id;
+ private Guid? _key;
+ private string _alias;
+ private string _name;
+ private bool? _useInEditor;
+ private int? _cacheDuration;
+ private bool? _cacheByPage;
+ private bool? _cacheByMember;
+ private bool? _dontRender;
+ private string _macroSource;
+
+ public MacroBuilder WithUseInEditor(bool useInEditor)
+ {
+ _useInEditor = useInEditor;
+ return this;
+ }
+
+ public MacroBuilder WithCacheDuration(int cacheDuration)
+ {
+ _cacheDuration = cacheDuration;
+ return this;
+ }
+
+ public MacroBuilder WithCacheByPage(bool cacheByPage)
+ {
+ _cacheByPage = cacheByPage;
+ return this;
+ }
+
+ public MacroBuilder WithCacheByMember(bool cacheByMember)
+ {
+ _cacheByMember = cacheByMember;
+ return this;
+ }
+
+ public MacroBuilder WithDontRender(bool dontRender)
+ {
+ _dontRender = dontRender;
+ return this;
+ }
+
+ public MacroBuilder WithSource(string macroSource)
+ {
+ _macroSource = macroSource;
+ return this;
+ }
+
+ public MacroPropertyBuilder AddProperty()
+ {
+ var builder = new MacroPropertyBuilder(this);
+
+ _propertyBuilders.Add(builder);
+
+ return builder;
+ }
+
+ public override Macro Build()
+ {
+ var id = _id ?? 1;
+ var name = _name ?? Guid.NewGuid().ToString();
+ var alias = _alias ?? name.ToCamelCase();
+ var key = _key ?? Guid.NewGuid();
+ var useInEditor = _useInEditor ?? false;
+ var cacheDuration = _cacheDuration ?? 0;
+ var cacheByPage = _cacheByPage ?? false;
+ var cacheByMember = _cacheByMember ?? false;
+ var dontRender = _dontRender ?? false;
+ var macroSource = _macroSource ?? string.Empty;
+
+ var shortStringHelper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig());
+
+ var macro = new Macro(shortStringHelper, id, key, useInEditor, cacheDuration, alias, name, cacheByPage, cacheByMember, dontRender, macroSource);
+
+ foreach (var property in _propertyBuilders.Select(x => x.Build()))
+ {
+ macro.Properties.Add(property);
+ }
+
+ return macro;
+ }
+
+ int? IWithIdBuilder.Id
+ {
+ get => _id;
+ set => _id = value;
+ }
+
+ Guid? IWithKeyBuilder.Key
+ {
+ get => _key;
+ set => _key = value;
+ }
+
+ string IWithAliasBuilder.Alias
+ {
+ get => _alias;
+ set => _alias = value;
+ }
+
+ string IWithNameBuilder.Name
+ {
+ get => _name;
+ set => _name = value;
+ }
+ }
+}
diff --git a/src/Umbraco.Tests.Common/Builders/MacroPropertyBuilder.cs b/src/Umbraco.Tests.Common/Builders/MacroPropertyBuilder.cs
new file mode 100644
index 0000000000..ce80a056e9
--- /dev/null
+++ b/src/Umbraco.Tests.Common/Builders/MacroPropertyBuilder.cs
@@ -0,0 +1,75 @@
+using System;
+using Umbraco.Core.Models;
+using Umbraco.Tests.Common.Builders.Extensions;
+using Umbraco.Tests.Common.Builders.Interfaces;
+
+namespace Umbraco.Tests.Common.Builders
+{
+ public class MacroPropertyBuilder
+ : ChildBuilderBase,
+ IWithIdBuilder,
+ IWithKeyBuilder,
+ IWithAliasBuilder,
+ IWithNameBuilder,
+ IWithSortOrderBuilder
+ {
+ private int? _id;
+ private Guid? _key;
+ private string _alias;
+ private string _name;
+ private int? _sortOrder;
+ private string _editorAlias;
+
+ public MacroPropertyBuilder(MacroBuilder parentBuilder) : base(parentBuilder)
+ {
+ }
+
+ public MacroPropertyBuilder WithEditorAlias(string editorAlias)
+ {
+ _editorAlias = editorAlias;
+ return this;
+ }
+
+ public override IMacroProperty Build()
+ {
+ var id = _id ?? 1;
+ var name = _name ?? Guid.NewGuid().ToString();
+ var alias = _alias ?? name.ToCamelCase();
+ var key = _key ?? Guid.NewGuid();
+ var sortOrder = _sortOrder ?? 0;
+ var editorAlias = _editorAlias ?? string.Empty;
+
+ return new MacroProperty(id, key, alias, name, sortOrder, editorAlias);
+ }
+
+ int? IWithIdBuilder.Id
+ {
+ get => _id;
+ set => _id = value;
+ }
+
+ Guid? IWithKeyBuilder.Key
+ {
+ get => _key;
+ set => _key = value;
+ }
+
+ string IWithAliasBuilder.Alias
+ {
+ get => _alias;
+ set => _alias = value;
+ }
+
+ string IWithNameBuilder.Name
+ {
+ get => _name;
+ set => _name = value;
+ }
+
+ int? IWithSortOrderBuilder.SortOrder
+ {
+ get => _sortOrder;
+ set => _sortOrder = value;
+ }
+ }
+}
diff --git a/src/Umbraco.Tests.Common/Builders/MemberBuilder.cs b/src/Umbraco.Tests.Common/Builders/MemberBuilder.cs
index 3925ac642b..16ec7ed005 100644
--- a/src/Umbraco.Tests.Common/Builders/MemberBuilder.cs
+++ b/src/Umbraco.Tests.Common/Builders/MemberBuilder.cs
@@ -15,7 +15,8 @@ namespace Umbraco.Tests.Common.Builders
IWithTrashedBuilder,
IWithLevelBuilder,
IWithPathBuilder,
- IWithSortOrderBuilder
+ IWithSortOrderBuilder,
+ IAccountBuilder
{
private MemberTypeBuilder _memberTypeBuilder;
private GenericCollectionBuilder _memberGroupsBuilder;
@@ -28,12 +29,12 @@ namespace Umbraco.Tests.Common.Builders
private DateTime? _updateDate;
private string _name;
private int? _creatorId;
+ private int? _level;
+ private string _path;
private string _username;
private string _rawPasswordValue;
private string _email;
private int? _failedPasswordAttempts;
- private int? _level;
- private string _path;
private bool? _isApproved;
private bool? _isLockedOut;
private DateTime? _lastLockoutDate;
@@ -43,60 +44,6 @@ namespace Umbraco.Tests.Common.Builders
private bool? _trashed;
private int? _propertyIdsIncrementingFrom;
- public MemberBuilder WithUserName(string username)
- {
- _username = username;
- return this;
- }
-
- public MemberBuilder WithEmail(string email)
- {
- _email = email;
- return this;
- }
-
- public MemberBuilder WithRawPasswordValue(string rawPasswordValue)
- {
- _rawPasswordValue = rawPasswordValue;
- return this;
- }
-
- public MemberBuilder WithFailedPasswordAttempts(int failedPasswordAttempts)
- {
- _failedPasswordAttempts = failedPasswordAttempts;
- return this;
- }
-
- public MemberBuilder WithIsApproved(bool isApproved)
- {
- _isApproved = isApproved;
- return this;
- }
-
- public MemberBuilder WithIsLockedOut(bool isLockedOut)
- {
- _isLockedOut = isLockedOut;
- return this;
- }
-
- public MemberBuilder WithLastLockoutDate(DateTime lastLockoutDate)
- {
- _lastLockoutDate = lastLockoutDate;
- return this;
- }
-
- public MemberBuilder WithLastLoginDate(DateTime lastLoginDate)
- {
- _lastLoginDate = lastLoginDate;
- return this;
- }
-
- public MemberBuilder WithLastPasswordChangeDate(DateTime lastPasswordChangeDate)
- {
- _lastPasswordChangeDate = lastPasswordChangeDate;
- return this;
- }
-
public MemberBuilder WithPropertyIdsIncrementingFrom(int propertyIdsIncrementingFrom)
{
_propertyIdsIncrementingFrom = propertyIdsIncrementingFrom;
@@ -139,19 +86,19 @@ namespace Umbraco.Tests.Common.Builders
var updateDate = _updateDate ?? DateTime.Now;
var name = _name ?? Guid.NewGuid().ToString();
var creatorId = _creatorId ?? 1;
+ var level = _level ?? 1;
+ var path = _path ?? "-1";
+ var sortOrder = _sortOrder ?? 0;
+ var trashed = _trashed ?? false;
var username = _username ?? string.Empty;
var email = _email ?? string.Empty;
var rawPasswordValue = _rawPasswordValue ?? string.Empty;
var failedPasswordAttempts = _failedPasswordAttempts ?? 0;
- var level = _level ?? 1;
- var path = _path ?? "-1";
var isApproved = _isApproved ?? false;
var isLockedOut = _isLockedOut ?? false;
var lastLockoutDate = _lastLockoutDate ?? DateTime.Now;
var lastLoginDate = _lastLoginDate ?? DateTime.Now;
var lastPasswordChangeDate = _lastPasswordChangeDate ?? DateTime.Now;
- var sortOrder = _sortOrder ?? 0;
- var trashed = _trashed ?? false;
if (_memberTypeBuilder == null)
{
@@ -276,5 +223,59 @@ namespace Umbraco.Tests.Common.Builders
get => _sortOrder;
set => _sortOrder = value;
}
+
+ string IWithLoginBuilder.Username
+ {
+ get => _username;
+ set => _username = value;
+ }
+
+ string IWithLoginBuilder.RawPasswordValue
+ {
+ get => _rawPasswordValue;
+ set => _rawPasswordValue = value;
+ }
+
+ string IWithEmailBuilder.Email
+ {
+ get => _email;
+ set => _email = value;
+ }
+
+ int? IWithFailedPasswordAttemptsBuilder.FailedPasswordAttempts
+ {
+ get => _failedPasswordAttempts;
+ set => _failedPasswordAttempts = value;
+ }
+
+ bool? IWithIsApprovedBuilder.IsApproved
+ {
+ get => _isApproved;
+ set => _isApproved = value;
+ }
+
+ bool? IWithIsLockedOutBuilder.IsLockedOut
+ {
+ get => _isLockedOut;
+ set => _isLockedOut = value;
+ }
+
+ DateTime? IWithIsLockedOutBuilder.LastLockoutDate
+ {
+ get => _lastLockoutDate;
+ set => _lastLockoutDate = value;
+ }
+
+ DateTime? IWithLastLoginDateBuilder.LastLoginDate
+ {
+ get => _lastLoginDate;
+ set => _lastLoginDate = value;
+ }
+
+ DateTime? IWithLastPasswordChangeDateBuilder.LastPasswordChangeDate
+ {
+ get => _lastPasswordChangeDate;
+ set => _lastPasswordChangeDate = value;
+ }
}
}
diff --git a/src/Umbraco.Tests.Common/Builders/PropertyTypeBuilder.cs b/src/Umbraco.Tests.Common/Builders/PropertyTypeBuilder.cs
index 9dc61014b5..9a16eb50e0 100644
--- a/src/Umbraco.Tests.Common/Builders/PropertyTypeBuilder.cs
+++ b/src/Umbraco.Tests.Common/Builders/PropertyTypeBuilder.cs
@@ -126,7 +126,7 @@ namespace Umbraco.Tests.Common.Builders
ValidationRegExpMessage = validationRegExpMessage,
};
}
-
+
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..243f5e3c96 100644
--- a/src/Umbraco.Tests.Common/Builders/RelationTypeBuilder.cs
+++ b/src/Umbraco.Tests.Common/Builders/RelationTypeBuilder.cs
@@ -33,6 +33,47 @@ 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;
+
+ return new RelationType(name, alias, isBidirectional, parentObjectType, childObjectType)
+ {
+ Id = id,
+ Key = key,
+ CreateDate = createDate,
+ UpdateDate = updateDate,
+ DeleteDate = deleteDate
+ };
+ }
+
string IWithAliasBuilder.Alias
{
get => _alias;
@@ -74,46 +115,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..344d7bcf87 100644
--- a/src/Umbraco.Tests.Common/Builders/SmtpSettingsBuilder.cs
+++ b/src/Umbraco.Tests.Common/Builders/SmtpSettingsBuilder.cs
@@ -9,65 +9,64 @@ 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()
- {
+ 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; }
- }
- }
+ 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/TemplateBuilder.cs b/src/Umbraco.Tests.Common/Builders/TemplateBuilder.cs
index 7f7fa0f098..3948d285d3 100644
--- a/src/Umbraco.Tests.Common/Builders/TemplateBuilder.cs
+++ b/src/Umbraco.Tests.Common/Builders/TemplateBuilder.cs
@@ -57,6 +57,7 @@ namespace Umbraco.Tests.Common.Builders
var masterTemplateId = _masterTemplateId ?? null;
var shortStringHelper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig());
+
return new Template(shortStringHelper, name, alias)
{
Id = id,
diff --git a/src/Umbraco.Tests.Common/Builders/UserBuilder.cs b/src/Umbraco.Tests.Common/Builders/UserBuilder.cs
index cb24e0e8dc..9dd9ff047f 100644
--- a/src/Umbraco.Tests.Common/Builders/UserBuilder.cs
+++ b/src/Umbraco.Tests.Common/Builders/UserBuilder.cs
@@ -1,41 +1,69 @@
-using Umbraco.Configuration.Models;
+using System;
using Umbraco.Core.Models.Membership;
using Umbraco.Tests.Common.Builders.Interfaces;
namespace Umbraco.Tests.Common.Builders
{
-
public class UserBuilder : UserBuilder