diff --git a/src/Umbraco.Core/Configuration/Models/GlobalSettings.cs b/src/Umbraco.Core/Configuration/Models/GlobalSettings.cs
index 7dcc71580d..419570ab0d 100644
--- a/src/Umbraco.Core/Configuration/Models/GlobalSettings.cs
+++ b/src/Umbraco.Core/Configuration/Models/GlobalSettings.cs
@@ -180,12 +180,12 @@ namespace Umbraco.Cms.Core.Configuration.Models
public bool SanitizeTinyMce { get; set; } = StaticSanitizeTinyMce;
///
- /// Gets a value representing the time in milliseconds to lock the database for a write operation.
+ /// An int value representing the time in milliseconds to lock the database for a write operation
///
///
/// The default value is 5000 milliseconds.
///
[DefaultValue(StaticSqlWriteLockTimeOut)]
- public TimeSpan SqlWriteLockTimeOut { get; } = TimeSpan.Parse(StaticSqlWriteLockTimeOut);
+ public TimeSpan SqlWriteLockTimeOut { get; set; } = TimeSpan.Parse(StaticSqlWriteLockTimeOut);
}
}
diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs
index 9228182a8a..a08554d669 100644
--- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs
+++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs
@@ -1,6 +1,7 @@
// Copyright (c) Umbraco.
// See LICENSE for more details.
+using System;
using Microsoft.Extensions.Options;
using NUnit.Framework;
using Umbraco.Cms.Core.Configuration.Models;
@@ -15,7 +16,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validati
public void Returns_Success_ForValid_Configuration()
{
var validator = new GlobalSettingsValidator();
- GlobalSettings options = BuildGlobalSettings();
+ var options = new GlobalSettings();
ValidateOptionsResult result = validator.Validate("settings", options);
Assert.True(result.Succeeded);
}
@@ -24,18 +25,55 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validati
public void Returns_Fail_For_Configuration_With_Invalid_SmtpFrom_Field()
{
var validator = new GlobalSettingsValidator();
- GlobalSettings options = BuildGlobalSettings(smtpEmail: "invalid");
+ var options = new GlobalSettings
+ {
+ Smtp = new SmtpSettings
+ {
+ From = "invalid",
+ }
+ };
+
ValidateOptionsResult result = validator.Validate("settings", options);
Assert.False(result.Succeeded);
}
- private static GlobalSettings BuildGlobalSettings(string smtpEmail = "test@test.com") =>
- new GlobalSettings
+ [Test]
+ public void Returns_Fail_For_Configuration_With_Insufficient_SqlWriteLockTimeOut()
+ {
+ var validator = new GlobalSettingsValidator();
+ var options = new GlobalSettings
{
- Smtp = new SmtpSettings
- {
- From = smtpEmail,
- }
+ SqlWriteLockTimeOut = TimeSpan.Parse("00:00:00.099")
};
+
+ ValidateOptionsResult result = validator.Validate("settings", options);
+ Assert.False(result.Succeeded);
+ }
+
+ [Test]
+ public void Returns_Fail_For_Configuration_With_Excessive_SqlWriteLockTimeOut()
+ {
+ var validator = new GlobalSettingsValidator();
+ var options = new GlobalSettings
+ {
+ SqlWriteLockTimeOut = TimeSpan.Parse("00:00:21")
+ };
+
+ ValidateOptionsResult result = validator.Validate("settings", options);
+ Assert.False(result.Succeeded);
+ }
+
+ [Test]
+ public void Returns_Success_For_Configuration_With_Valid_SqlWriteLockTimeOut()
+ {
+ var validator = new GlobalSettingsValidator();
+ var options = new GlobalSettings
+ {
+ SqlWriteLockTimeOut = TimeSpan.Parse("00:00:20")
+ };
+
+ ValidateOptionsResult result = validator.Validate("settings", options);
+ Assert.True(result.Succeeded);
+ }
}
}