public async Task LoadDirectoryAndFile() { const string directoryAndFileName = "Item"; using (var leftDirectory = new Infrastructure.TestDirectory()) using (var rightDirectory = new Infrastructure.TestDirectory()) { var updateDate = DateTime.Now; leftDirectory.CreateFiles(new Dictionary <string, DateTime> { { directoryAndFileName, updateDate } }); // В директорию надо поместить хотя бы один файл, чтобы она была видна. Infrastructure.TestDirectory.CreateFiles(rightDirectory.CreateDirectory(directoryAndFileName), new Dictionary <string, DateTime> { { "1", updateDate } }); var settingsRow = new TestSettingsRow { LeftDirectory = new SettingsDirectory(leftDirectory.FullPath), RightDirectory = new SettingsDirectory(rightDirectory.FullPath) }; var testSynchronizedItemsStatusAndCommandsUpdater = new TestSynchronizedItemsStatusAndCommandsUpdater(); var synchronizedDirectories = new SynchronizedItems(settingsRow, new SynchronizedItemFactory(new ItemFactory()), testSynchronizedItemsStatusAndCommandsUpdater); await synchronizedDirectories.Load(); Assert.Equal(2, synchronizedDirectories.ChildItemsCount); // Одна модель на директории, одна модель на файлы. // Сначала директория, потом файл. var childDirectories1 = synchronizedDirectories.ChildItems[0]; Assert.Equal(directoryAndFileName, childDirectories1.LeftItem.Name); Assert.Equal(directoryAndFileName, childDirectories1.RightItem.Name); Assert.NotNull(childDirectories1.RightItem.Directory); Assert.True(childDirectories1.RightItem.IsDirectory); // Даже если элемент отсутствует, а присутствующий является директорией, то и этот должен быть директорией. Assert.Null(childDirectories1.LeftItem.Directory); Assert.True(childDirectories1.LeftItem.IsDirectory); var childDirectories2 = synchronizedDirectories.ChildItems[1]; Assert.Equal(directoryAndFileName, childDirectories2.LeftItem.Name); Assert.Equal(directoryAndFileName, childDirectories2.RightItem.Name); Assert.Null(childDirectories2.LeftItem.Directory); Assert.False(childDirectories2.LeftItem.IsDirectory); Assert.Null(childDirectories2.RightItem.Directory); Assert.False(childDirectories2.RightItem.IsDirectory); } }