public void SettingSelectedDocumentSortOptionToDifferentValueRaisesPropertyChanged()
        {
            // Arrange

            var propertyChangedRaised = false;

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

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

            preferences.SelectedDocumentSortOption = new AlphabeticalSort();
            preferences.PropertyChanged           += handler;

            // Act

            preferences.SelectedDocumentSortOption = new ChronologicalSort();
            preferences.PropertyChanged           -= handler;

            // Assert

            Assert.IsTrue(propertyChangedRaised);
        }
        public void SettingPathSegmentCountToDifferentValueRaisesPropertyChanged()
        {
            // Arrange

            var propertyChangedRaised = false;

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

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

            preferences.PropertyChanged += handler;

            // Act

            preferences.PathSegmentCount = 7;
            preferences.PropertyChanged -= handler;

            // Assert

            Assert.IsTrue(propertyChangedRaised);
        }
Ejemplo n.º 3
0
        public void HighlightFileNameValueIsRestoredOnInstanceCreation()
        {
            // Arrange

            const bool highlightFileName = true;

            var builder = new UserPreferencesBuilder();

            builder.UserPreferencesModelRepositoryMock
            .Setup(u => u.LoadInto(It.IsAny <IUserPreferencesModel>()))
            .Callback <IUserPreferencesModel>(u =>
            {
                u.HighlightFileName = highlightFileName;
            });

            // Act

            var preferences = builder.CreateUserPreferences();

            // Assert

            builder.UserPreferencesModelRepositoryMock
            .Verify(u => u.LoadInto(preferences),
                    Times.Once());

            builder.StoredSettingsRepositoryMock
            .Verify(s => s.SetHighlightFileName(
                        It.IsAny <bool>()),
                    Times.Never);

            Assert.That(preferences.HighlightFileName, Is.EqualTo(highlightFileName));
        }
Ejemplo n.º 4
0
        public void GroupByProjectValueIsRestoredOnInstanceCreation()
        {
            // Arrange

            const bool groupByProject = true;

            var builder = new UserPreferencesBuilder();

            builder.UserPreferencesModelRepositoryMock
            .Setup(u => u.LoadInto(It.IsAny <IUserPreferencesModel>()))
            .Callback <IUserPreferencesModel>(u =>
            {
                u.GroupByProject = groupByProject;
            });

            // Act

            var preferences = builder.CreateUserPreferences();

            // Assert

            builder.UserPreferencesModelRepositoryMock
            .Verify(u => u.LoadInto(preferences),
                    Times.Once());

            builder.StoredSettingsRepositoryMock
            .Verify(s => s.SetGroupByProject(
                        It.IsAny <bool>()),
                    Times.Never);

            Assert.That(preferences.GroupByProject, Is.EqualTo(groupByProject));
        }
        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);
        }
Ejemplo n.º 6
0
        public void ShowFileTypeIconsValueIsRestoredOnInstanceCreation()
        {
            // Arrange

            const bool showFileTypeIcons = true;

            var builder = new UserPreferencesBuilder();

            builder.UserPreferencesModelRepositoryMock
            .Setup(u => u.LoadInto(It.IsAny <IUserPreferencesModel>()))
            .Callback <IUserPreferencesModel>(u =>
            {
                u.ShowFileTypeIcons = showFileTypeIcons;
            });

            // Act

            var preferences = builder.CreateUserPreferences();

            // Assert

            builder.UserPreferencesModelRepositoryMock
            .Verify(u => u.LoadInto(preferences),
                    Times.Once());

            builder.StoredSettingsRepositoryMock
            .Verify(s => s.SetShowFileTypeIcons(
                        It.IsAny <bool>()),
                    Times.Never);

            Assert.That(preferences.ShowFileTypeIcons, Is.EqualTo(showFileTypeIcons));
        }
        public void SettingPathSegmentCountToSameValueDoesNotRaisePropertyChanged()
        {
            // Arrange

            const int pathSegmentCount      = 7;
            var       propertyChangedRaised = false;

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

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

            preferences.PathSegmentCount = pathSegmentCount;
            preferences.PropertyChanged += handler;

            // Act

            preferences.PathSegmentCount = pathSegmentCount;
            preferences.PropertyChanged -= handler;

            // Assert

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

            const bool showFileTypeIcons     = true;
            var        propertyChangedRaised = false;

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

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

            preferences.ShowFileTypeIcons = showFileTypeIcons;
            preferences.PropertyChanged  += handler;

            // Act

            preferences.ShowFileTypeIcons = showFileTypeIcons;
            preferences.PropertyChanged  -= handler;

            // Assert

            Assert.IsFalse(propertyChangedRaised);
        }
