예제 #1
0
        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);
        }
예제 #2
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);
        }
예제 #3
0
    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()
    };
}
예제 #4
0
        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);
        }