mirror of https://github.com/abpframework/abp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.7 KiB
82 lines
2.7 KiB
using Shouldly;
|
|
using System;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Volo.CmsKit.Pages;
|
|
using Xunit;
|
|
|
|
namespace Volo.CmsKit.Menus
|
|
{
|
|
public class MenuManager_Test : CmsKitDomainTestBase
|
|
{
|
|
private readonly MenuItemManager menuManager;
|
|
private readonly CmsKitTestData testData;
|
|
private readonly IMenuItemRepository menuItemRepository;
|
|
private readonly IPageRepository pageRepository;
|
|
|
|
public MenuManager_Test()
|
|
{
|
|
menuManager = GetRequiredService<MenuItemManager>();
|
|
testData = GetRequiredService<CmsKitTestData>();
|
|
menuItemRepository = GetRequiredService<IMenuItemRepository>();
|
|
pageRepository = GetRequiredService<IPageRepository>();
|
|
}
|
|
|
|
[Fact]
|
|
public async Task SetPageUrl_ShouldSetUrlSameWithPage_WithExistingPage()
|
|
{
|
|
var page = await pageRepository.GetAsync(testData.Page_1_Id);
|
|
|
|
var menuItem = await menuItemRepository.GetAsync(testData.MenuItem_1_Id);
|
|
|
|
menuManager.SetPageUrl(menuItem, page);
|
|
|
|
menuItem.Url.ShouldNotBeNullOrEmpty();
|
|
menuItem.Url.ShouldBe(PageConsts.UrlPrefix + page.Slug);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task MoveAsync_ShouldMoveCorrectly_UnderAnotherMenu()
|
|
{
|
|
await menuManager.MoveAsync(testData.MenuItem_3_Id, testData.MenuItem_1_Id);
|
|
|
|
var menu = await menuItemRepository.GetAsync(testData.MenuItem_3_Id);
|
|
|
|
menu.ParentId.ShouldBe(testData.MenuItem_1_Id);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task MoveAsync_ShouldChangePositionCorrectly_UnderRoot()
|
|
{
|
|
await menuManager.MoveAsync(testData.MenuItem_2_Id, null, 0);
|
|
|
|
var menuItems = await menuItemRepository.GetListAsync();
|
|
|
|
var menuItem1 = menuItems.First(x => x.Id == testData.MenuItem_1_Id);
|
|
var menuItem2 = menuItems.First(x => x.Id == testData.MenuItem_2_Id);
|
|
|
|
menuItem1.Order.ShouldBeGreaterThan(menuItem2.Order);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task OrganizeTreeOrderForMenuItem_ShouldWorkProperly_WithNewMenuItem()
|
|
{
|
|
var menu3Id = Guid.NewGuid();
|
|
|
|
var menuItems = await menuItemRepository.GetListAsync();
|
|
|
|
var menuItem1 = menuItems.First(x => x.Id == testData.MenuItem_1_Id);
|
|
var menuItem2 = menuItems.First(x => x.Id == testData.MenuItem_2_Id);
|
|
var menuItem3 = new MenuItem(menu3Id, "Menu 3", "#");
|
|
|
|
menuItems.Add(menuItem3);
|
|
|
|
menuItem3.Order = 0;
|
|
|
|
menuManager.OrganizeTreeOrderForMenuItem(menuItems, menuItem3);
|
|
|
|
menuItem3.Order.ShouldBeLessThan(menuItem1.Order);
|
|
menuItem3.Order.ShouldBeLessThan(menuItem2.Order);
|
|
}
|
|
}
|
|
} |