public void AdviseGroupMenuItems_IfAdviseGroupsExistAndItemWithoutAdviseGroupIsSelected_ReturnsCorrectMenuItems() { // Arrange var adviseGroups = new[] { new AdviseGroupModel { Id = new ItemId("1"), Name = "Advise Group 1" }, new AdviseGroupModel { Id = new ItemId("2"), Name = "Advise Group 2" }, }; var adviseGroupHelperStub = new Mock <IAdviseGroupHelper>(); adviseGroupHelperStub.Setup(x => x.AdviseGroups).Returns(adviseGroups); var adviseGroupHolderStub = new Mock <BasicAdviseGroupHolder>(); adviseGroupHolderStub.Setup(x => x.CurrentAdviseGroup).Returns <AdviseGroupModel>(null); var mocker = new AutoMocker(); mocker.Use(adviseGroupHelperStub); // Act var menuItems = DerivedExplorerItem.InvokeGetAdviseGroupMenuItems(adviseGroupHolderStub.Object, Mock.Of <ILibraryExplorerViewModel>(), adviseGroupHelperStub.Object); // Assert var expectedMenuItems = new BasicMenuItem[] { new CommandMenuItem(() => Task.CompletedTask) { Header = "New Advise Group ...", IconKind = PackIconKind.FolderPlus }, new SeparatorMenuItem(), new CommandMenuItem(() => Task.CompletedTask) { Header = "Advise Group 1", IconKind = null }, new CommandMenuItem(() => Task.CompletedTask) { Header = "Advise Group 2", IconKind = null }, }; menuItems.Should().BeEquivalentTo(expectedMenuItems, x => x.WithStrictOrdering().RespectingRuntimeTypes()); }
private static void AddAnotherMenuItem(BasicMenu basicMenu) { GameObject gameObject = NGUITools.AddChild(basicMenu.m_MenuGrid.gameObject, basicMenu.m_BasicMenuItemPrefab); gameObject.name = "ModSettings MenuItem"; BasicMenuItem item = gameObject.GetComponent <BasicMenuItem>(); BasicMenu.BasicMenuItemView view = item.m_View; int itemIndex = basicMenu.m_MenuItems.Count; EventDelegate onClick = new EventDelegate(new Action(() => basicMenu.OnItemClicked(itemIndex))); view.m_Button.onClick.Add(onClick); EventDelegate onDoubleClick = new EventDelegate(new Action(() => basicMenu.OnItemDoubleClicked(itemIndex))); view.m_DoubleClickButton.m_OnDoubleClick.Add(onDoubleClick); basicMenu.m_MenuItems.Add(view); }
public async Task ContextMenuItems_IfSomeSongsSelected_ReturnsCorrectMenuItems() { // Arrange var songs = new[] { new SongModel { Id = new ItemId("0") }, new SongModel { Id = new ItemId("1") }, new SongModel { Id = new ItemId("2") }, }; var mocker = new AutoMocker(); var target = mocker.CreateInstance <PlaylistViewModel>(); await target.SetPlaylistSongs(songs, CancellationToken.None); var selectedSongItems = new List <SongListItem> { target.SongItems[0], target.SongItems[2], }; target.SelectedSongItems = selectedSongItems; target.SelectedSongItem = selectedSongItems[0]; // Act var menuItems = target.ContextMenuItems; // Assert var expectedMenuItems = new BasicMenuItem[] { new CommandMenuItem(() => { }, false) { Header = "Play From This Song", IconKind = PackIconKind.Play }, new CommandMenuItem(() => { }, false) { Header = "Play Next", IconKind = PackIconKind.PlaylistAdd }, new CommandMenuItem(() => { }, false) { Header = "Play Last", IconKind = PackIconKind.PlaylistAdd }, new CommandMenuItem(() => { }, false) { Header = "Remove From Playlist", IconKind = PackIconKind.PlaylistMinus }, new CommandMenuItem(() => { }, false) { Header = "Clear Playlist", IconKind = PackIconKind.PlaylistRemove }, new CommandMenuItem(() => { }, false) { Header = "Go To Disc", IconKind = PackIconKind.Album }, new ExpandableMenuItem { Header = "Set Rating", IconKind = PackIconKind.Star, Items = new[] { new SetRatingMenuItem(RatingModel.R10, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R9, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R8, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R7, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R6, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R5, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R4, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R3, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R2, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R1, () => Task.CompletedTask), }, }, new CommandMenuItem(() => { }, false) { Header = "Properties", IconKind = PackIconKind.Pencil }, }; menuItems.Should().BeEquivalentTo(expectedMenuItems, x => x.WithStrictOrdering().RespectingRuntimeTypes()); }
public void ContextMenuItems_IfActiveSongsSelected_ReturnsCorrectMenuItems() { // Arrange var songs = new[] { new SongModel { Id = new ItemId("0") }, new SongModel { Id = new ItemId("1"), DeleteDate = new DateTime(2021, 10, 25) }, new SongModel { Id = new ItemId("2") }, }; var mocker = new AutoMocker(); var target = mocker.CreateInstance <DiscSongListViewModel>(); target.SetSongs(songs); target.SelectedSongItems = new List <SongListItem> { target.SongItems[0], target.SongItems[2], }; // Act var menuItems = target.ContextMenuItems; // Assert var expectedMenuItems = new BasicMenuItem[] { new CommandMenuItem(() => { }, false) { Header = "Play Next", IconKind = PackIconKind.PlaylistAdd }, new CommandMenuItem(() => { }, false) { Header = "Play Last", IconKind = PackIconKind.PlaylistAdd }, new ExpandableMenuItem { Header = "Set Rating", IconKind = PackIconKind.Star, Items = new[] { new SetRatingMenuItem(RatingModel.R10, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R9, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R8, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R7, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R6, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R5, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R4, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R3, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R2, () => Task.CompletedTask), new SetRatingMenuItem(RatingModel.R1, () => Task.CompletedTask), }, }, new CommandMenuItem(() => { }, false) { Header = "Delete From Disc", IconKind = PackIconKind.DeleteForever }, new CommandMenuItem(() => { }, false) { Header = "Properties", IconKind = PackIconKind.Pencil }, }; menuItems.Should().BeEquivalentTo(expectedMenuItems, x => x.WithStrictOrdering().RespectingRuntimeTypes()); }