Example #1
0
        public void DiscExplorerItem_WhenDiscTreeTitleIsChanged_SendsPropertyChangedEventForTitle()
        {
            // Arrange

            var disc = new DiscModel
            {
                TreeTitle = "Old Tree Title",
            };

            var target = new DiscExplorerItem(disc);

            var propertyChangedEvents = new List <PropertyChangedEventArgs>();

            target.PropertyChanged += (_, e) => propertyChangedEvents.Add(e);

            // Act

            disc.TreeTitle = "New Tree Title";

            // Assert

            var expectedProperties = new[]
            {
                nameof(DiscExplorerItem.Title),
            };

            propertyChangedEvents.Select(e => e.PropertyName).Should().BeEquivalentTo(expectedProperties);
        }
Example #2
0
        public void DiscExplorerItem_WhenDiscAdviseGroupIsChanged_SendsPropertyChangedEventForIconKind()
        {
            // Arrange

            var disc = new DiscModel
            {
                AdviseGroup = null,
            };

            var target = new DiscExplorerItem(disc);

            var propertyChangedEvents = new List <PropertyChangedEventArgs>();

            target.PropertyChanged += (_, e) => propertyChangedEvents.Add(e);

            // Act

            disc.AdviseGroup = new AdviseGroupModel {
                Id = new ItemId("1"), Name = "New Advise Group"
            };

            // Assert

            var expectedProperties = new[]
            {
                nameof(DiscExplorerItem.IconKind),
            };

            propertyChangedEvents.Select(e => e.PropertyName).Should().BeEquivalentTo(expectedProperties);
        }
Example #3
0
        public void ToolTipGetter_ForActiveDisc_ReturnsNull()
        {
            // Arrange

            var disc = new DiscModel().MakeActive();

            var target = new DiscExplorerItem(disc);

            // Act

            var toolTip = target.ToolTip;

            // Assert

            toolTip.Should().BeNull();
        }
Example #4
0
        public void IsDeletedGetter_ForDeletedDisc_ReturnsTrue()
        {
            // Arrange

            var disc = new DiscModel().MakeDeleted();

            var target = new DiscExplorerItem(disc);

            // Act

            var isDeleted = target.IsDeleted;

            // Assert

            isDeleted.Should().BeTrue();
        }
Example #5
0
        public void GetContextMenuItems_ForActiveDisc_ReturnsCorrectMenuItems()
        {
            // Arrange

            var disc = new DiscModel().MakeActive();

            var adviseGroupHelperStub = new Mock <IAdviseGroupHelper>();

            adviseGroupHelperStub.Setup(x => x.AdviseGroups).Returns(Array.Empty <AdviseGroupModel>());

            var target = new DiscExplorerItem(disc);

            // Act

            var menuItems = target.GetContextMenuItems(Mock.Of <ILibraryExplorerViewModel>(), adviseGroupHelperStub.Object).ToArray();

            // Assert

            var expectedSetAdviseGroupItem = new ExpandableMenuItem
            {
                Header   = "Set Advise Group",
                IconKind = PackIconKind.FolderStar,
            };

            var expectedMenuItems = new[]
            {
                new CommandMenuItem(() => { }, false)
                {
                    Header = "Play Disc", IconKind = PackIconKind.Play
                },
                new CommandMenuItem(() => { }, false)
                {
                    Header = "Add To Playlist", IconKind = PackIconKind.PlaylistPlus
                },
                new CommandMenuItem(() => { }, false)
                {
                    Header = "Delete Disc", IconKind = PackIconKind.DeleteForever
                },
                new CommandMenuItem(() => { }, false)
                {
                    Header = "Properties", IconKind = PackIconKind.Pencil
                },
            };

            // Nested items for advise group are covered by UT for BasicExplorerItem.
            menuItems[0].Should().BeEquivalentTo(expectedSetAdviseGroupItem, x => x.Excluding(y => y.Items));
            menuItems[1..].Should().BeEquivalentTo(expectedMenuItems, x => x.WithStrictOrdering());
Example #6
0
        public void IconKindGetter_ForDiscWithAdviseSet_ReturnsDiscAlertIconKind()
        {
            // Arrange

            var disc = new DiscModel
            {
                AdviseSetInfo = new AdviseSetInfo(new AdviseSetModel(), 1),
            };

            var target = new DiscExplorerItem(disc);

            // Act

            var iconKind = target.IconKind;

            // Assert

            iconKind.Should().Be(PackIconKind.DiscAlert);
        }
Example #7
0
        public void TitleGetter_ReturnsDiscTreeTitle()
        {
            // Arrange

            var disc = new DiscModel
            {
                TreeTitle = "Disc Tree Title",
            };

            var target = new DiscExplorerItem(disc);

            // Act

            var title = target.Title;

            // Assert

            title.Should().Be("Disc Tree Title");
        }
Example #8
0
        public void IconKindGetter_ForDiscWithoutAdviseGroupAndAdviseSet_ReturnsAlbumIconKind()
        {
            // Arrange

            var disc = new DiscModel
            {
                AdviseGroup   = null,
                AdviseSetInfo = null,
            };

            var target = new DiscExplorerItem(disc);

            // Act

            var iconKind = target.IconKind;

            // Assert

            iconKind.Should().Be(PackIconKind.Album);
        }
Example #9
0
        public void IconKindGetter_ForDiscWithAdviseGroup_ReturnsDiscAlertIconKind()
        {
            // Arrange

            var disc = new DiscModel
            {
                AdviseGroup = new AdviseGroupModel {
                    Id = new ItemId("1"), Name = "Some Advise Group"
                },
            };

            var target = new DiscExplorerItem(disc);

            // Act

            var iconKind = target.IconKind;

            // Assert

            iconKind.Should().Be(PackIconKind.DiscAlert);
        }
Example #10
0
        public void ToolTipGetter_ForDeletedDiscWithVariousDeleteDateAndComments_ReturnsCorrectValue()
        {
            // Arrange

            var disc = new DiscModel();

            disc.AddSongs(new SongModel {
                DeleteDate = new DateTime(2021, 10, 25), DeleteComment = "Boring 1"
            });
            disc.AddSongs(new SongModel {
                DeleteDate = new DateTime(2021, 10, 26), DeleteComment = "Boring 2"
            });

            var target = new DiscExplorerItem(disc);

            // Act

            var toolTip = target.ToolTip;

            // Assert

            toolTip.Should().Be("The disc was deleted with various comments");
        }
Example #11
0
        public void ToolTipGetter_ForDeletedDiscWithSameDeleteDateAndWithoutComment_ReturnsCorrectValue()
        {
            // Arrange

            var disc = new DiscModel();

            disc.AddSongs(new SongModel {
                DeleteDate = new DateTime(2021, 10, 26), DeleteComment = null
            });
            disc.AddSongs(new SongModel {
                DeleteDate = new DateTime(2021, 10, 26), DeleteComment = null
            });

            var target = new DiscExplorerItem(disc);

            // Act

            var toolTip = target.ToolTip;

            // Assert

            toolTip.Should().Be("The disc was deleted on 2021.10.26 without comment");
        }