public void GetAdviseGroupMenuItems_IfNoAdviseGroupsExist_ReturnsCorrectMenuItems() { // Arrange var adviseGroupHelperStub = new Mock <IAdviseGroupHelper>(); adviseGroupHelperStub.Setup(x => x.AdviseGroups).Returns(Array.Empty <AdviseGroupModel>()); var mocker = new AutoMocker(); mocker.Use(adviseGroupHelperStub); // Act var menuItems = DerivedExplorerItem.InvokeGetAdviseGroupMenuItems(Mock.Of <BasicAdviseGroupHolder>(), Mock.Of <ILibraryExplorerViewModel>(), adviseGroupHelperStub.Object); // Assert var expectedMenuItems = new[] { new CommandMenuItem(() => Task.CompletedTask) { Header = "New Advise Group ...", IconKind = PackIconKind.FolderPlus }, }; menuItems.Should().BeEquivalentTo(expectedMenuItems, x => x.WithStrictOrdering()); }
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()); }