コード例 #1
0
        public PackageManagerSearchView(PackageManagerSearchViewModel pm)
        {

            this.DataContext = pm;
            InitializeComponent();

        }
コード例 #2
0
        public void FormatPackageVersionList_CorrectlyFormatsMultipleElements()
        {
            IEnumerable <Tuple <PackageHeader, PackageVersion> > l = new []
            {
                new Tuple <PackageHeader, PackageVersion>(
                    new PackageHeader()
                {
                    name = "Foo"
                },
                    new PackageVersion()
                {
                    version = "0.1.0"
                }),
                new Tuple <PackageHeader, PackageVersion>(
                    new PackageHeader()
                {
                    name = "Bar"
                },
                    new PackageVersion()
                {
                    version = "1.2.3"
                })
            };

            var e =
                @"Foo 0.1.0
Bar 1.2.3";

            Assert.AreEqual(e, PackageManagerSearchViewModel.FormatPackageVersionList(l));
        }
コード例 #3
0
        /// <summary>
        /// This method is subscribed to the PropertyChanged event so we will be notified when the SearchState changed
        /// </summary>
        /// <param name="sender">PackageManagerSearchViewModel</param>
        /// <param name="e">PropertyChanged</param>
        private static void PackageManagerViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e, StepUIAutomation uiAutomationData)
        {
            PackageManagerSearchViewModel packageManagerViewModel = sender as PackageManagerSearchViewModel;

            if (packageManagerViewModel == null)
            {
                return;
            }
            if (e.PropertyName == nameof(packageManagerViewModel.SearchState))
            {
                //Let wait until the initial Package Search is completed and we got results then we will search the Autodesk Sample package
                if (packageManagerViewModel.SearchState == PackageSearchState.Results)
                {
                    //Put the name of the Package to be searched in the SearchTextBox
                    packageManagerViewModel.SearchText = AutodeskSamplePackage;

                    searchPackagesLoaded = true;

                    EnableNextButton(null, uiAutomationData, true, GuideFlow.FORWARD);
                    packageManagerViewModel.DisableSearchTextBox();

                    //Unsubscribe from the PropertyChanged event otherwise it will enter everytime the SearchTextBox is updated
                    packageManagerViewModel.PropertyChanged -= searchPackagesPropertyChanged.Invoke;
                }
            }
        }
コード例 #4
0
        public PackageManagerSearchView(PackageManagerSearchViewModel pm)
        {
            this.DataContext = pm;
            InitializeComponent();

            pm.RequestShowFileDialog += OnRequestShowFileDialog;
        }
コード例 #5
0
        public PackageManagerSearchView(PackageManagerSearchViewModel pm)
        {
            this.DataContext = pm;
            InitializeComponent();

            pm.RequestShowFileDialog += OnRequestShowFileDialog;
        }
コード例 #6
0
        void DynamoViewModelRequestShowPackageManagerSearch(object s, EventArgs e)
        {
            if (_pkgSearchVM == null)
            {
                _pkgSearchVM = new PackageManagerSearchViewModel(dynamoViewModel.PackageManagerClientViewModel);
            }

            if (_searchPkgsView == null)
            {
                _searchPkgsView = new PackageManagerSearchView(_pkgSearchVM)
                {
                    Owner = this,
                    WindowStartupLocation = WindowStartupLocation.CenterOwner
                };

                _searchPkgsView.Closed += (sender, args) => _searchPkgsView = null;
                _searchPkgsView.Show();

                if (_searchPkgsView.IsLoaded && IsLoaded)
                {
                    _searchPkgsView.Owner = this;
                }
            }

            _searchPkgsView.Focus();
            _pkgSearchVM.RefreshAndSearchAsync();
        }
コード例 #7
0
        public PackageManagerSearchView(PackageManagerSearchViewModel pm)
        {
            this.DataContext = pm;
            InitializeComponent();

            pm.RequestShowFileDialog += OnRequestShowFileDialog;
            Logging.Analytics.TrackScreenView("PackageManager");
        }
