示例#1
0
        private void AddSolution([NotNull] SolutionGroup group, Solution solution = null)
        {
            ThrowIfNull(group, nameof(group));

            if (solution == null)
            {
                var path = View.BrowseSolution(group);
                if (!IsNullOrEmpty(path))
                {
                    solution = new Solution(_viewStateProvider, _fileSystem, group, path);
                }
            }
            if (solution == null)
            {
                return;
            }

            solution.ComputeProperties();

            solution.OpenSolutionCanExecute  += solution_OpenSolutionCanExecute;
            solution.OpenSolutionExecuted    += solution_OpenSolutionExecuted;
            solution.AlterSolutionCanExecute += solution_AlterSolutionCanExecute;
            solution.AlterSolutionExecuted   += solution_AlterSolutionExecuted;

            solution.PropertyChanged += Solution_PropertyChanged;

            group.Solutions.Add(solution);
        }
        public void Ctor_Filled()
        {
            // Arrange
            var vsp = Mock.Create <IViewStateProvider>();

            Mock.Arrange(() => vsp.EditModeEnabled).Returns(true);
            var fileSystem = Mock.Create <IFileSystem>();
            var group      = new SolutionGroup(vsp);
            var sln        = new Solution(vsp, fileSystem, group, @"C:\Users\Administrator\foo.sln");

            sln.ComputeProperties();

            // Act
            // Do nothing

            // Assert
            Assert.IsNotNull(sln.ComputedSolutionDirectory);
            Assert.IsTrue(sln.EditModeEnabled);
            Assert.IsNotNull(sln.FileSystem);
            Assert.IsNotNull(sln.ParentGroup);
            Assert.IsTrue(sln.SolutionAvailable);
            Assert.IsNotNull(sln.SolutionDirectory);
            Assert.IsTrue(sln.SolutionDirectoryAvailable);
            Assert.IsNotNull(sln.SolutionDisplayName);
            Assert.IsNotNull(sln.SolutionPath);
            Assert.IsNotNull(sln.ComputedSolutionPath);
            Assert.IsNotNull(sln.ViewStateProvider);
        }
示例#3
0
        private Solution BrowseSolution(SolutionGroup group)
        {
            var ofd = new OpenFileDialog
            {
                CheckFileExists = true,
                CheckPathExists = true,
                DefaultExt      = ".sln",
                Filter          = "Solution (*.sln)|*.sln|" +
                                  "All files (*.*)|*.*",
                AddExtension  = true,
                Multiselect   = false,
                ValidateNames = true,
                Title         = "Browse for solution or other file..."
            };

            if (ofd.ShowDialog() == true)
            {
                return(new Solution(group)
                {
                    SolutionPath = ofd.FileName
                });
            }

            return(null);
        }
示例#4
0
        private void RemoveGroup(SolutionGroup group)
        {
            ThrowIfNull(group, nameof(group));

            group.AlterSolutionGroupCanExecute -= solutionGroup_AlterSolutionGroupCanExecute;
            group.AlterSolutionGroupExecuted   -= solutionGroup_AlterSolutionGroupExecuted;
            ViewModel.SolutionGroups.Remove(group);
        }
示例#5
0
        private SolutionGroup AddGroup(string groupName = "Group Name")
        {
            var newGroup = new SolutionGroup(_viewStateProvider)
            {
                GroupName = groupName ?? Empty
            };

            newGroup.AlterSolutionGroupCanExecute += solutionGroup_AlterSolutionGroupCanExecute;
            newGroup.AlterSolutionGroupExecuted   += solutionGroup_AlterSolutionGroupExecuted;
            ViewModel.SolutionGroups.Add(newGroup);
            return(newGroup);
        }
示例#6
0
        private SolutionGroup AddGroup(string groupName = "Group Name")
        {
            var newGroup = new SolutionGroup
            {
                GroupName = groupName
            };

            newGroup.AlterSolutionGroupCanExecute += solutionGroup_AlterSolutionGroupCanExecute;
            newGroup.AlterSolutionGroupExecuted   += solutionGroup_AlterSolutionGroupExecuted;
            _vm.SolutionGroups.Add(newGroup);
            return(newGroup);
        }
        public void Ctor_Empty()
        {
            // Arrange
            var group = new SolutionGroup();

            // Act
            // Do nothing

            // Assert
            Assert.IsNull(group.ViewStateProvider);
            Assert.IsNull(group.GroupName);
            Assert.IsNull(group.Solutions);
        }
        public void EditModeEnabled_Get()
        {
            // Arrange
            var vsp   = Mock.Create <IViewStateProvider>();
            var group = new SolutionGroup(vsp);

            Mock.Arrange(() => vsp.EditModeEnabled).Returns(true);

            // Act
            // Do nothing

            // Assert
            Assert.IsTrue(group.EditModeEnabled);
        }
        public void Ctor_Filled()
        {
            // Arrange
            var vsp   = Mock.Create <IViewStateProvider>();
            var group = new SolutionGroup(vsp);

            // Act
            // Do nothing

            // Assert
            Assert.AreEqual(vsp, group.ViewStateProvider);
            Assert.AreEqual(String.Empty, group.GroupName);
            Assert.IsNotNull(group.Solutions);
        }
        public void TriggerAlterSolutionGroup_Executed_Subscribed()
        {
            // Arrange
            var group   = new SolutionGroup();
            var invoked = false;

            group.AlterSolutionGroupExecuted += (sender, args) => invoked = true;

            // Act
            group.TriggerAlterSolutionGroup_Executed(null);

            // Assert
            Assert.IsTrue(invoked);
        }
        public void GroupName_GetSet()
        {
            // Arrange
            var group   = new SolutionGroup();
            var invoked = false;

            group.PropertyChanged += (sender, args) => invoked = true;

            // Act
            group.GroupName = "foo";

            // Assert
            Assert.AreEqual("foo", group.GroupName);
            Assert.IsTrue(invoked);
        }
