Skip to content

Commit 25b1c3c

Browse files
committed
Add tests
Add new tests for the request handler settings, and fix other tests
1 parent 12e89a0 commit 25b1c3c

File tree

2 files changed

+94
-3
lines changed

2 files changed

+94
-3
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
using System.Linq;
2+
using NUnit.Framework;
3+
using Umbraco.Cms.Core.Configuration.Models;
4+
using Umbraco.Cms.Core.Configuration.UmbracoSettings;
5+
6+
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Configuration.Models
7+
{
8+
[TestFixture]
9+
public class RequestHandlerSettingsTests
10+
{
11+
[Test]
12+
public void Given_CharCollection_With_DefaultEnabled_MergesCollection()
13+
{
14+
var userCollection = new CharacterReplacement[]
15+
{
16+
new() { Char = "test", Replacement = "replace" },
17+
new() { Char = "test2", Replacement = "replace2" }
18+
};
19+
20+
21+
var settings = new RequestHandlerSettings { CharCollection = userCollection };
22+
var actual = settings.GetCharReplacements().ToList();
23+
24+
var expectedCollection = RequestHandlerSettings.DefaultCharCollection.ToList();
25+
expectedCollection.AddRange(userCollection);
26+
27+
Assert.AreEqual(expectedCollection.Count, actual.Count);
28+
Assert.That(actual, Is.EquivalentTo(expectedCollection));
29+
}
30+
31+
[Test]
32+
public void Given_CharCollection_With_DefaultDisabled_ReturnsUserCollection()
33+
{
34+
var userCollection = new CharacterReplacement[]
35+
{
36+
new() { Char = "test", Replacement = "replace" },
37+
new() { Char = "test2", Replacement = "replace2" }
38+
};
39+
40+
var settings = new RequestHandlerSettings { CharCollection = userCollection, EnableDefaultCharReplacements = false };
41+
var actual = settings.GetCharReplacements().ToList();
42+
43+
Assert.AreEqual(userCollection.Length, actual.Count);
44+
Assert.That(actual, Is.EquivalentTo(userCollection));
45+
}
46+
47+
[Test]
48+
public void Given_CharCollection_That_OverridesDefaultValues_ReturnsReplacements()
49+
{
50+
var userCollection = new CharacterReplacement[]
51+
{
52+
new() { Char = "%", Replacement = "percent" },
53+
new() { Char = ".", Replacement = "dot" }
54+
};
55+
56+
var settings = new RequestHandlerSettings { CharCollection = userCollection };
57+
var actual = settings.GetCharReplacements().ToList();
58+
59+
Assert.AreEqual(RequestHandlerSettings.DefaultCharCollection.Length, actual.Count);
60+
61+
Assert.That(actual, Has.Exactly(1).Matches<CharacterReplacement>(x => x.Char == "%" && x.Replacement == "percent"));
62+
Assert.That(actual, Has.Exactly(1).Matches<CharacterReplacement>(x => x.Char == "." && x.Replacement == "dot"));
63+
Assert.That(actual, Has.Exactly(0).Matches<CharacterReplacement>(x => x.Char == "%" && x.Replacement == string.Empty));
64+
Assert.That(actual, Has.Exactly(0).Matches<CharacterReplacement>(x => x.Char == "." && x.Replacement == string.Empty));
65+
}
66+
67+
[Test]
68+
public void Given_CharCollection_That_OverridesDefaultValues_And_ContainsNew_ReturnsMergedWithReplacements()
69+
{
70+
var userCollection = new CharacterReplacement[]
71+
{
72+
new() { Char = "%", Replacement = "percent" },
73+
new() { Char = ".", Replacement = "dot" },
74+
new() {Char = "new", Replacement = "new"}
75+
};
76+
77+
var settings = new RequestHandlerSettings { CharCollection = userCollection };
78+
var actual = settings.GetCharReplacements().ToList();
79+
80+
// Add 1 to the length, because we're expecting to only add one new one
81+
Assert.AreEqual(RequestHandlerSettings.DefaultCharCollection.Length + 1, actual.Count);
82+
83+
Assert.That(actual, Has.Exactly(1).Matches<CharacterReplacement>(x => x.Char == "%" && x.Replacement == "percent"));
84+
Assert.That(actual, Has.Exactly(1).Matches<CharacterReplacement>(x => x.Char == "." && x.Replacement == "dot"));
85+
Assert.That(actual, Has.Exactly(1).Matches<CharacterReplacement>(x => x.Char == "new" && x.Replacement == "new"));
86+
Assert.That(actual, Has.Exactly(0).Matches<CharacterReplacement>(x => x.Char == "%" && x.Replacement == string.Empty));
87+
Assert.That(actual, Has.Exactly(0).Matches<CharacterReplacement>(x => x.Char == "." && x.Replacement == string.Empty));
88+
}
89+
}
90+
}

src/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/DefaultShortStringHelperTestsWithoutSetup.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (c) Umbraco.
22
// See LICENSE for more details.
33

4+
using System;
45
using System.Diagnostics;
56
using System.Linq;
67
using System.Text;
@@ -19,7 +20,7 @@ public void U4_4056()
1920
{
2021
var requestHandlerSettings = new RequestHandlerSettings()
2122
{
22-
CharCollection = Enumerable.Empty<IChar>(),
23+
CharCollection = Array.Empty<CharacterReplacement>(),
2324
ConvertUrlsToAscii = "false"
2425
};
2526

@@ -45,7 +46,7 @@ public void U4_4056_TryAscii()
4546
{
4647
var requestHandlerSettings = new RequestHandlerSettings()
4748
{
48-
CharCollection = Enumerable.Empty<IChar>(),
49+
CharCollection = Array.Empty<CharacterReplacement>(),
4950
ConvertUrlsToAscii = "false"
5051
};
5152

@@ -339,7 +340,7 @@ public void CleanStringDefaultConfig()
339340
{
340341
var requestHandlerSettings = new RequestHandlerSettings()
341342
{
342-
CharCollection = Enumerable.Empty<IChar>(),
343+
CharCollection = Array.Empty<CharacterReplacement>(),
343344
ConvertUrlsToAscii = "false"
344345
};
345346

0 commit comments

Comments
 (0)