From e2d7bb660c28ee1c91af6d7377b5734ce7fbe46b Mon Sep 17 00:00:00 2001 From: Dirk Seefeld Date: Fri, 15 Aug 2025 09:23:39 +0200 Subject: [PATCH] Fix and enable some unit tests which are not running locally or on pipeline builds (#19910) * fix some test which are not running * resolve code review comments * Moved cleaned up tests to unit tests (as they are unit tests, not integration tests). Removed tests marked as no longer necessary. Update tests name to better reflect test case. * Made explict test faster so it could run on the pipeline. --------- Co-authored-by: Andy Butland --- .../Cache/RuntimeAppCacheTests.cs | 18 ++++---- .../SliderPropertyValueEditorTests.cs | 16 ++++++- .../Repositories/SimilarNodeNameTests.cs | 42 ++++--------------- 3 files changed, 32 insertions(+), 44 deletions(-) rename tests/{Umbraco.Tests.Integration => Umbraco.Tests.UnitTests}/Umbraco.Infrastructure/Persistence/Repositories/SimilarNodeNameTests.cs (71%) diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/RuntimeAppCacheTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/RuntimeAppCacheTests.cs index b018434b43..d54d92c257 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/RuntimeAppCacheTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/RuntimeAppCacheTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System.Threading; using NUnit.Framework; using Umbraco.Cms.Core.Cache; using Umbraco.Extensions; @@ -13,18 +12,21 @@ public abstract class RuntimeAppCacheTests : AppCacheTests internal abstract IAppPolicyCache AppPolicyCache { get; } [Test] - [Explicit("Testing for timeouts cannot work on VSTS.")] public void Can_Add_And_Expire_Struct_Strongly_Typed_With_Null() { var now = DateTime.Now; - AppPolicyCache.Insert("DateTimeTest", () => now, new TimeSpan(0, 0, 0, 0, 200)); - Assert.AreEqual(now, AppCache.GetCacheItem("DateTimeTest")); - Assert.AreEqual(now, AppCache.GetCacheItem("DateTimeTest")); + AppPolicyCache.Insert("DateTimeTest", () => now, new TimeSpan(0, 0, 0, 0, 20)); + var cachedDateTime = AppCache.GetCacheItem("DateTimeTest"); + var cachedDateTimeNullable = AppCache.GetCacheItem("DateTimeTest"); + Assert.AreEqual(now, cachedDateTime); + Assert.AreEqual(now, cachedDateTimeNullable); - Thread.Sleep(300); // sleep longer than the cache expiration + Thread.Sleep(30); // sleep longer than the cache expiration - Assert.AreEqual(default(DateTime), AppCache.GetCacheItem("DateTimeTest")); - Assert.AreEqual(null, AppCache.GetCacheItem("DateTimeTest")); + cachedDateTime = AppCache.GetCacheItem("DateTimeTest"); + cachedDateTimeNullable = AppCache.GetCacheItem("DateTimeTest"); + Assert.AreEqual(default(DateTime), cachedDateTime); + Assert.AreEqual(null, cachedDateTimeNullable); } [Test] diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/SliderPropertyValueEditorTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/SliderPropertyValueEditorTests.cs index 739c51a1ce..75faa9e4dc 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/SliderPropertyValueEditorTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/SliderPropertyValueEditorTests.cs @@ -28,8 +28,6 @@ public class SliderPropertyValueEditorTests true, new object(), new List { "some", "values" }, - Guid.NewGuid(), - new GuidUdi(Constants.UdiEntityType.Document, Guid.NewGuid()) }; [TestCaseSource(nameof(InvalidCaseData))] @@ -39,6 +37,20 @@ public class SliderPropertyValueEditorTests Assert.IsNull(fromEditor); } + [Test] + public void Can_Handle_Invalid_Values_From_Editor_Guid() + { + var fromEditor = FromEditor(Guid.NewGuid()); + Assert.IsNull(fromEditor); + } + + [Test] + public void Can_Handle_Invalid_Values_From_Editor_Udi() + { + var fromEditor = FromEditor(new GuidUdi(Constants.UdiEntityType.Document, Guid.NewGuid())); + Assert.IsNull(fromEditor); + } + [TestCase("1", 1)] [TestCase("0", 0)] [TestCase("-1", -1)] diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/SimilarNodeNameTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Repositories/SimilarNodeNameTests.cs similarity index 71% rename from tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/SimilarNodeNameTests.cs rename to tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Repositories/SimilarNodeNameTests.cs index 314c291dc4..0506cf0ce3 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/SimilarNodeNameTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Repositories/SimilarNodeNameTests.cs @@ -4,7 +4,7 @@ using NUnit.Framework; using Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement; -namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence.Repositories; +namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Persistence.Repositories; [TestFixture] internal sealed class SimilarNodeNameTests @@ -156,45 +156,19 @@ internal sealed class SimilarNodeNameTests Assert.AreEqual(expected, res); } - /* Original Tests - Can be deleted, as new tests cover all cases */ - - [TestCase(0, "Charlie", "Charlie")] - [TestCase(0, "Zulu", "Zulu (1)")] - [TestCase(0, "Golf", "Golf (1)")] - [TestCase(0, "Kilo", "Kilo (2)")] - [TestCase(0, "Alpha", "Alpha (3)")] - //// [TestCase(0, "Kilo (1)", "Kilo (1) (1)")] // though... we might consider "Kilo (2)" - [TestCase(0, "Kilo (1)", "Kilo (2)")] // names[] contains "Kilo" AND "Kilo (1)", which implies that result should be "Kilo (2)" - [TestCase(6, "Kilo (1)", "Kilo (1)")] // because of the id - [TestCase(0, "alpha", "alpha (3)")] - [TestCase(0, "", " (1)")] - [TestCase(0, null, " (1)")] - public void Test(int nodeId, string nodeName, string expected) - { - SimilarNodeName[] names = - { - new SimilarNodeName {Id = 1, Name = "Alpha (2)"}, new SimilarNodeName {Id = 2, Name = "Alpha"}, - new SimilarNodeName {Id = 3, Name = "Golf"}, new SimilarNodeName {Id = 4, Name = "Zulu"}, - new SimilarNodeName {Id = 5, Name = "Mike"}, new SimilarNodeName {Id = 6, Name = "Kilo (1)"}, - new SimilarNodeName {Id = 7, Name = "Yankee"}, new SimilarNodeName {Id = 8, Name = "Kilo"}, - new SimilarNodeName {Id = 9, Name = "Golf (2)"}, new SimilarNodeName {Id = 10, Name = "Alpha (1)"} - }; - - Assert.AreEqual(expected, SimilarNodeName.GetUniqueName(names, nodeId, nodeName)); - } - [Test] - [Explicit("This test fails! We need to fix up the logic")] - public void TestMany() + public void Handles_Many_Similar_Names() { SimilarNodeName[] names = { - new SimilarNodeName {Id = 1, Name = "Alpha (2)"}, new SimilarNodeName {Id = 2, Name = "Test"}, - new SimilarNodeName {Id = 3, Name = "Test (1)"}, new SimilarNodeName {Id = 4, Name = "Test (2)"}, + new SimilarNodeName {Id = 1, Name = "Alpha (2)"}, + new SimilarNodeName {Id = 2, Name = "Test"}, + new SimilarNodeName {Id = 3, Name = "Test (1)"}, + new SimilarNodeName {Id = 4, Name = "Test (2)"}, new SimilarNodeName {Id = 22, Name = "Test (1) (1)"} }; - // TODO: this will yield "Test (2)" which is already in use - Assert.AreEqual("Test (3)", SimilarNodeName.GetUniqueName(names, 0, "Test")); + var uniqueName = SimilarNodeName.GetUniqueName(names, 0, "Test"); + Assert.AreEqual("Test (3)", uniqueName); } }