Check for null in DefaultShortStringHelperConfig.WithDefault

This commit is contained in:
Mole
2021-12-21 15:15:53 +01:00
parent 040116c004
commit c6d28f01a8

View File

@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using Umbraco.Cms.Core.Configuration.Models;
using Umbraco.Cms.Core.Configuration.UmbracoSettings;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Strings
@@ -60,7 +61,18 @@ namespace Umbraco.Cms.Core.Strings
/// <returns>The short string helper.</returns>
public DefaultShortStringHelperConfig WithDefault(RequestHandlerSettings requestHandlerSettings)
{
UrlReplaceCharacters = requestHandlerSettings.CharCollection
// CharCollection could potentially be null if not invoked first by the framework, for instance in tests, so ensure that it's initialized.
IEnumerable<IChar> charCollection = requestHandlerSettings.CharCollection;
if (charCollection is null)
{
charCollection = requestHandlerSettings.CharCollection;
if (charCollection is null)
{
throw new ArgumentNullException(nameof(requestHandlerSettings.CharCollection));
}
}
UrlReplaceCharacters = charCollection
.Where(x => string.IsNullOrEmpty(x.Char) == false)
.ToDictionary(x => x.Char, x => x.Replacement);