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.
abp/test/Volo.Abp.Tests/Volo/Abp/Ui/Navigation/MenuManager_Tests.cs

103 lines
3.5 KiB

using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Shouldly;
using Volo.Abp.Modularity;
using Volo.Abp.TestBase;
using System.Collections.Generic;
using Xunit;
namespace Volo.Abp.Ui.Navigation
{
public class MenuManager_Tests : AbpIntegratedTest<MenuManager_Tests.TestModule>
{
private readonly IMenuManager _menuManager;
public MenuManager_Tests()
{
_menuManager = ServiceProvider.GetRequiredService<IMenuManager>();
}
[Fact]
public async Task Should_Get_Menu()
{
var mainMenu = await _menuManager.GetAsync(StandardMenus.Main);
mainMenu.Name.ShouldBe(StandardMenus.Main);
mainMenu.DisplayName.ShouldBe("Main Menu");
mainMenu.Items.Count.ShouldBe(2);
mainMenu.Items[0].Name.ShouldBe("Dashboard");
mainMenu.Items[1].Name.ShouldBe("Administration");
mainMenu.Items[1].Items[0].Name.ShouldBe("Administration.UserManagement");
mainMenu.Items[1].Items[1].Name.ShouldBe("Administration.RoleManagement");
mainMenu.Items[1].Items[2].Name.ShouldBe("Administration.DashboardSettings");
}
public class TestModule : AbpModule
{
public override void ConfigureServices(IServiceCollection services)
{
services.Configure<NavigationOptions>(options =>
{
options.MenuContributors.Add(new TestMenuContributer1());
options.MenuContributors.Add(new TestMenuContributer2());
});
}
}
/* Adds menu items:
* - Administration
* - User Management
* - Role Management
*/
public class TestMenuContributer1 : IMenuContributor
{
public Task ConfigureMenuAsync(MenuConfigurationContext context)
{
if (context.Menu.Name != StandardMenus.Main)
{
return Task.CompletedTask;
}
context.Menu.DisplayName = "Main Menu";
var administration = context.Menu.Items.GetOrAdd(
m => m.Name == "Administration",
() => new ApplicationMenuItem("Administration", "Administration")
);
administration.AddItem(new ApplicationMenuItem("Administration.UserManagement", "User Management"));
administration.AddItem(new ApplicationMenuItem("Administration.RoleManagement", "Role Management"));
return Task.CompletedTask;
}
}
/* Adds menu items:
* - Dashboard
* - Administration
* - Dashboard Settings
*/
public class TestMenuContributer2 : IMenuContributor
{
public Task ConfigureMenuAsync(MenuConfigurationContext context)
{
if (context.Menu.Name != StandardMenus.Main)
{
return Task.CompletedTask;
}
context.Menu.Items.Insert(0, new ApplicationMenuItem("Dashboard", "Dashboard"));
var administration = context.Menu.Items.GetOrAdd(
m => m.Name == "Administration",
() => new ApplicationMenuItem("Administration", "Administration")
);
administration.AddItem(new ApplicationMenuItem("Administration.DashboardSettings", "Dashboard Settings"));
return Task.CompletedTask;
}
}
}
}