From 0268793b2d4e49d8614d7e974981878f8b8bb7dd Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 11 Jun 2021 13:07:41 -0600 Subject: [PATCH] adds some tests --- .../PendingPackageMigrationsTests.cs | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 src/Umbraco.Tests.UnitTests/Umbraco.Core/Packaging/PendingPackageMigrationsTests.cs diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Packaging/PendingPackageMigrationsTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Packaging/PendingPackageMigrationsTests.cs new file mode 100644 index 0000000000..a9635b76ca --- /dev/null +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Packaging/PendingPackageMigrationsTests.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; +using Microsoft.Extensions.Logging; +using Moq; +using NUnit.Framework; +using Umbraco.Cms.Core; +using Umbraco.Cms.Core.Packaging; + +namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Packaging +{ + [TestFixture] + public class PendingPackageMigrationsTests + { + private static readonly Guid s_step1 = Guid.NewGuid(); + private static readonly Guid s_step2 = Guid.NewGuid(); + private const string PackageName = "Test1"; + + private class TestPackageMigrationPlan : PackageMigrationPlan + { + public TestPackageMigrationPlan() : base(PackageName) + { + } + + protected override void DefinePlan() + { + To(s_step1); + To(s_step2); + } + } + + private PendingPackageMigrations GetPendingPackageMigrations() + => new PendingPackageMigrations( + Mock.Of>(), + new PackageMigrationPlanCollection(new[] + { + new TestPackageMigrationPlan() + })); + + [Test] + public void GivenNoRegisteredMigrations_ThenPlanIsReturned() + { + PendingPackageMigrations pendingPackageMigrations = GetPendingPackageMigrations(); + var registeredMigrations = new Dictionary(); + IReadOnlyList pending = pendingPackageMigrations.GetUmbracoPendingPackageMigrations(registeredMigrations); + Assert.AreEqual(1, pending.Count); + } + + [Test] + public void GivenRegisteredMigration_WhenFinalStepMatched_ThenNoneAreReturned() + { + PendingPackageMigrations pendingPackageMigrations = GetPendingPackageMigrations(); + var registeredMigrations = new Dictionary + { + [Constants.Conventions.Migrations.KeyValuePrefix + PackageName] = s_step2.ToString() + }; + IReadOnlyList pending = pendingPackageMigrations.GetUmbracoPendingPackageMigrations(registeredMigrations); + Assert.AreEqual(0, pending.Count); + } + + [Test] + public void GivenRegisteredMigration_WhenNonFinalStepMatched_ThenPlanIsReturned() + { + PendingPackageMigrations pendingPackageMigrations = GetPendingPackageMigrations(); + var registeredMigrations = new Dictionary + { + [Constants.Conventions.Migrations.KeyValuePrefix + PackageName] = s_step1.ToString() + }; + IReadOnlyList pending = pendingPackageMigrations.GetUmbracoPendingPackageMigrations(registeredMigrations); + Assert.AreEqual(1, pending.Count); + } + + [Test] + public void GivenRegisteredMigration_WhenStepIsDifferentCase_ThenPlanIsReturned() + { + PendingPackageMigrations pendingPackageMigrations = GetPendingPackageMigrations(); + var registeredMigrations = new Dictionary + { + [Constants.Conventions.Migrations.KeyValuePrefix + PackageName] = s_step1.ToString().ToUpper() + }; + IReadOnlyList pending = pendingPackageMigrations.GetUmbracoPendingPackageMigrations(registeredMigrations); + Assert.AreEqual(1, pending.Count); + } + } +}