public void AddRemovePathsTest() { var setting = new PreferenceSettings() { CustomPackageFolders = { @"Z:\" } }; var vm = new PackagePathViewModel(setting); var path = string.Empty; vm.RequestShowFileDialog += (sender, args) => { args.Path = path; }; path = @"C:\"; vm.AddPathCommand.Execute(null); path = @"D:\"; vm.AddPathCommand.Execute(null); Assert.AreEqual(0, vm.SelectedIndex); Assert.AreEqual(@"C:\", vm.RootLocations[1]); Assert.AreEqual(@"D:\", vm.RootLocations[2]); vm.SelectedIndex = 2; vm.DeletePathCommand.Execute(0); Assert.AreEqual(1, vm.SelectedIndex); Assert.AreEqual(@"C:\", vm.RootLocations[0]); Assert.AreEqual(@"D:\", vm.RootLocations[1]); }
public void CannotDeletePathIfThereIsOnlyOne() { var setting = new PreferenceSettings { CustomPackageFolders = { @"C:\" } }; var vm = new PackagePathViewModel(setting); Assert.AreEqual(1, vm.RootLocations.Count); Assert.IsFalse(vm.DeletePathCommand.CanExecute(null)); }
public void IfPathsAreUnchangedPackagesAreNotReloaded() { var count = 0; var setting = new PreferenceSettings() { CustomPackageFolders = { @"Z:\" } }; var pathManager = new Mock <IPathManager>(); pathManager.SetupGet(x => x.PackagesDirectories).Returns( () => setting.CustomPackageFolders); PackageLoader loader = new PackageLoader(pathManager.Object); loader.PackagesLoaded += Loader_PackagesLoaded; LoadPackageParams loadParams = new LoadPackageParams { Preferences = setting, }; CustomNodeManager customNodeManager = Model.CustomNodeManager; var vm = new PackagePathViewModel(loader, loadParams, customNodeManager); vm.SaveSettingCommand.Execute(null); //should not have reloaded anything. Assert.AreEqual(0, count); var path = string.Empty; vm.RequestShowFileDialog += (sender, args) => { args.Path = path; }; path = Path.Combine(GetTestDirectory(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)), "pkgs"); //add the new path vm.AddPathCommand.Execute(null); //save the new path vm.SaveSettingCommand.Execute(null); //should have loaded something. Assert.AreEqual(10, count); //commit the paths again. vm.SaveSettingCommand.Execute(null); //should not have loaded anything. Assert.AreEqual(10, count); void Loader_PackagesLoaded(System.Collections.Generic.IEnumerable <Assembly> obj) { count = count + obj.Count(); } loader.PackagesLoaded -= Loader_PackagesLoaded; }
internal PackagePathView(PackagePathViewModel viewModel) { if (viewModel == null) { throw new ArgumentNullException("viewModel"); } InitializeComponent(); this.DataContext = viewModel; viewModel.RequestShowFileDialog += OnRequestShowFileDialog; viewModel.PropertyChanged += OnPropertyChanged; UpdateVisualToReflectSelectionState(); PreviewKeyDown += OnPackagePathDialogKeyDown; }
public void ReorderingPathsTest() { var setting = new PreferenceSettings { CustomPackageFolders = { @"C:\", @"D:\", @"E:\" } }; var vm = new PackagePathViewModel(setting); Assert.AreEqual(0, vm.SelectedIndex); Assert.IsTrue(vm.MovePathDownCommand.CanExecute(null)); Assert.IsFalse(vm.MovePathUpCommand.CanExecute(null)); vm.SelectedIndex = 2; Assert.AreEqual(2, vm.SelectedIndex); Assert.IsTrue(vm.MovePathUpCommand.CanExecute(null)); Assert.IsFalse(vm.MovePathDownCommand.CanExecute(null)); vm.SelectedIndex = 1; Assert.AreEqual(1, vm.SelectedIndex); Assert.IsTrue(vm.MovePathUpCommand.CanExecute(null)); Assert.IsTrue(vm.MovePathDownCommand.CanExecute(null)); vm.MovePathUpCommand.Execute(vm.SelectedIndex); Assert.AreEqual(0, vm.SelectedIndex); Assert.AreEqual(@"D:\", vm.RootLocations[0]); Assert.AreEqual(@"C:\", vm.RootLocations[1]); Assert.AreEqual(@"E:\", vm.RootLocations[2]); vm.SelectedIndex = 1; vm.MovePathDownCommand.Execute(vm.SelectedIndex); Assert.AreEqual(2, vm.SelectedIndex); Assert.AreEqual(@"D:\", vm.RootLocations[0]); Assert.AreEqual(@"E:\", vm.RootLocations[1]); Assert.AreEqual(@"C:\", vm.RootLocations[2]); }