Ejemplo n.º 1
0
        public void SortDescriptionIsReturnedForApplicableSelectedProjectSortOption()
        {
            // Arrange

            var alphabeticalSort = new AlphabeticalSort();

            var preferences = Mock.Of <IUserPreferences>(p =>
                                                         p.DocumentSortOption == Mock.Of <ISortOption>(s =>
                                                                                                       s.HasSortDescription == false) &&
                                                         p.ProjectSortOption == alphabeticalSort);

            var service = new SortOptionsService();

            // Act

            var appliedSortOptions = service.EvaluateAppliedSortDescriptions(
                preferences);

            // Assert

            // Returned collection should only contain sort option for
            // ProjectSortOption: DocumentSortOption.HasSortDescription is set
            // to return false

            Assert.That(appliedSortOptions.Length, Is.EqualTo(1));

            Assert.That(
                appliedSortOptions[0].Direction,
                Is.EqualTo(alphabeticalSort.SortDirection));

            Assert.That(
                appliedSortOptions[0].PropertyName,
                Is.EqualTo(alphabeticalSort.PropertyName));
        }
        public void ProjectSortIsReturnedBeforeDocumentSort()
        {
            // Arrange

            var alphabeticalSort = new AlphabeticalSort();
            var projectReverseAlphabeticalSort = new ProjectReverseAlphabeticalSort();
            var builder = new UserPreferencesBuilder();

            var preferences = builder.CreateUserPreferences();

            preferences.SelectedDocumentSortOption = alphabeticalSort;
            preferences.SelectedProjectSortOption  = projectReverseAlphabeticalSort;

            var service = new SortOptionsService();

            // Act

            var appliedSortOptions = service.EvaluateAppliedSortDescriptions(
                preferences);

            // Assert

            Assert.That(appliedSortOptions.Length, Is.EqualTo(2));

            Assert.That(
                appliedSortOptions[0].Direction,
                Is.EqualTo(projectReverseAlphabeticalSort.SortDirection));

            Assert.That(
                appliedSortOptions[0].PropertyName,
                Is.EqualTo(projectReverseAlphabeticalSort.PropertyName));

            Assert.That(
                appliedSortOptions[1].Direction,
                Is.EqualTo(alphabeticalSort.SortDirection));

            Assert.That(
                appliedSortOptions[1].PropertyName,
                Is.EqualTo(alphabeticalSort.PropertyName));

            Assert.That(
                appliedSortOptions[0].Direction,
                Is.Not.EqualTo(appliedSortOptions[1].Direction));

            Assert.That(
                appliedSortOptions[0].PropertyName,
                Is.Not.EqualTo(appliedSortOptions[1].PropertyName));
        }
        public void AssignedDisplayOrderMatchesSpecifiedOrder()
        {
            // Arrange

            const int disableSortingIndex    = 0;
            const int chronologicalSortIndex = 1;
            const int alphabeticalSortIndex  = 2;

            var displayOrder = new Type[3];

            displayOrder[disableSortingIndex]    = typeof(DisableSorting);
            displayOrder[chronologicalSortIndex] = typeof(ChronologicalSort);
            displayOrder[alphabeticalSortIndex]  = typeof(AlphabeticalSort);

            var alphabeticalSort  = new AlphabeticalSort();
            var chronologicalSort = new ChronologicalSort();
            var disableSorting    = new DisableSorting();

            var sortOptions = new ISortOption[]
            {
                // Order should be different from indexes specified above
                alphabeticalSort,
                chronologicalSort,
                disableSorting
            };

            var service = new SortOptionsService();

            // Act

            service.AssignDisplayOrder(displayOrder, sortOptions);

            // Assert

            Assert.That(
                disableSorting.DisplayIndex,
                Is.EqualTo(disableSortingIndex));

            Assert.That(
                chronologicalSort.DisplayIndex,
                Is.EqualTo(chronologicalSortIndex));

            Assert.That(
                alphabeticalSort.DisplayIndex,
                Is.EqualTo(alphabeticalSortIndex));
        }
Ejemplo n.º 4
0
        public void ProjectSortIsReturnedBeforeDocumentSort()
        {
            // Arrange

            var alphabeticalSort = new AlphabeticalSort();
            var projectReverseAlphabeticalSort = new ProjectReverseAlphabeticalSort();

            var preferences = Mock.Of <IUserPreferences>(p =>
                                                         p.DocumentSortOption == alphabeticalSort &&
                                                         p.ProjectSortOption == projectReverseAlphabeticalSort);

            var service = new SortOptionsService();

            // Act

            var appliedSortOptions = service.EvaluateAppliedSortDescriptions(
                preferences);

            // Assert

            Assert.That(appliedSortOptions.Length, Is.EqualTo(2));

            Assert.That(
                appliedSortOptions[0].Direction,
                Is.EqualTo(projectReverseAlphabeticalSort.SortDirection));

            Assert.That(
                appliedSortOptions[0].PropertyName,
                Is.EqualTo(projectReverseAlphabeticalSort.PropertyName));

            Assert.That(
                appliedSortOptions[1].Direction,
                Is.EqualTo(alphabeticalSort.SortDirection));

            Assert.That(
                appliedSortOptions[1].PropertyName,
                Is.EqualTo(alphabeticalSort.PropertyName));

            Assert.That(
                appliedSortOptions[0].Direction,
                Is.Not.EqualTo(appliedSortOptions[1].Direction));

            Assert.That(
                appliedSortOptions[0].PropertyName,
                Is.Not.EqualTo(appliedSortOptions[1].PropertyName));
        }
        public void SortDescriptionIsReturnedForApplicableSelectedProjectSortOption()
        {
            // Arrange

            var alphabeticalSort = new AlphabeticalSort();

            var builder     = new UserPreferencesBuilder();
            var preferences = builder.CreateUserPreferences();

            preferences.SelectedDocumentSortOption = Mock.Of <ISortOption>(s =>
                                                                           s.HasSortDescription == false);

            preferences.SelectedProjectSortOption = alphabeticalSort;

            var service = new SortOptionsService();

            // Act

            var appliedSortOptions = service.EvaluateAppliedSortDescriptions(
                preferences);

            // Assert

            // Returned collection should only contain sort option for
            // SelectedProjectSortOption: the ISortOption of
            // SelectedDocumentSortOption has its HasSortDescription property
            // set to return false

            Assert.That(appliedSortOptions.Length, Is.EqualTo(1));

            Assert.That(
                appliedSortOptions[0].Direction,
                Is.EqualTo(alphabeticalSort.SortDirection));

            Assert.That(
                appliedSortOptions[0].PropertyName,
                Is.EqualTo(alphabeticalSort.PropertyName));
        }