public async Task CreateEmptyFolder_ForNonRootParent_CreatesFolderCorrectly() { // Arrange var newFolder = new FolderModel { Name = "Ляпис Трубецкой", }; var parentFolder = await GetFolder(ReferenceData.ArtistFolderId); parentFolder.AddSubfolder(newFolder); var target = CreateTestTarget(); // Act await target.CreateEmptyFolder(newFolder, CancellationToken.None); // Assert var expectedFolder = new FolderModel { Id = ReferenceData.NextFolderId, Name = "Ляпис Трубецкой", }; var referenceData = GetReferenceData(); referenceData.ArtistFolder.AddSubfolder(expectedFolder); newFolder.Should().BeEquivalentTo(expectedFolder, x => x.WithStrictOrdering().IgnoringCyclicReferences()); var expectedFolders = new[] { referenceData.RootFolder, referenceData.SubFolder, referenceData.ArtistFolder, referenceData.EmptyFolder, referenceData.DeletedFolder, expectedFolder, }; var allFolders = await GetAllFolders(); allFolders.Should().BeEquivalentTo(expectedFolders, x => x.WithStrictOrdering().IgnoringCyclicReferences()); var folderFromRepository = await GetFolder(ReferenceData.NextFolderId); folderFromRepository.Should().BeEquivalentTo(expectedFolder, x => x.WithStrictOrdering().IgnoringCyclicReferences()); var expectedFolderPath = Path.Combine(LibraryStorageRoot, "Belarusian", "Neuro Dubel", "Ляпис Трубецкой"); Directory.Exists(expectedFolderPath).Should().BeTrue(); await CheckLibraryConsistency(); }