public void ChangeFolderCommandHandler_IfDiscItemIsSelected_DoesNothing()
        {
            // Arrange

            var folder = new FolderModel();

            folder.AddSubfolders(new FolderModel {
                Id = new ItemId("Subfolder Id")
            });
            folder.AddDiscs(new DiscModel {
                TreeTitle = "Some Disc"
            }.MakeActive());

            var parentFolder = new FolderModel {
                Id = new ItemId("Parent Folder Id")
            };

            parentFolder.AddSubfolders(folder);

            var mocker = new AutoMocker();
            var target = mocker.CreateInstance <LibraryExplorerItemListViewModel>();

            target.LoadFolderItems(folder);
            target.SelectedItem = target.Items[2];
            target.SelectedItem.Should().BeOfType <DiscExplorerItem>();

            LoadParentFolderEventArgs loadParentFolderEvent = null;

            Messenger.Default.Register <LoadParentFolderEventArgs>(this, e => e.RegisterEvent(ref loadParentFolderEvent));

            LoadFolderEventArgs loadFolderEvent = null;

            Messenger.Default.Register <LoadFolderEventArgs>(this, e => e.RegisterEvent(ref loadFolderEvent));

            // Act

            target.ChangeFolderCommand.Execute(null);

            // Assert

            loadParentFolderEvent.Should().BeNull();
            loadFolderEvent.Should().BeNull();
        }
        public void LoadParentFolderEventHandler_LoadsParentFolderCorrectly()
        {
            // Arrange

            var parentFolder = new FolderModel {
                Id = new ItemId("Parent Folder Id")
            };
            var loadParentFolderEvent = new LoadParentFolderEventArgs(parentFolder, new ItemId("Child Folder Id"));

            var mocker = new AutoMocker();
            var target = mocker.CreateInstance <LibraryExplorerViewModel>();

            // Act

            Messenger.Default.Send(loadParentFolderEvent);

            // Assert

            var itemListViewModelMock = mocker.GetMock <ILibraryExplorerItemListViewModel>();

            itemListViewModelMock.Verify(x => x.LoadFolderItems(parentFolder), Times.Once);
            itemListViewModelMock.Verify(x => x.SelectFolder(new ItemId("Child Folder Id")), Times.Once);
        }
        private void OnLoadParentFolder(LoadParentFolderEventArgs e)
        {
            LoadFolder(e.ParentFolder);

            ItemListViewModel.SelectFolder(e.ChildFolderId);
        }