public void LoadFolderItems_IfTitlesContainSpecialLocalCharacters_OrdersItemsCorrectly() { // Arrange var folder1 = new FolderModel { Name = "Елена Никитаева" }; var folder2 = new FolderModel { Name = "Ёлка" }; var folder3 = new FolderModel { Name = "Жанна Агузарова" }; var disc1 = new DiscModel { TreeTitle = "Елена Никитаева" }.MakeActive(); var disc2 = new DiscModel { TreeTitle = "Ёлка" }.MakeActive(); var disc3 = new DiscModel { TreeTitle = "Жанна Агузарова" }.MakeActive(); var folder = new FolderModel(); folder.AddSubfolders(folder3, folder1, folder2); folder.AddDiscs(disc3, disc1, disc2); var mocker = new AutoMocker(); var target = mocker.CreateInstance <LibraryExplorerItemListViewModel>(); // Act target.LoadFolderItems(folder); // Assert var expectedItems = new BasicExplorerItem[] { new FolderExplorerItem(folder1), new FolderExplorerItem(folder2), new FolderExplorerItem(folder3), new DiscExplorerItem(disc1), new DiscExplorerItem(disc2), new DiscExplorerItem(disc3), }; target.Items.Should().BeEquivalentTo(expectedItems, x => x.WithStrictOrdering()); target.SelectedItem.Should().Be(target.Items.First()); }
public void LoadFolderItems_ForTitlesInDifferentCase_IgnoresCaseDuringOrdering() { // Arrange var folder1 = new FolderModel { Name = "A Folder" }; var folder2 = new FolderModel { Name = "b Folder" }; var folder3 = new FolderModel { Name = "C Folder" }; var disc1 = new DiscModel { TreeTitle = "A Disc" }.MakeActive(); var disc2 = new DiscModel { TreeTitle = "b Disc" }.MakeActive(); var disc3 = new DiscModel { TreeTitle = "C Disc" }.MakeActive(); var folder = new FolderModel(); folder.AddSubfolders(folder3, folder1, folder2); folder.AddDiscs(disc3, disc1, disc2); var mocker = new AutoMocker(); var target = mocker.CreateInstance <LibraryExplorerItemListViewModel>(); // Act target.LoadFolderItems(folder); // Assert var expectedItems = new BasicExplorerItem[] { new FolderExplorerItem(folder1), new FolderExplorerItem(folder2), new FolderExplorerItem(folder3), new DiscExplorerItem(disc1), new DiscExplorerItem(disc2), new DiscExplorerItem(disc3), }; target.Items.Should().BeEquivalentTo(expectedItems, x => x.WithStrictOrdering()); target.SelectedItem.Should().Be(target.Items.First()); }
public void LoadFolderItems_ForFolderWithSubfoldersAndDiscs_OrdersItemsCorrectly() { // Arrange var folder1 = new FolderModel { Name = "21 - Folder 1" }; var folder2 = new FolderModel { Name = "22 - Folder 2" }; var folder3 = new FolderModel { Name = "23 - Folder 3" }; var disc1 = new DiscModel { TreeTitle = "11 - Disc 1" }.MakeActive(); var disc2 = new DiscModel { TreeTitle = "12 - Disc 2" }.MakeActive(); var disc3 = new DiscModel { TreeTitle = "13 - Disc 3" }.MakeActive(); var folder = new FolderModel(); folder.AddSubfolders(folder3, folder1, folder2); folder.AddDiscs(disc3, disc1, disc2); var mocker = new AutoMocker(); var target = mocker.CreateInstance <LibraryExplorerItemListViewModel>(); // Act target.LoadFolderItems(folder); // Assert var expectedItems = new BasicExplorerItem[] { new FolderExplorerItem(folder1), new FolderExplorerItem(folder2), new FolderExplorerItem(folder3), new DiscExplorerItem(disc1), new DiscExplorerItem(disc2), new DiscExplorerItem(disc3), }; target.Items.Should().BeEquivalentTo(expectedItems, x => x.WithStrictOrdering()); target.SelectedItem.Should().Be(target.Items.First()); }
public void LoadFolderItems_IfSomeItemsWereLoadedBefore_ClearsPreviousItems() { // Arrange var oldFolder = new FolderModel(); oldFolder.AddSubfolders(new FolderModel { Id = new ItemId("OldSubfolder"), Name = "Old Folder" }); oldFolder.AddDiscs(new DiscModel { Id = new ItemId("OldDisc"), TreeTitle = "Old Disc" }.AddSongs(new SongModel { Id = new ItemId("1") })); var newSubfolder = new FolderModel { Id = new ItemId("NewSubfolder"), Name = "New Folder" }; var newDisc = new DiscModel { Id = new ItemId("NewSubfolder"), TreeTitle = "New Disc" }.AddSongs(new SongModel { Id = new ItemId("2") }); var newFolder = new FolderModel { Id = new ItemId("NewFolder") }; newFolder.AddSubfolders(newSubfolder); newFolder.AddDiscs(newDisc); var mocker = new AutoMocker(); var target = mocker.CreateInstance <LibraryExplorerItemListViewModel>(); target.LoadFolderItems(oldFolder); target.SelectedItem = target.Items[1]; // Act target.LoadFolderItems(newFolder); // Assert var expectedItems = new BasicExplorerItem[] { new FolderExplorerItem(newSubfolder), new DiscExplorerItem(newDisc), }; target.Items.Should().BeEquivalentTo(expectedItems, x => x.WithStrictOrdering()); target.SelectedItem.Should().Be(target.Items.First()); }
public void LoadFolderItems_ShowDeletedContentIsTrue_LoadsDeletedContent() { // Arrange var subfolder1 = new FolderModel { Name = "Subfolder 1" }; var subfolder2 = new FolderModel { Name = "Subfolder 2", DeleteDate = new DateTime(2021, 07, 25) }; var subfolder3 = new FolderModel { Name = "Subfolder 3" }; var disc1 = new DiscModel { TreeTitle = "Disc 1" }.MakeActive(); var disc2 = new DiscModel { TreeTitle = "Disc 2" }.MakeDeleted(); var disc3 = new DiscModel { TreeTitle = "Disc 3" }.MakeActive(); var folder = new FolderModel(); folder.AddSubfolders(subfolder1, subfolder2, subfolder3); folder.AddDiscs(disc1, disc2, disc3); var mocker = new AutoMocker(); var target = mocker.CreateInstance <LibraryExplorerItemListViewModel>(); // Act target.LoadFolderItems(folder); target.ShowDeletedContent = true; // Assert var expectedItems = new BasicExplorerItem[] { new FolderExplorerItem(subfolder1), new FolderExplorerItem(subfolder2), new FolderExplorerItem(subfolder3), new DiscExplorerItem(disc1), new DiscExplorerItem(disc2), new DiscExplorerItem(disc3), }; target.Items.Should().BeEquivalentTo(expectedItems, x => x.WithStrictOrdering().RespectingRuntimeTypes()); }
public async Task OnDiscDeleted_IfDeletedContentIsShown_ReloadsCurrentFolder() { // Arrange var oldDisc = new DiscModel { Id = new ItemId("Old Disc Id"), TreeTitle = "Old Disc" }.AddSongs(new SongModel { Id = new ItemId("1") }); var folder = new FolderModel(); folder.AddDiscs(oldDisc); var mocker = new AutoMocker(); var target = mocker.CreateInstance <LibraryExplorerItemListViewModel>(); target.LoadFolderItems(folder); target.ShowDeletedContent = true; // We add new items to the current folder for checking that LoadFolderItems() was called once again for the current folder. var newSubfolder = new FolderModel { Id = new ItemId("New Subfolder Id"), Name = "New Subfolder" }; var newDisc = new DiscModel { Id = new ItemId("New Disc Id"), TreeTitle = "New Disc" }.AddSongs(new SongModel { Id = new ItemId("2") }); folder.AddSubfolders(newSubfolder); folder.AddDiscs(newDisc); // Act await target.OnDiscDeleted(new ItemId("Old Disc Id")); // Assert var expectedItems = new BasicExplorerItem[] { new FolderExplorerItem(newSubfolder), new DiscExplorerItem(newDisc), new DiscExplorerItem(oldDisc), }; target.Items.Should().BeEquivalentTo(expectedItems, x => x.WithStrictOrdering()); }
public async Task OnFolderDeleted_IfDeletedContentIsHiddenAndFolderPresentsInList_RemovesThisFolder() { // Arrange var folder1 = new FolderModel { Id = new ItemId("1"), Name = "Folder 1" }; var folder2 = new FolderModel { Id = new ItemId("2"), Name = "Folder 2" }; var folder3 = new FolderModel { Id = new ItemId("3"), Name = "Folder 3" }; // Using the same id as for requested folder, just in case. var disc = new DiscModel { Id = new ItemId("2"), TreeTitle = "Some Disc" }.MakeActive(); var folder = new FolderModel(); folder.AddSubfolders(folder1, folder2, folder3); folder.AddDiscs(disc); var mocker = new AutoMocker(); var target = mocker.CreateInstance <LibraryExplorerItemListViewModel>(); target.LoadFolderItems(folder); target.ShowDeletedContent = false; // Act await target.OnFolderDeleted(new ItemId("2")); // Assert var expectedItems = new BasicExplorerItem[] { new FolderExplorerItem(folder1), new FolderExplorerItem(folder3), new DiscExplorerItem(disc), }; target.Items.Should().BeEquivalentTo(expectedItems, x => x.WithStrictOrdering()); }
public async Task OnDiscDeleted_IfDeletedContentIsHiddenAndDiscDoesNotPresentInList_DoesNothing() { // Arrange // Using the same id as for requested disc, just in case. var subfolder = new FolderModel { Id = new ItemId("1"), Name = "Some Subfolder" }; var disc = new DiscModel { Id = new ItemId("Disc Id"), TreeTitle = "Some Disc" }.MakeActive(); var folder = new FolderModel(); folder.AddSubfolders(subfolder); folder.AddDiscs(disc); var mocker = new AutoMocker(); var target = mocker.CreateInstance <LibraryExplorerItemListViewModel>(); target.LoadFolderItems(folder); target.ShowDeletedContent = false; // Act await target.OnDiscDeleted(new ItemId("1")); // Assert var expectedItems = new BasicExplorerItem[] { new FolderExplorerItem(subfolder), new DiscExplorerItem(disc), }; target.Items.Should().BeEquivalentTo(expectedItems, x => x.WithStrictOrdering()); }