From 784d959a566609da8154b41f2937b5d2a783425d Mon Sep 17 00:00:00 2001 From: EngincanV Date: Tue, 19 Aug 2025 16:50:07 +0300 Subject: [PATCH] CMS: Write new test methods for GetAvailableMenuOrderAsync --- .../Menus/MenuItemAdminAppService_Tests.cs | 16 ++++++++++++++++ .../CmsKitDataSeedContributor.cs | 17 +++++++++++++++-- .../test/Volo.CmsKit.TestBase/CmsKitTestData.cs | 12 ++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Menus/MenuItemAdminAppService_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Menus/MenuItemAdminAppService_Tests.cs index 28e2c8b087..80f65a1902 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Menus/MenuItemAdminAppService_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Menus/MenuItemAdminAppService_Tests.cs @@ -118,4 +118,20 @@ public class MenuItemAdminAppService_Tests : CmsKitApplicationTestBase menu.ShouldBeNull(); } + + [Fact] + public async Task GetAvailableMenuOrderAsync_ShouldWorkProperly_WithParentId() + { + var order = await MenuAdminAppService.GetAvailableMenuOrderAsync(TestData.MenuItem_1_Id); + + order.ShouldBe(2); //has two items with order 0 and 1, so the next available order is 2 + } + + [Fact] + public async Task GetAvailableMenuOrderAsync_ShouldWorkProperly_WithoutParentId() + { + var order = await MenuAdminAppService.GetAvailableMenuOrderAsync(); + + order.ShouldBe(TestData.HighestMenuItemOrder + 1); + } } diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs index b516c680a1..452c221311 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs @@ -442,7 +442,8 @@ public class CmsKitDataSeedContributor : IDataSeedContributor, ITransientDepende new MenuItem( _cmsKitTestData.MenuItem_1_Id, _cmsKitTestData.MenuItem_1_Name, - _cmsKitTestData.MenuItem_1_Url), + _cmsKitTestData.MenuItem_1_Url, + order: _cmsKitTestData.HighestMenuItemOrder), new MenuItem( _cmsKitTestData.MenuItem_2_Id, _cmsKitTestData.MenuItem_2_Name, @@ -451,7 +452,19 @@ public class CmsKitDataSeedContributor : IDataSeedContributor, ITransientDepende _cmsKitTestData.MenuItem_3_Id, _cmsKitTestData.MenuItem_3_Name, _cmsKitTestData.MenuItem_3_Url), - menuItem4 + menuItem4, + new MenuItem( + _cmsKitTestData.MenuItem_5_Id, + _cmsKitTestData.MenuItem_5_Name, + _cmsKitTestData.MenuItem_5_Url, + order: 0, + parentId: _cmsKitTestData.MenuItem_1_Id), + new MenuItem( + _cmsKitTestData.MenuItem_6_Id, + _cmsKitTestData.MenuItem_6_Name, + _cmsKitTestData.MenuItem_6_Url, + order: 1, + parentId: _cmsKitTestData.MenuItem_1_Id) }); } diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs index b21e7aab08..c9837f0af9 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs @@ -132,6 +132,18 @@ public class CmsKitTestData : ISingletonDependency public string MenuItem_4_With_Page_1_Name { get; } = "Products"; + public Guid MenuItem_5_Id { get; } = Guid.NewGuid(); + + public string MenuItem_5_Name { get; } = "FAQ"; + public string MenuItem_5_Url { get; } = "/faq"; + + public Guid MenuItem_6_Id { get; } = Guid.NewGuid(); + + public string MenuItem_6_Name { get; } = "Contact Us"; + public string MenuItem_6_Url { get; } = "/contact-us"; + + public int HighestMenuItemOrder { get; } = 2; + public string PollName { get; } = "Poll"; public string WidgetName { get; } = "CmsPollByCode";