public void SettingSelectedProjectSortOptionToSameValueDoesNotRaisePropertyChanged()
        {
            // Arrange

            var alphabeticalSort      = new AlphabeticalSort();
            var propertyChangedRaised = false;

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

            var handler = new PropertyChangedEventHandler((s, e) =>
            {
                propertyChangedRaised = true;
            });

            preferences.SelectedProjectSortOption = alphabeticalSort;
            preferences.PropertyChanged          += handler;

            // Act

            preferences.SelectedProjectSortOption = alphabeticalSort;
            preferences.PropertyChanged          -= handler;

            // Assert

            Assert.IsFalse(propertyChangedRaised);
        }
        public void BeginningOfAlphabetAppearsAtStartOfSortedList()
        {
            // Arrange

            const string displayNameA = "A";

            var metadataList = new List <DocumentMetadata>
            {
                CreateDocumentMetadata("B"),
                CreateDocumentMetadata("C"),
                CreateDocumentMetadata(displayNameA)
            };

            var sortOption      = new AlphabeticalSort();
            var sortDescription = sortOption.GetSortDescription();
            var view            = new ListCollectionView(metadataList);

            // Act

            view.SortDescriptions.Add(sortDescription);

            // Assert

            view.MoveCurrentToFirst();
            var firstItem = (DocumentMetadata)view.CurrentItem;

            Assert.That(firstItem.DisplayName, Is.EqualTo(displayNameA));
        }
Beispiel #3
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 HasSortDescriptionIsTrue()
        {
            // Arrange

            var sortOption = new AlphabeticalSort();

            // Assert

            Assert.IsTrue(sortOption.HasSortDescription);
        }
Beispiel #5
0
        public void BeforeEachTest()
        {
            _alphabeticalAlgorithm = Substitute.For <AlphabeticalSort>();
            _randomAlgorithm       = Substitute.For <RandomSort>();

            _sorter = new SessionSorter(_alphabeticalAlgorithm, _randomAlgorithm);

            _sessions = new List <SessionDisplayModel>();
            _sessions.Add(new SessionDisplayModel());
            _sessions.Add(new SessionDisplayModel());
            _sessions.Add(new SessionDisplayModel());
        }
        public void ApplicableTypeIsCorrect()
        {
            // Arrange

            var sortOption = new AlphabeticalSort();

            // Act

            var isDocumentType =
                sortOption.ApplicableType == ProjectItemType.Document;

            // Assert

            Assert.IsTrue(isDocumentType);
        }
        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));
        }
Beispiel #9
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 DocumentSortOptionsAppearInSpecifiedOrder()
        {
            // Arrange

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

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

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

            var displayOrder = new Type[2];

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

            // Act

            var builder = new OptionsListsBuilder
            {
                SortOptions             = options,
                SortOptionsDisplayOrder = displayOrder,
                SortOptionsService      = new SortOptionsService()
            };

            var lists = builder.CreateOptionsLists();

            // Assert

            Assert.That(lists.DocumentSortOptions.Count, Is.EqualTo(2));

            Assert.That(
                lists.DocumentSortOptions[chronologicalSortIndex],
                Is.EqualTo(chronologicalSort));

            Assert.That(
                lists.DocumentSortOptions[alphabeticalSortIndex],
                Is.EqualTo(alphabeticalSort));
        }
        public void SettingSelectedProjectSortOptionStoresNewValueDisplayNameInRepository()
        {
            // Arrange

            var option = new AlphabeticalSort();

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

            // Act

            preferences.SelectedProjectSortOption = option;

            // Verify

            var typeString = option.ToString();

            builder.StoredSettingsRepositoryMock
            .Verify(r => r.SetSelectedProjectSortType(typeString));
        }
        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));
        }