コード例 #8
0
        public PackageManagerSearchView(PackageManagerSearchViewModel pm)
        {
            this.Owner = dynSettings.Bench;
            this.WindowStartupLocation = WindowStartupLocation.CenterOwner;

            this.DataContext = pm;
            InitializeComponent();
        }
コード例 #9
0
        public PackageManagerSearchView(PackageManagerSearchViewModel pm)
        {
            this.DataContext = pm;
            InitializeComponent();

            pm.RequestShowFileDialog += OnRequestShowFileDialog;
            Logging.Analytics.TrackScreenView("PackageManager");
        }
コード例 #10
0
        public PackageManagerSearchView(PackageManagerSearchViewModel pm)
        {
            this.Owner = dynSettings.Bench;
            this.WindowStartupLocation = WindowStartupLocation.CenterOwner;

            this.DataContext = pm;
            InitializeComponent();
        }
コード例 #11
0
 public PackageManagerSearchView(PackageManagerSearchViewModel pm)
 {
     ViewModel        = pm;
     this.DataContext = ViewModel;
     InitializeComponent();
     ViewModel.RegisterTransientHandlers();
     ViewModel.RequestShowFileDialog += OnRequestShowFileDialog;
     Logging.Analytics.TrackScreenView("PackageManager");
 }
コード例 #12
0
        public PackageManagerSearchView(PackageManagerSearchViewModel pm)
        {
            //this.Owner = dynSettings.Bench;
            this.Owner = WPF.FindUpVisualTree <DynamoView>(this);
            this.WindowStartupLocation = WindowStartupLocation.CenterOwner;

            this.DataContext = pm;
            InitializeComponent();
        }
コード例 #13
0
 void _vm_RequestShowPackageManagerSearch(object s, EventArgs e)
 {
     if (_searchPkgsView == null)
     {
         var pms = new PackageManagerSearchViewModel(dynSettings.PackageManagerClient);
         _searchPkgsView         = new PackageManagerSearchView(pms);
         _searchPkgsView.Closed += (sender, args) => _searchPkgsView = null;
         _searchPkgsView.Show();
     }
     _searchPkgsView.Focus();
 }
コード例 #14
0
        internal static bool IsPackageInstalled(PackageManagerSearchViewModel viewModel = null)
        {
            if (viewModel == null)
            {
                return(true);
            }

            bool canInstall = viewModel.CanInstallPackage(AutodeskSamplePackage);

            return(!canInstall);
        }
コード例 #15
0
        /// <summary>
        /// This method will find the PackageManagerSearch window and then close it
        /// </summary>
        /// <param name="packageManager"></param>
        private static void ClosePackageManager(PackageManagerSearchView packageManager)
        {
            PackageManagerSearchViewModel packageManagerViewModel = packageManager.DataContext as PackageManagerSearchViewModel;

            if (packageManagerViewModel == null)
            {
                return;
            }
            packageManagerViewModel.PropertyChanged -= PackageManagerViewModel_PropertyChanged;
            packageManager.Close();
        }
コード例 #16
0
        public void PackageSearchDialogSearchTextCollapsedWhileSyncing()
        {
            // Arrange
            PackageManagerSearchViewModel searchViewModel = new PackageManagerSearchViewModel();

            // Act
            searchViewModel.SearchState = PackageManagerSearchViewModel.PackageSearchState.Syncing;

            // Assert
            Assert.AreEqual(false, searchViewModel.ShowSearchText);
        }
コード例 #17
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="pm"></param>
 public PackageManagerSearchView(PackageManagerSearchViewModel pm)
 {
     ViewModel = pm;
     this.DataContext = ViewModel;
     pm.PackageManagerClientViewModel.Owner = this;
     InitializeComponent();
     ViewModel.RegisterTransientHandlers();
     ViewModel.RequestShowFileDialog += OnRequestShowFileDialog;
     ViewModel.RequestDisableTextSearch += ViewModel_RequestDisableTextSearch;
     Logging.Analytics.TrackScreenView("PackageManager");
 }