Ejemplo n.º 9
0
        public void UnityRefreshDelayValueIsRestoredOnInstanceCreation()
        {
            // Arrange

            const int value = 100;

            var builder = new UserPreferencesBuilder();

            builder.UserPreferencesModelRepositoryMock
            .Setup(u => u.LoadInto(It.IsAny <IUserPreferencesModel>()))
            .Callback <IUserPreferencesModel>(u =>
            {
                u.UnityRefreshDelay = value;
            });

            // Act

            var preferences = builder.CreateUserPreferences();

            // Assert

            builder.UserPreferencesModelRepositoryMock
            .Verify(u => u.LoadInto(preferences),
                    Times.Once());

            builder.StoredSettingsRepositoryMock
            .Verify(s => s.SetUnityRefreshDelay(
                        It.IsAny <int>()),
                    Times.Never);

            Assert.That(preferences.UnityRefreshDelay, Is.EqualTo(value));
        }
Ejemplo n.º 10
0
        public void ProjectSortOptionNameIsRestoredOnInstanceCreation()
        {
            // Arrange

            const string displayName = "DisplayName";

            var builder = new UserPreferencesBuilder();

            builder.UserPreferencesModelRepositoryMock
            .Setup(u => u.LoadInto(It.IsAny <IUserPreferencesModel>()))
            .Callback <IUserPreferencesModel>(u =>
            {
                u.ProjectSortOptionName = displayName;
            });

            // Act

            var preferences = builder.CreateUserPreferences();

            // Assert

            builder.UserPreferencesModelRepositoryMock
            .Verify(u => u.LoadInto(preferences),
                    Times.Once());

            builder.StoredSettingsRepositoryMock
            .Verify(s => s.SetProjectSortOptionName(
                        It.IsAny <string>()),
                    Times.Never);

            Assert.That(preferences.ProjectSortOptionName, Is.EqualTo(displayName));
        }
        public void SettingAssignProjectColoursToSameValueDoesNotRaisePropertyChanged()
        {
            // Arrange

            const bool assignProjectColours  = true;
            var        propertyChangedRaised = false;

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

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

            preferences.AssignProjectColours = assignProjectColours;
            preferences.PropertyChanged     += handler;

            // Act

            preferences.AssignProjectColours = assignProjectColours;
            preferences.PropertyChanged     -= handler;

            // Assert

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

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

            preferences.GroupByProject = true;

            var collection = new DocumentMetadata[0];
            var view       = new ListCollectionView(collection);

            var reaction = new GroupByProjectReaction();

            // Act

            reaction.UpdateCollection(view, preferences);

            // Assert

            Assert.That(view.GroupDescriptions.Count, Is.EqualTo(1));

            var          description  = (PropertyGroupDescription)view.GroupDescriptions[0];
            const string propertyName = nameof(DocumentMetadata.ProjectNames);

            Assert.That(description.PropertyName, Is.EqualTo(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));
        }
Ejemplo n.º 14
0
        public void SettingShowSearchBarSetsVisibility(bool value, Visibility expected)
        {
            // Arrange

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

            preferences.ShowSearchBar = !value;

            // Act

            preferences.ShowSearchBar = value;

            // Verify

            Assert.That(preferences.SearchBarVisibility, Is.EqualTo(expected));
        }
Ejemplo n.º 15
0
        public void SettingAssignProjectColoursStoresNewValueInRepository()
        {
            // Arrange

            const bool assignProjectColours = true;

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

            // Act

            preferences.AssignProjectColours = assignProjectColours;

            // Verify

            builder.StoredSettingsRepositoryMock
            .Verify(r => r.SetAssignProjectColours(assignProjectColours));
        }
Ejemplo n.º 16
0
        public void SettingProjectSortOptionNameStoresNewValueInRepository()
        {
            // Arrange

            const string sortOptionName = "SortOptionName";

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

            // Act

            preferences.ProjectSortOptionName = sortOptionName;

            // Verify

            builder.StoredSettingsRepositoryMock
            .Verify(r => r.SetProjectSortOptionName(sortOptionName));
        }
Ejemplo n.º 17
0
        public void SettingUnityRefreshDelayStoresNewValueInRepository()
        {
            // Arrange

            const int value = 50;

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

            // Act

            preferences.UnityRefreshDelay = value;

            // Verify

            builder.StoredSettingsRepositoryMock
            .Verify(r => r.SetUnityRefreshDelay(value));
        }
Ejemplo n.º 18
0
        public void SettingShowFileTypeIconsStoresNewValueInRepository()
        {
            // Arrange

            const bool showFileTypeIcons = true;

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

            // Act

            preferences.ShowFileTypeIcons = showFileTypeIcons;

            // Verify

            builder.StoredSettingsRepositoryMock
            .Verify(r => r.SetShowFileTypeIcons(showFileTypeIcons));
        }
