Added unit tests for configuration validators.
This commit is contained in:
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
|
||||
namespace Umbraco.Core.Configuration.Models.Validation
|
||||
{
|
||||
public abstract class ConfigurationValidationBase
|
||||
public abstract class ConfigurationValidatorBase
|
||||
{
|
||||
public bool ValidateStringIsOneOfValidValues(string configPath, string value, IEnumerable<string> validValues, out string message)
|
||||
{
|
||||
@@ -1,12 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Umbraco.Core.Macros;
|
||||
|
||||
namespace Umbraco.Core.Configuration.Models.Validation
|
||||
{
|
||||
public class ContentSettingsValidation : ConfigurationValidationBase, IValidateOptions<ContentSettings>
|
||||
public class ContentSettingsValidator : ConfigurationValidatorBase, IValidateOptions<ContentSettings>
|
||||
{
|
||||
public ValidateOptionsResult Validate(string name, ContentSettings options)
|
||||
{
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
namespace Umbraco.Core.Configuration.Models.Validation
|
||||
{
|
||||
public class GlobalSettingsValidation : ConfigurationValidationBase, IValidateOptions<GlobalSettings>
|
||||
public class GlobalSettingsValidator
|
||||
: ConfigurationValidatorBase, IValidateOptions<GlobalSettings>
|
||||
{
|
||||
public ValidateOptionsResult Validate(string name, GlobalSettings options)
|
||||
{
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace Umbraco.Core.Configuration.Models.Validation
|
||||
{
|
||||
public class HostingSettingsValidation : ConfigurationValidationBase, IValidateOptions<HostingSettings>
|
||||
public class HostingSettingsValidator : ConfigurationValidatorBase, IValidateOptions<HostingSettings>
|
||||
{
|
||||
public ValidateOptionsResult Validate(string name, HostingSettings options)
|
||||
{
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace Umbraco.Core.Configuration.Models.Validation
|
||||
{
|
||||
public class ModelsBuilderSettingsValidation : ConfigurationValidationBase, IValidateOptions<ModelsBuilderSettings>
|
||||
public class ModelsBuilderSettingsValidator : ConfigurationValidatorBase, IValidateOptions<ModelsBuilderSettings>
|
||||
{
|
||||
public ValidateOptionsResult Validate(string name, ModelsBuilderSettings options)
|
||||
{
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace Umbraco.Core.Configuration.Models.Validation
|
||||
{
|
||||
public class RequestHandlerSettingsValidation : ConfigurationValidationBase, IValidateOptions<RequestHandlerSettings>
|
||||
public class RequestHandlerSettingsValidator : ConfigurationValidatorBase, IValidateOptions<RequestHandlerSettings>
|
||||
{
|
||||
public ValidateOptionsResult Validate(string name, RequestHandlerSettings options)
|
||||
{
|
||||
65
src/Umbraco.Tests.Common/Builders/ContentErrorPageBuilder.cs
Normal file
65
src/Umbraco.Tests.Common/Builders/ContentErrorPageBuilder.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using Umbraco.Core.Configuration.Models;
|
||||
|
||||
namespace Umbraco.Tests.Common.Builders
|
||||
{
|
||||
public class ContentErrorPageBuilder : ContentErrorPageBuilder<object>
|
||||
{
|
||||
public ContentErrorPageBuilder() : base(null)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public class ContentErrorPageBuilder<TParent>
|
||||
: ChildBuilderBase<TParent, ContentErrorPage>
|
||||
{
|
||||
private int? _contentId;
|
||||
private Guid? _contentKey;
|
||||
private string _contentXPath;
|
||||
private string _culture;
|
||||
|
||||
public ContentErrorPageBuilder(TParent parentBuilder) : base(parentBuilder)
|
||||
{
|
||||
}
|
||||
|
||||
public ContentErrorPageBuilder<TParent> WithContentId(int contentId)
|
||||
{
|
||||
_contentId = contentId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ContentErrorPageBuilder<TParent> WithContentKey(Guid contentKey)
|
||||
{
|
||||
_contentKey = contentKey;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ContentErrorPageBuilder<TParent> WithContentXPath(string contentXPath)
|
||||
{
|
||||
_contentXPath = contentXPath;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ContentErrorPageBuilder<TParent> WithCulture(string culture)
|
||||
{
|
||||
_culture = culture;
|
||||
return this;
|
||||
}
|
||||
|
||||
public override ContentErrorPage Build()
|
||||
{
|
||||
var contentId = _contentId ?? 0;
|
||||
var contentKey = _contentKey ?? Guid.Empty;
|
||||
var contentXPath = _contentXPath ?? string.Empty;
|
||||
var culture = _culture ?? "en-US";
|
||||
|
||||
return new ContentErrorPage
|
||||
{
|
||||
ContentId = contentId,
|
||||
ContentKey = contentKey,
|
||||
ContentXPath = contentXPath,
|
||||
Culture = culture,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Umbraco.Core.Configuration.Models;
|
||||
|
||||
namespace Umbraco.Tests.Common.Builders
|
||||
{
|
||||
public class ContentImagingSettingsBuilder : ContentImagingSettingsBuilder<object>
|
||||
{
|
||||
public ContentImagingSettingsBuilder() : base(null)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public class ContentImagingSettingsBuilder<TParent>
|
||||
: ChildBuilderBase<TParent, ContentImagingSettings>
|
||||
{
|
||||
|
||||
private readonly List<ImagingAutoFillUploadFieldBuilder<ContentImagingSettingsBuilder<TParent>>> _imagingAutoFillUploadFieldBuilder = new List<ImagingAutoFillUploadFieldBuilder<ContentImagingSettingsBuilder<TParent>>>();
|
||||
|
||||
public ContentImagingSettingsBuilder(TParent parentBuilder) : base(parentBuilder)
|
||||
{
|
||||
}
|
||||
|
||||
public ImagingAutoFillUploadFieldBuilder<ContentImagingSettingsBuilder<TParent>> AddAutoFillImageProperty()
|
||||
{
|
||||
var builder = new ImagingAutoFillUploadFieldBuilder<ContentImagingSettingsBuilder<TParent>>(this);
|
||||
_imagingAutoFillUploadFieldBuilder.Add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public override ContentImagingSettings Build()
|
||||
{
|
||||
var imagingAutoFillUploadFields = _imagingAutoFillUploadFieldBuilder.Select(x => x.Build()).ToArray();
|
||||
|
||||
return new ContentImagingSettings
|
||||
{
|
||||
AutoFillImageProperties = imagingAutoFillUploadFields,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,56 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Umbraco.Core.Configuration.Models;
|
||||
using Umbraco.Core.Macros;
|
||||
|
||||
namespace Umbraco.Tests.Common.Builders
|
||||
{
|
||||
public class ContentSettingsBuilder : BuilderBase<ContentSettings>
|
||||
public class ContentSettingsBuilder : ContentSettingsBuilder<object>
|
||||
{
|
||||
public ContentSettingsBuilder() : base(null)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public class ContentSettingsBuilder<TParent> : ChildBuilderBase<TParent, ContentSettings>
|
||||
{
|
||||
private string _macroErrors;
|
||||
private readonly ContentImagingSettingsBuilder<ContentSettingsBuilder<TParent>> _contentImagingSettingsBuilder;
|
||||
private readonly List<ContentErrorPageBuilder<ContentSettingsBuilder<TParent>>> _contentErrorPageBuilders = new List<ContentErrorPageBuilder<ContentSettingsBuilder<TParent>>>();
|
||||
|
||||
public ContentSettingsBuilder(TParent parentBuilder) : base(parentBuilder)
|
||||
{
|
||||
_contentImagingSettingsBuilder = new ContentImagingSettingsBuilder<ContentSettingsBuilder<TParent>>(this);
|
||||
_contentErrorPageBuilders = new List<ContentErrorPageBuilder<ContentSettingsBuilder<TParent>>>();
|
||||
}
|
||||
|
||||
public ContentImagingSettingsBuilder<ContentSettingsBuilder<TParent>> AddImaging() => _contentImagingSettingsBuilder;
|
||||
|
||||
public ContentErrorPageBuilder<ContentSettingsBuilder<TParent>> AddErrorPage()
|
||||
{
|
||||
var builder = new ContentErrorPageBuilder<ContentSettingsBuilder<TParent>>(this);
|
||||
_contentErrorPageBuilders.Add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public ContentSettingsBuilder<TParent> WithMacroErrors(string macroErrors)
|
||||
{
|
||||
_macroErrors = macroErrors;
|
||||
return this;
|
||||
}
|
||||
|
||||
public override ContentSettings Build()
|
||||
{
|
||||
return new ContentSettings();
|
||||
var macroErrors = _macroErrors ?? MacroErrorBehaviour.Inline.ToString();
|
||||
var contentImagingSettings = _contentImagingSettingsBuilder.Build();
|
||||
var contentErrorPages = _contentErrorPageBuilders.Select(x => x.Build()).ToArray();
|
||||
|
||||
return new ContentSettings
|
||||
{
|
||||
MacroErrors = _macroErrors,
|
||||
Imaging = contentImagingSettings,
|
||||
Error404Collection = contentErrorPages,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,9 +199,5 @@ namespace Umbraco.Tests.Common.Builders
|
||||
NoNodesViewPath = noNodesViewPath,
|
||||
};
|
||||
}
|
||||
private string _iconsPath;
|
||||
|
||||
public string IconsPath{ get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,12 @@ namespace Umbraco.Tests.Common.Builders
|
||||
return this;
|
||||
}
|
||||
|
||||
public HostingSettingsBuilder WithLocalTempStorageLocation(string localTempStorageLocation)
|
||||
{
|
||||
_localTempStorageLocation = localTempStorageLocation;
|
||||
return this;
|
||||
}
|
||||
|
||||
public override HostingSettings Build()
|
||||
{
|
||||
var debug = _debug ?? false;
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
using Umbraco.Core.Configuration.Models;
|
||||
|
||||
namespace Umbraco.Tests.Common.Builders
|
||||
{
|
||||
public class ImagingAutoFillUploadFieldBuilder : ImagingAutoFillUploadFieldBuilder<object>
|
||||
{
|
||||
public ImagingAutoFillUploadFieldBuilder() : base(null)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public class ImagingAutoFillUploadFieldBuilder<TParent>
|
||||
: ChildBuilderBase<TParent, ImagingAutoFillUploadField>
|
||||
{
|
||||
private string _alias;
|
||||
private string _widthFieldAlias;
|
||||
private string _heightFieldAlias;
|
||||
private string _lengthFieldAlias;
|
||||
private string _extensionFieldAlias;
|
||||
|
||||
public ImagingAutoFillUploadFieldBuilder(TParent parentBuilder) : base(parentBuilder)
|
||||
{
|
||||
}
|
||||
|
||||
public ImagingAutoFillUploadFieldBuilder<TParent> WithAlias(string alias)
|
||||
{
|
||||
_alias = alias;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ImagingAutoFillUploadFieldBuilder<TParent> WithWidthFieldAlias(string widthFieldAlias)
|
||||
{
|
||||
_widthFieldAlias = widthFieldAlias;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ImagingAutoFillUploadFieldBuilder<TParent> WithHeightFieldAlias(string heightFieldAlias)
|
||||
{
|
||||
_heightFieldAlias = heightFieldAlias;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ImagingAutoFillUploadFieldBuilder<TParent> WithLengthFieldAlias(string lengthFieldAlias)
|
||||
{
|
||||
_lengthFieldAlias = lengthFieldAlias;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ImagingAutoFillUploadFieldBuilder<TParent> WithExtensionFieldAlias(string extensionFieldAlias)
|
||||
{
|
||||
_extensionFieldAlias = extensionFieldAlias;
|
||||
return this;
|
||||
}
|
||||
|
||||
public override ImagingAutoFillUploadField Build()
|
||||
{
|
||||
var alias = _alias ?? "testAlias";
|
||||
var widthFieldAlias = _widthFieldAlias ?? "testWidthFieldAlias";
|
||||
var heightFieldAlias = _heightFieldAlias ?? "testHeightFieldAlias";
|
||||
var lengthFieldAlias = _lengthFieldAlias ?? "testLengthFieldAlias";
|
||||
var extensionFieldAlias = _extensionFieldAlias ?? "testExtensionFieldAlias";
|
||||
|
||||
return new ImagingAutoFillUploadField
|
||||
{
|
||||
Alias = alias,
|
||||
WidthFieldAlias = widthFieldAlias,
|
||||
HeightFieldAlias = heightFieldAlias,
|
||||
LengthFieldAlias = lengthFieldAlias,
|
||||
ExtensionFieldAlias = extensionFieldAlias,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Configuration.Models;
|
||||
|
||||
namespace Umbraco.Tests.Common.Builders
|
||||
{
|
||||
public class ModelsBuilderSettingsBuilder : BuilderBase<ModelsBuilderSettings>
|
||||
{
|
||||
private string _modelsMode;
|
||||
|
||||
public ModelsBuilderSettingsBuilder WithModelsMode(string modelsMode)
|
||||
{
|
||||
_modelsMode = modelsMode;
|
||||
return this;
|
||||
}
|
||||
|
||||
public override ModelsBuilderSettings Build()
|
||||
{
|
||||
var modelsMode = _modelsMode ?? ModelsMode.Nothing.ToString();
|
||||
|
||||
return new ModelsBuilderSettings
|
||||
{
|
||||
ModelsMode = modelsMode,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -91,8 +91,6 @@ namespace Umbraco.Tests.Common.Builders
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public UserBuilder<TParent> WithSessionTimeout(int sessionTimeout)
|
||||
{
|
||||
_sessionTimeout = sessionTimeout;
|
||||
@@ -122,6 +120,13 @@ namespace Umbraco.Tests.Common.Builders
|
||||
return this;
|
||||
}
|
||||
|
||||
public UserGroupBuilder<UserBuilder<TParent>> AddUserGroup()
|
||||
{
|
||||
var builder = new UserGroupBuilder<UserBuilder<TParent>>(this);
|
||||
_userGroupBuilders.Add(builder);
|
||||
return builder;
|
||||
}
|
||||
|
||||
public override User Build()
|
||||
{
|
||||
var id = _id ?? 0;
|
||||
@@ -175,20 +180,9 @@ namespace Umbraco.Tests.Common.Builders
|
||||
result.AddGroup(readOnlyUserGroup.ToReadOnlyGroup());
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public UserGroupBuilder<UserBuilder<TParent>> AddUserGroup()
|
||||
{
|
||||
var builder = new UserGroupBuilder<UserBuilder<TParent>>(this);
|
||||
|
||||
_userGroupBuilders.Add(builder);
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
|
||||
int? IWithIdBuilder.Id
|
||||
{
|
||||
get => _id;
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Configuration.Models;
|
||||
using Umbraco.Core.Configuration.Models.Validation;
|
||||
using Umbraco.Core.Macros;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation
|
||||
{
|
||||
[TestFixture]
|
||||
public class ContentSettingsValidationTests
|
||||
{
|
||||
[Test]
|
||||
public void ReturnsSuccessResponseForValidConfiguration()
|
||||
{
|
||||
var validator = new ContentSettingsValidator();
|
||||
var options = BuildContentSettings();
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.True(result.Succeeded);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsFailResponseForConfigurationWithInvalidMacroErrorsField()
|
||||
{
|
||||
var validator = new ContentSettingsValidator();
|
||||
var options = BuildContentSettings(macroErrors: "invalid");
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.False(result.Succeeded);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsFailResponseForConfigurationWithInvalidError404CollectionDueToDuplicateId()
|
||||
{
|
||||
var validator = new ContentSettingsValidator();
|
||||
var options = BuildContentSettings(contentXPath: "/aaa/bbb");
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.False(result.Succeeded);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsFailResponseForConfigurationWithInvalidError404CollectionDueToEmptyCulture()
|
||||
{
|
||||
var validator = new ContentSettingsValidator();
|
||||
var options = BuildContentSettings(culture: string.Empty);
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.False(result.Succeeded);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsFailResponseForConfigurationWithInvalidAutoFillImagePropertiesCollection()
|
||||
{
|
||||
var validator = new ContentSettingsValidator();
|
||||
var options = BuildContentSettings(culture: string.Empty);
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.False(result.Succeeded);
|
||||
}
|
||||
|
||||
private static ContentSettings BuildContentSettings(string macroErrors = "inline", string culture = "en-US", string contentXPath = "", string autoFillImagePropertyAlias = "testAlias")
|
||||
{
|
||||
return new ContentSettingsBuilder()
|
||||
.WithMacroErrors(macroErrors)
|
||||
.AddErrorPage()
|
||||
.WithCulture(culture)
|
||||
.WithContentId(1)
|
||||
.WithContentXPath(contentXPath)
|
||||
.Done()
|
||||
.AddImaging()
|
||||
.AddAutoFillImageProperty()
|
||||
.WithAlias(autoFillImagePropertyAlias)
|
||||
.Done()
|
||||
.Done()
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Configuration.Models;
|
||||
using Umbraco.Core.Configuration.Models.Validation;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation
|
||||
{
|
||||
[TestFixture]
|
||||
public class GlobalSettingsValidationTests
|
||||
{
|
||||
[Test]
|
||||
public void ReturnsSuccessResponseForValidConfiguration()
|
||||
{
|
||||
var validator = new GlobalSettingsValidator();
|
||||
var options = BuildGlobalSettings("test@test.com");
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.True(result.Succeeded);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsFailResponseForConfigurationWithInvalidSmtpFromField()
|
||||
{
|
||||
var validator = new GlobalSettingsValidator();
|
||||
var options = BuildGlobalSettings("invalid");
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.False(result.Succeeded);
|
||||
}
|
||||
|
||||
private static GlobalSettings BuildGlobalSettings(string smtpEmail)
|
||||
{
|
||||
return new GlobalSettingsBuilder()
|
||||
.AddSmtpSettings()
|
||||
.WithFrom(smtpEmail)
|
||||
.Done()
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Configuration.Models.Validation;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation
|
||||
{
|
||||
[TestFixture]
|
||||
public class HostingSettingsValidatorTests
|
||||
{
|
||||
[Test]
|
||||
public void ReturnsSuccessResponseForValidConfiguration()
|
||||
{
|
||||
var validator = new HostingSettingsValidator();
|
||||
var options = new HostingSettingsBuilder().Build();
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.True(result.Succeeded);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsFailResponseForConfigurationWithInvalidLocalTempStorageLocationField()
|
||||
{
|
||||
var validator = new HostingSettingsValidator();
|
||||
var options = new HostingSettingsBuilder().WithLocalTempStorageLocation("invalid").Build();
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.False(result.Succeeded);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Configuration.Models.Validation;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation
|
||||
{
|
||||
[TestFixture]
|
||||
public class ModelsBuilderSettingsValidatorTests
|
||||
{
|
||||
[Test]
|
||||
public void ReturnsSuccessResponseForValidConfiguration()
|
||||
{
|
||||
var validator = new ModelsBuilderSettingsValidator();
|
||||
var options = new ModelsBuilderSettingsBuilder().Build();
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.True(result.Succeeded);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsFailResponseForConfigurationWithInvalidModelsModeField()
|
||||
{
|
||||
var validator = new ModelsBuilderSettingsValidator();
|
||||
var options = new ModelsBuilderSettingsBuilder().WithModelsMode("invalid").Build();
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.False(result.Succeeded);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Configuration.Models.Validation;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation
|
||||
{
|
||||
[TestFixture]
|
||||
public class RequestHandlerSettingsValidatorTests
|
||||
{
|
||||
[Test]
|
||||
public void ReturnsSuccessResponseForValidConfiguration()
|
||||
{
|
||||
var validator = new RequestHandlerSettingsValidator();
|
||||
var options = new RequestHandlerSettingsBuilder().Build();
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.True(result.Succeeded);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsFailResponseForConfigurationWithInvalidConvertUrlsToAsciiField()
|
||||
{
|
||||
var validator = new RequestHandlerSettingsValidator();
|
||||
var options = new RequestHandlerSettingsBuilder().WithConvertUrlsToAscii("invalid").Build();
|
||||
var result = validator.Validate("settings", options);
|
||||
Assert.False(result.Succeeded);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Tests.Common.Builders
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(debugMode, hostingSettings.Debug);
|
||||
Assert.AreEqual(localTempStorageLocation, hostingSettings.LocalTempStorageLocation);
|
||||
Assert.AreEqual(localTempStorageLocation, hostingSettings.LocalTempStorageLocationValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,11 +127,11 @@ namespace Umbraco.Extensions
|
||||
{
|
||||
if (configuration == null) throw new ArgumentNullException(nameof(configuration));
|
||||
|
||||
services.AddSingleton<IValidateOptions<ContentSettings>, ContentSettingsValidation>();
|
||||
services.AddSingleton<IValidateOptions<GlobalSettings>, GlobalSettingsValidation>();
|
||||
services.AddSingleton<IValidateOptions<HostingSettings>, HostingSettingsValidation>();
|
||||
services.AddSingleton<IValidateOptions<ModelsBuilderSettings>, ModelsBuilderSettingsValidation>();
|
||||
services.AddSingleton<IValidateOptions<RequestHandlerSettings>, RequestHandlerSettingsValidation>();
|
||||
services.AddSingleton<IValidateOptions<ContentSettings>, ContentSettingsValidator>();
|
||||
services.AddSingleton<IValidateOptions<GlobalSettings>, GlobalSettingsValidator>();
|
||||
services.AddSingleton<IValidateOptions<HostingSettings>, HostingSettingsValidator>();
|
||||
services.AddSingleton<IValidateOptions<ModelsBuilderSettings>, ModelsBuilderSettingsValidator>();
|
||||
services.AddSingleton<IValidateOptions<RequestHandlerSettings>, RequestHandlerSettingsValidator>();
|
||||
|
||||
services.Configure<ActiveDirectorySettings>(configuration.GetSection(Constants.Configuration.ConfigPrefix + "ActiveDirectory"));
|
||||
services.Configure<ConnectionStrings>(configuration.GetSection("ConnectionStrings"), o => o.BindNonPublicProperties = true);
|
||||
|
||||
Reference in New Issue
Block a user