コード例 #18
0
        public void PackageSearchDialogSearchTextVisibleWhenNoResults()
        {
            // Arrange
            PackageManagerSearchViewModel searchViewModel = new PackageManagerSearchViewModel();

            // Act
            searchViewModel.SearchState = PackageManagerSearchViewModel.PackageSearchState.NoResults;

            // Assert
            Assert.AreEqual(true, searchViewModel.ShowSearchText);
        }
コード例 #19
0
        public void PackageSearchDialogSearchBoxPromptTextWhenNotSyncing()
        {
            // Arrange
            PackageManagerSearchViewModel searchViewModel = new PackageManagerSearchViewModel();

            // Act
            searchViewModel.SearchState = PackageManagerSearchViewModel.PackageSearchState.Results;

            // Assert
            Assert.AreEqual(Dynamo.Wpf.Properties.Resources.PackageSearchViewSearchTextBox, searchViewModel.SearchBoxPrompt);
        }
コード例 #20
0
        /// <summary>
        /// This method is subscribed to the PropertyChanged event so we will be notified when the SearchState changed
        /// </summary>
        /// <param name="sender">PackageManagerSearchViewModel</param>
        /// <param name="e">PropertyChanged</param>
        private static void PackageManagerViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            PackageManagerSearchViewModel packageManagerViewModel = sender as PackageManagerSearchViewModel;

            if (packageManagerViewModel == null)
            {
                return;
            }
            if (e.PropertyName == nameof(packageManagerViewModel.SearchState))
            {
                //Let wait until the initial Package Search is completed and we got results then we will search the Autodesk Sample package
                if (packageManagerViewModel.SearchState == PackageSearchState.Results)
                {
                    //Put the name of the Package to be searched in the SearchTextBox
                    packageManagerViewModel.SearchText = AutodeskSamplePackage;

                    //Unsubscribe from the PropertyChanged event otherwise it will enter everytime the SearchTextBox is updated
                    packageManagerViewModel.PropertyChanged -= PackageManagerViewModel_PropertyChanged;
                }
            }
        }
コード例 #21
0
        /// <summary>
        /// This method will be executed when passing from Step 6 to Step 7 in the Packages guide, so it will subscribe the install button event
        /// </summary>
        /// <param name="stepInfo"></param>
        /// <param name="uiAutomationData"></param>
        /// <param name="enableFunction"></param>
        /// <param name="currentFlow"></param>
        internal static void ExecuteInstallPackagesFlow(Step stepInfo, StepUIAutomation uiAutomationData, bool enableFunction, GuideFlow currentFlow)
        {
            CurrentExecutingStep = stepInfo;
            Window ownedWindow = Guide.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window);


            if (enableFunction)
            {
                if (ownedWindow != null)
                {
                    viewModel = ownedWindow.DataContext as PackageManagerSearchViewModel;
                }

                Button buttonElement = Guide.FindChild(ownedWindow, stepInfo.HostPopupInfo.HostUIElementString) as Button;
                viewModel.PackageManagerClientViewModel.Downloads.CollectionChanged += Downloads_CollectionChanged;
            }
            else
            {
                //Tries to close the TermsOfUseView or the PackageManagerSearchView if they were opened previously
                Guide.CloseWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window);
            }
        }
コード例 #22
0
ファイル: DynamoView.xaml.cs プロジェクト: seannguyen/Dynamo
        void _vm_RequestShowPackageManagerSearch(object s, EventArgs e)
        {
            if (_pkgSearchVM == null)
            {
                _pkgSearchVM = new PackageManagerSearchViewModel(dynSettings.PackageManagerClient);
            }

            if (_searchPkgsView == null)
            {
                _searchPkgsView         = new PackageManagerSearchView(_pkgSearchVM);
                _searchPkgsView.Closed += (sender, args) => _searchPkgsView = null;
                _searchPkgsView.Show();

                if (_searchPkgsView.IsLoaded && this.IsLoaded)
                {
                    _searchPkgsView.Owner = this;
                }
            }

            _searchPkgsView.Focus();
            _pkgSearchVM.RefreshAndSearchAsync();
        }
