public void TestSortingParentDirectory(bool isAscending, SortingMode sortingColumn) { var parentDirectoryViewModel = _autoMocker.CreateInstance <DirectoryViewModel>(); parentDirectoryViewModel.IsParentDirectory = true; var directoryViewModel = _autoMocker.CreateInstance <DirectoryViewModel>(); var comparer = new DirectoryViewModelsComparer(isAscending, sortingColumn); var result = comparer.Compare(parentDirectoryViewModel, directoryViewModel); Assert.True(result < 0); result = comparer.Compare(directoryViewModel, parentDirectoryViewModel); Assert.True(result > 0); }
public void TestThrows() { var comparer = new DirectoryViewModelsComparer(false, (SortingMode)42); var firstViewModel = _autoMocker.CreateInstance <DirectoryViewModel>(); var secondViewModel = _autoMocker.CreateInstance <DirectoryViewModel>(); void Compare() => comparer.Compare(firstViewModel, secondViewModel); Assert.Throws <ArgumentOutOfRangeException>(Compare); }
public int Compare(IFileSystemNodeViewModel x, IFileSystemNodeViewModel y) => (x, y) switch { (FileViewModel a, FileViewModel b) => _filesComparer.Compare(a, b), (DirectoryViewModel a, DirectoryViewModel b) => _directoriesComparer.Compare(a, b), (FileViewModel _, DirectoryViewModel _) => 1, (DirectoryViewModel _, FileViewModel _) => - 1, _ => throw new InvalidOperationException() }; }
public void TestSorting(bool isAscending, SortingMode sortingColumn, bool expected) { var dateTime = DateTime.UtcNow; var firstViewModel = _autoMocker.CreateInstance <DirectoryViewModel>(); firstViewModel.Name = "Camelot"; firstViewModel.LastModifiedDateTime = dateTime; var secondViewModel = _autoMocker.CreateInstance <DirectoryViewModel>(); secondViewModel.Name = "Code"; secondViewModel.LastModifiedDateTime = dateTime.AddDays(1); var comparer = new DirectoryViewModelsComparer(isAscending, sortingColumn); var result = comparer.Compare(firstViewModel, secondViewModel); Assert.Equal(expected, result > 0); result = comparer.Compare(secondViewModel, firstViewModel); Assert.Equal(expected, result < 0); }