Ejemplo n.º 19
0
        public void SettingShowRecentUsageStoresNewValueInRepository()
        {
            // Arrange

            const bool showRecentUsage = true;

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

            // Act

            preferences.ShowRecentUsage = showRecentUsage;

            // Verify

            builder.StoredSettingsRepositoryMock
            .Verify(r => r.SetShowRecentUsage(showRecentUsage));
        }
Ejemplo n.º 20
0
        public void SettingGroupByProjectStoresNewValueInRepository()
        {
            // Arrange

            const bool groupByProject = true;

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

            // Act

            preferences.GroupByProject = groupByProject;

            // Verify

            builder.StoredSettingsRepositoryMock
            .Verify(r => r.SetGroupByProject(groupByProject));
        }
Ejemplo n.º 21
0
        public void SettingPathSegmentCountStoresNewValueInRepository()
        {
            // Arrange

            const int value = 5;

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

            // Act

            preferences.PathSegmentCount = value;

            // Verify

            builder.StoredSettingsRepositoryMock
            .Verify(r => r.SetPathSegmentCount(value));
        }
Ejemplo n.º 22
0
        public void SettingHighlightFileNameStoresNewValueInRepository()
        {
            // Arrange

            const bool highlightFileName = true;

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

            // Act

            preferences.HighlightFileName = highlightFileName;

            // Verify

            builder.StoredSettingsRepositoryMock
            .Verify(r => r.SetHighlightFileName(highlightFileName));
        }
        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));
        }
Ejemplo n.º 24
0
        public void SettingShowSearchBarStoresNewValueInRepository()
        {
            // Arrange

            const bool showSearchBar = true;

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

            preferences.ShowSearchBar = false;

            // Act

            preferences.ShowSearchBar = showSearchBar;

            // Verify

            builder.StoredSettingsRepositoryMock
            .Verify(r => r.SetShowSearchBar(showSearchBar));
        }
        public void GroupDescriptionsAreEmptyWhenGroupByProjectIsFalse()
        {
            // Arrange

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

            preferences.GroupByProject = false;

            var collection = new DocumentMetadata[0];
            var view       = new ListCollectionView(collection);

            var reaction = new GroupByProjectReaction();

            // Act

            reaction.UpdateCollection(view, preferences);

            // Assert

            Assert.That(view.GroupDescriptions, Is.Empty);
        }
        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));
        }
        public void GroupByProjectValueIsRestoredOnInstanceCreation()
        {
            // Arrange

            const bool groupByProject = true;

            var builder = new UserPreferencesBuilder();

            builder.StoredSettingsRepositoryMock
            .Setup(s => s.GetGroupByProject())
            .Returns(groupByProject);

            // Act

            var preferences = builder.CreateUserPreferences();

            // Assert

            builder.StoredSettingsRepositoryMock
            .Verify(s => s.GetGroupByProject());

            Assert.That(preferences.GroupByProject, Is.EqualTo(groupByProject));
        }
        public void AssignProjectColoursValueIsRestoredOnInstanceCreation()
        {
            // Arrange

            const bool assignProjectColours = true;

            var builder = new UserPreferencesBuilder();

            builder.StoredSettingsRepositoryMock
            .Setup(s => s.GetAssignProjectColours())
            .Returns(assignProjectColours);

            // Act

            var preferences = builder.CreateUserPreferences();

            // Assert

            builder.StoredSettingsRepositoryMock
            .Verify(s => s.GetAssignProjectColours());

            Assert.That(preferences.AssignProjectColours, Is.EqualTo(assignProjectColours));
        }
        public void ShowFileTypeIconsValueIsRestoredOnInstanceCreation()
        {
            // Arrange

            const bool showFileTypeIcons = true;

            var builder = new UserPreferencesBuilder();

            builder.StoredSettingsRepositoryMock
            .Setup(s => s.GetShowFileTypeIcons())
            .Returns(showFileTypeIcons);

            // Act

            var preferences = builder.CreateUserPreferences();

            // Assert

            builder.StoredSettingsRepositoryMock
            .Verify(s => s.GetShowFileTypeIcons());

            Assert.That(preferences.ShowFileTypeIcons, Is.EqualTo(showFileTypeIcons));
        }
        public void PathSegmentCountValueIsRestoredOnInstanceCreation()
        {
            // Arrange

            const int value = 47;

            var builder = new UserPreferencesBuilder();

            builder.StoredSettingsRepositoryMock
            .Setup(s => s.GetPathSegmentCount())
            .Returns(value);

            // Act

            var preferences = builder.CreateUserPreferences();

            // Assert

            builder.StoredSettingsRepositoryMock
            .Verify(s => s.GetPathSegmentCount());

            Assert.That(preferences.PathSegmentCount, Is.EqualTo(value));
        }