コード例 #23
0
        /// <summary>
        /// This method will be opening the SideBar Package Details (or closing it when enableFunction = false)
        /// </summary>
        /// <param name="stepInfo">Information about the Step</param>
        /// <param name="uiAutomationData">Information about UI Automation that is being executed</param>
        /// <param name="enableFunction">Variable used to know if we are executing the automation or undoing changes</param>
        /// <param name="currentFlow">Current Guide Flow</param>
        internal static void ExecuteViewDetailsSideBar(Step stepInfo, StepUIAutomation uiAutomationData, bool enableFunction, GuideFlow currentFlow)
        {
            const string packageDetailsName      = "Package Details";
            const string closeButtonName         = "CloseButton";
            const string packageSearchWindowName = "PackageSearch";

            CurrentExecutingStep = stepInfo;
            var stepMainWindow       = stepInfo.MainWindow as Window;
            var packageDetailsWindow = Guide.FindChild(stepMainWindow, stepInfo.HostPopupInfo.HostUIElementString) as UserControl;

            if (enableFunction)
            {
                //This section will open the Package Details Sidebar
                PackageManagerSearchView packageManager = Guide.FindWindowOwned(packageSearchWindowName, stepMainWindow) as PackageManagerSearchView;
                if (packageManager == null)
                {
                    return;
                }
                PackageManagerSearchViewModel packageManagerViewModel = packageManager.DataContext as PackageManagerSearchViewModel;

                //If the results in the PackageManagerSearch are null then we cannot open the Package Detail tab
                if (packageManagerViewModel == null || packageManagerViewModel.SearchResults.Count == 0)
                {
                    return;
                }

                //We take the first result from the PackageManagerSearch
                PackageManagerSearchElementViewModel packageManagerSearchElementViewModel = packageManagerViewModel.SearchResults[0];
                if (packageManagerSearchElementViewModel == null)
                {
                    return;
                }

                if (packageDetailsWindow == null)
                {
                    packageManagerViewModel.ViewPackageDetailsCommand.Execute(packageManagerSearchElementViewModel.Model);
                }

                //The PackageDetails sidebar is using events when is being shown then we need to execute those events before setting the Popup.PlacementTarget.
                //otherwise the sidebar will not be present (and we don't have host for the Popup) and the Popup will be located out of the Dynamo window
                CurrentExecutingStep.MainWindow.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate { }));
            }
            else
            {
                //This section will close the Package Details Sidebar (just in case is still opened),
                //due that the sidebar (UserControl) is inserted inside a TabItem the only way to close is by using the method dynamoView.CloseExtensionTab
                var dynamoView = (stepMainWindow as DynamoView);
                if (packageDetailsWindow == null)
                {
                    return;
                }
                //In order to close the Package Details tab we need first to get the Tab, then get the Close button and finally call the event to close it
                TabItem tabitem = dynamoView.ExtensionTabItems.OfType <TabItem>().SingleOrDefault(n => n.Header.ToString() == packageDetailsName);
                if (tabitem == null)
                {
                    return;
                }
                //Get the Close button from the PackageDetailsView
                Button closeButton = Guide.FindChild(tabitem, closeButtonName) as Button;
                if (closeButton == null)
                {
                    return;
                }
                dynamoView.CloseExtensionTab(closeButton, null);
            }
        }