示例#12
0
        public void ParentGroup_GetSet()
        {
            // Arrange
            var sln     = new Solution();
            var invoked = false;

            sln.PropertyChanged += (sender, args) => invoked = true;
            var group = new SolutionGroup();

            // Act
            sln.ParentGroup = group;

            // Assert
            Assert.AreSame(group, sln.ParentGroup);
            Assert.IsFalse(invoked);
        }
        public void ViewStateProvider_GetSet()
        {
            // Arrange
            var group   = new SolutionGroup();
            var invoked = false;

            group.PropertyChanged += (sender, args) => invoked = true;
            var vsp = Mock.Create <IViewStateProvider>();

            // Act
            group.ViewStateProvider = vsp;

            // Assert
            Assert.AreSame(vsp, group.ViewStateProvider);
            Assert.IsFalse(invoked);
        }
        public void ViewStateProvider_GetSet_PropertyChanged()
        {
            // Arrange
            var group   = new SolutionGroup();
            var invoked = false;

            group.PropertyChanged += (sender, args) => invoked = true;
            var vsp = Mock.Create <IViewStateProvider>();

            group.ViewStateProvider = vsp;

            // Act
            Mock.Raise(() => vsp.PropertyChanged += null, new PropertyChangedEventArgs(null));

            // Assert
            Assert.IsTrue(invoked);
        }
示例#15
0
        private void AddSolution(SolutionGroup group, Solution solution = null)
        {
            if (solution == null)
            {
                solution = BrowseSolution(group);
            }
            if (solution == null)
            {
                return;
            }

            solution.OpenSolutionCanExecute  += solution_OpenSolutionCanExecute;
            solution.OpenSolutionExecuted    += solution_OpenSolutionExecuted;
            solution.AlterSolutionCanExecute += solution_AlterSolutionCanExecute;
            solution.AlterSolutionExecuted   += solution_AlterSolutionExecuted;
            group.Solutions.Add(solution);
        }
        public void Solutions_GetSet()
        {
            // Arrange
            var group   = new SolutionGroup();
            var invoked = false;

            group.PropertyChanged += (sender, args) => invoked = true;
            var sln = new Solution();

            // Act
            group.Solutions = new ObservableCollection <Solution> {
                sln
            };

            // Assert
            Assert.AreSame(sln, group.Solutions.Single());
            Assert.IsFalse(invoked);
        }
示例#17
0
        string ISolutionPageView.BrowseSolution(SolutionGroup solutionGroup)
        {
            var ofd = new OpenFileDialog
            {
                CheckFileExists = true,
                CheckPathExists = true,
                DefaultExt      = ".sln",
                Filter          = @"Solution (*.sln)|*.sln|" +
                                  @"All files (*.*)|*.*",
                AddExtension  = true,
                Multiselect   = false,
                ValidateNames = true,
                Title         = @"Browse for solution or other file..."
            };

            return(ofd.ShowDialog() == true
                ? ofd.FileName
                : null);
        }
        public void ApplyViewModel_Success()
        {
            // Arrange
            var config = new SolutionPageConfiguration();
            var vm     = Mock.Create <ISolutionPageViewModel>();
            var group  = new SolutionGroup();

            Mock.Arrange(() => vm.Columns).Returns(2);
            Mock.Arrange(() => vm.SolutionGroups).Returns(new ObservableCollection <SolutionGroup> {
                group
            });

            // Act
            var result = config.ApplyViewModel(vm);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Columns);
            Assert.AreEqual(group, result.SolutionGroups.Single());
        }
 Solution ISolutionPageView.BrowseSolution(SolutionGroup solutionGroup)
 {
     return(RealSubject.BrowseSolution(solutionGroup));
 }
示例#20
0
 private void RemoveGroup(SolutionGroup group)
 {
     group.AlterSolutionGroupCanExecute -= solutionGroup_AlterSolutionGroupCanExecute;
     group.AlterSolutionGroupExecuted   -= solutionGroup_AlterSolutionGroupExecuted;
     _vm.SolutionGroups.Remove(group);
 }