コード例 #24
0
        /// <summary>
        /// This method will be used to open the PackageManagerSearchView and search for a specific Package
        /// </summary>
        /// <param name="stepInfo">Step information</param>
        /// <param name="uiAutomationData">Specific UI Automation step that is being executed</param>
        /// <param name="enableFunction">it says if the functionality should be enabled or disabled</param>
        /// <param name="currentFlow">The current flow of the Guide can be FORWARD or BACKWARD</param>
        internal static void ExecutePackageSearch(Step stepInfo, StepUIAutomation uiAutomationData, bool enableFunction, GuideFlow currentFlow)
        {
            CurrentExecutingStep = stepInfo;
            //We try to find the PackageManagerSearchView window
            Window ownedWindow = Guide.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window);

            if (enableFunction)
            {
                //We need to check if the PackageManager search is already open if that is the case we don't need to open it again
                if (ownedWindow != null)
                {
                    return;
                }
                stepInfo.DynamoViewModelStep.ShowPackageManagerSearch(null);

                PackageManagerSearchView packageManager = Guide.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window) as PackageManagerSearchView;
                if (packageManager == null)
                {
                    return;
                }
                PackageManagerSearchViewModel packageManagerViewModel = packageManager.DataContext as PackageManagerSearchViewModel;
                if (packageManagerViewModel == null)
                {
                    return;
                }

                //Due that we need to search the Autodesk Sample package after the initial search is completed
                //we need to subscribe to the PropertyChanged event so we will know when the SearchState property is equal to Results (meaning that got results)
                packageManagerViewModel.PropertyChanged += PackageManagerViewModel_PropertyChanged;
            }
            else
            {
                PackageManagerSearchView packageManager = Guide.FindWindowOwned(stepInfo.HostPopupInfo.WindowName, stepInfo.MainWindow as Window) as PackageManagerSearchView;
                if (packageManager == null)
                {
                    return;
                }
                PackageManagerSearchViewModel packageManagerViewModel = packageManager.DataContext as PackageManagerSearchViewModel;
                if (packageManagerViewModel == null)
                {
                    return;
                }

                //Depending of the SetUp done in the Guides Json we will make the Clean Up or not, for example there are several Steps that use the PackageManagerSearchView then we won't close it

                //The Guide is moving to FORWARD and the ExecuteCleanUpForward = false, then we don't need to close the PackageManagerSearchView
                if (uiAutomationData.ExecuteCleanUpForward && currentFlow == GuideFlow.FORWARD)
                {
                    ClosePackageManager(packageManager);
                }

                //The Guide is moving to FORWARD and the ExecuteCleanUpForward = false, then we don't need to close the PackageManagerSearchView
                if (uiAutomationData.ExecuteCleanUpBackward && currentFlow == GuideFlow.BACKWARD)
                {
                    ClosePackageManager(packageManager);
                }

                //The currentFlow = GuideFlow.CURRENT when exiting the Guide
                if (currentFlow == GuideFlow.CURRENT)
                {
                    ClosePackageManager(packageManager);
                }
            }
        }
コード例 #25
0
        public void TestPackageManagerSearchElementCanInstall()
        {
            var name1   = "non-duplicate";
            var name2   = "duplicate";
            var version = "1.0.0";

            var mockGreg   = new Mock <IGregClient>();
            var clientmock = new Mock <PackageManagerClient>(mockGreg.Object, MockMaker.Empty <IPackageUploadBuilder>(), string.Empty);
            var pmCVM      = new Mock <PackageManagerClientViewModel>(ViewModel, clientmock.Object);

            var ext    = Model.GetPackageManagerExtension();
            var loader = ext.PackageLoader;

            loader.Add(new Package("", name2, version, ""));

            var packageManagerSearchViewModel = new PackageManagerSearchViewModel(pmCVM.Object);

            packageManagerSearchViewModel.RegisterTransientHandlers();

            var newSE1 = new PackageManagerSearchElementViewModel(new PackageManagerSearchElement(new PackageHeader()
            {
                name = name1
            }), false);

            var newSE2 = new PackageManagerSearchElementViewModel(new PackageManagerSearchElement(new PackageHeader()
            {
                name = name2
            }), false);

            packageManagerSearchViewModel.AddToSearchResults(newSE1);
            packageManagerSearchViewModel.AddToSearchResults(newSE2);

            // Default CanInstall should be true
            Assert.AreEqual(true, newSE1.CanInstall);
            Assert.AreEqual(true, newSE2.CanInstall);

            var dHandle1 = new PackageDownloadHandle()
            {
                Id          = name1,
                VersionName = version,
                Name        = name1
            };

            var dHandle2 = new PackageDownloadHandle()
            {
                Id          = name2,
                VersionName = version,
                Name        = name2
            };

            pmCVM.Object.Downloads.Add(dHandle1);
            pmCVM.Object.Downloads.Add(dHandle2);

            Assert.AreEqual(true, newSE1.CanInstall);
            Assert.AreEqual(true, newSE2.CanInstall);

            dHandle1.DownloadState = PackageDownloadHandle.State.Downloading;
            Assert.AreEqual(false, newSE1.CanInstall);

            dHandle1.DownloadState = PackageDownloadHandle.State.Downloaded;
            Assert.AreEqual(false, newSE1.CanInstall);

            dHandle1.DownloadState = PackageDownloadHandle.State.Error;
            dHandle2.DownloadState = PackageDownloadHandle.State.Downloading;

            Assert.AreEqual(true, newSE1.CanInstall);
            Assert.AreEqual(false, newSE2.CanInstall);

            dHandle1.DownloadState = PackageDownloadHandle.State.Installing;
            dHandle2.DownloadState = PackageDownloadHandle.State.Downloaded;
            Assert.AreEqual(false, newSE1.CanInstall);
            Assert.AreEqual(false, newSE2.CanInstall);

            // Simulate that the package corresponding to name1 was added successfully
            var package1 = new Package("", name1, version, "")
            {
            };

            package1.SetAsLoaded();
            loader.Add(package1);

            dHandle1.DownloadState = PackageDownloadHandle.State.Installed;
            dHandle2.DownloadState = PackageDownloadHandle.State.Installed;

            Assert.AreEqual(false, newSE1.CanInstall);
            Assert.AreEqual(false, newSE2.CanInstall);

            packageManagerSearchViewModel.ClearSearchResults();
        }
コード例 #26
0
        public void PackageSearchDialogSearchIntersectAgainstFilters()
        {
            //Arrange
            int    numberOfPackages         = 9;
            string packageId                = "c5ecd20a-d41c-4e0c-8e11-8ddfb953d77f";
            string packageVersionNumber     = "1.0.0.0";
            string packageCreatedDateString = "2016 - 12 - 02T13:13:20.135000 + 00:00";
            string advSteelFilterName       = "Advance Steel";
            string formItFilterName         = "FormIt";

            //Formit Packages
            List <string> formItPackagesName = new List <string> {
                "DynamoIronPython2.7", "dynamo", "Celery for Dynamo 2.5"
            };
            //Advance Steel Packages
            List <string> advanceSteelPackagesName = new List <string> {
                "DynamoIronPython2.7", "dynamo", "mise en barre", "Test-PackageDependencyFilter"
            };
            //Advance Steel Packages & Formit
            List <string> intersectionPackagesName = new List <string> {
                "DynamoTestPackage1", "DynamoTestPackage2"
            };

            var mockGreg   = new Mock <IGregClient>();
            var clientmock = new Mock <PackageManagerClient>(mockGreg.Object, MockMaker.Empty <IPackageUploadBuilder>(), string.Empty);
            var pmCVM      = new Mock <PackageManagerClientViewModel>(ViewModel, clientmock.Object);

            var packageManagerSearchViewModel = new PackageManagerSearchViewModel(pmCVM.Object);

            packageManagerSearchViewModel.RegisterTransientHandlers();

            //Adds the filters for FormIt and Advance Steel
            packageManagerSearchViewModel.HostFilter = new List <FilterEntry>
            {
                new FilterEntry(advSteelFilterName, packageManagerSearchViewModel)
                {
                    OnChecked = true
                },
                new FilterEntry(formItFilterName, packageManagerSearchViewModel)
                {
                    OnChecked = true
                },
            };

            //Adding FormIt packages
            foreach (var package in formItPackagesName)
            {
                var tmpPackageVersion = new PackageVersion {
                    version = packageVersionNumber, host_dependencies = new List <string> {
                        formItFilterName
                    }, created = packageCreatedDateString
                };
                var tmpPackage = new PackageManagerSearchElementViewModel(new PackageManagerSearchElement(new PackageHeader()
                {
                    _id      = packageId,
                    name     = package,
                    versions = new List <PackageVersion> {
                        tmpPackageVersion
                    },
                    host_dependencies = new List <string> {
                        formItFilterName
                    },
                }), false);
                packageManagerSearchViewModel.AddToSearchResults(tmpPackage);
            }

            //Adding Advance Steel packages
            foreach (var package in advanceSteelPackagesName)
            {
                var tmpPackageVersion = new PackageVersion {
                    version = packageVersionNumber, host_dependencies = new List <string> {
                        advSteelFilterName
                    }, created = packageCreatedDateString
                };
                var tmpPackage = new PackageManagerSearchElementViewModel(new PackageManagerSearchElement(new PackageHeader()
                {
                    _id      = packageId,
                    name     = package,
                    versions = new List <PackageVersion> {
                        tmpPackageVersion
                    },
                    host_dependencies = new List <string> {
                        advSteelFilterName
                    },
                }), false);
                packageManagerSearchViewModel.AddToSearchResults(tmpPackage);
            }

            //Adding packages that belong to FormIt and Advance Steel (intersection packages)
            foreach (var package in intersectionPackagesName)
            {
                var tmpPackageVersion = new PackageVersion {
                    version = packageVersionNumber, host_dependencies = new List <string> {
                        advSteelFilterName, formItFilterName
                    }, created = packageCreatedDateString
                };
                var tmpPackage = new PackageManagerSearchElementViewModel(new PackageManagerSearchElement(new PackageHeader()
                {
                    _id      = packageId,
                    name     = package,
                    versions = new List <PackageVersion> {
                        tmpPackageVersion
                    },
                    host_dependencies = new List <string> {
                        advSteelFilterName, formItFilterName
                    },
                }), false);
                packageManagerSearchViewModel.AddToSearchResults(tmpPackage);
            }

            //We need to add the PackageManagerSearchElementViewModel because otherwise the search will crash
            packageManagerSearchViewModel.LastSync = new List <PackageManagerSearchElement>();
            foreach (var result in packageManagerSearchViewModel.SearchResults)
            {
                packageManagerSearchViewModel.LastSync.Add(result.Model);
            }

            //Validate the total added packages match
            Assert.That(packageManagerSearchViewModel.SearchResults.Count == numberOfPackages);

            //Act
            //Check the Advance Steel filter
            packageManagerSearchViewModel.HostFilter[0].FilterCommand.Execute(advSteelFilterName);
            //Check the FormIt filter
            packageManagerSearchViewModel.HostFilter[1].FilterCommand.Execute(formItFilterName);

            //Assert
            //Validates that we have results and that the result match the expected 2 packages (intersection)
            Assert.IsNotNull(packageManagerSearchViewModel.SearchResults, "There was no results");
            Assert.That(packageManagerSearchViewModel.SearchResults.Count > 0, "There was no results");
            Assert.That(packageManagerSearchViewModel.SearchResults.Count == intersectionPackagesName.Count, "The search results are not getting the packages intersected");
        }
コード例 #27
0
 public PackageManagerSearchView(PackageManagerSearchViewModel pm)
 {
     this.DataContext = pm;
     InitializeComponent();
 }