Exemplo n.º 1
0
        public void TestSelectedDownloadPathIsNotMigrated()
        {
            // Create 1.3, and 2.0 version user data directories in Temp folder
            string userDataDir;

            CreateMockDirectoriesAndFiles(out userDataDir);

            var sourceVersionDir = Path.Combine(userDataDir, "1.3");
            var settingsFilePath = Path.Combine(sourceVersionDir, "DynamoSettings.xml");

            // Create PreferenceSettings.xml file in 1.3
            CreateMockPreferenceSettingsFile(settingsFilePath, sourceVersionDir);

            // Create mock objects for IPathManager and IPathResolver
            var mockPathManager = new Mock <IPathManager>();

            var currentVersionDir = Path.Combine(userDataDir, "2.0");

            mockPathManager.Setup(x => x.UserDataDirectory).Returns(() => currentVersionDir);


            // Test MigrateBetweenDynamoVersions
            var targetMigrator = DynamoMigratorBase.MigrateBetweenDynamoVersions(
                mockPathManager.Object);

            var sourcePrefs = PreferenceSettings.Load(settingsFilePath);

            Assert.AreEqual(sourceVersionDir, sourcePrefs.SelectedPackagePathForInstall);

            // Assert that new SelectedPackagePath is not equal to the old path.
            Assert.AreNotEqual(sourcePrefs.SelectedPackagePathForInstall,
                               targetMigrator.PreferenceSettings.SelectedPackagePathForInstall);
        }
Exemplo n.º 2
0
        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]);
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        private static void CreateMockPreferenceSettingsFile(string filePath, string packageDir)
        {
            var settings = new PreferenceSettings
            {
                CustomPackageFolders = new List <string> {
                    packageDir
                }
            };

            settings.Save(filePath);
        }
Exemplo n.º 5
0
        ShutDown(bool shutDownHost, EventArgs args = null)
        {
            EngineController.Dispose();
            EngineController = null;

            PreferenceSettings.Save();

            dynSettings.Controller.DynamoModel.OnCleanup(args);
            dynSettings.Controller = null;

            ((DynamoLogger)dynSettings.DynamoLogger).Dispose();
        }
Exemplo n.º 6
0
        ShutDown(bool shutDownHost, EventArgs args = null)
        {
            EngineController.Dispose();
            EngineController = null;

            PreferenceSettings.Save();

            dynSettings.Controller.DynamoModel.OnCleanup(args);
            dynSettings.Controller = null;

            //DynamoSelection.Instance.ClearSelection();
            ((DynamoLogger)DynamoLogger).Dispose();
        }
Exemplo n.º 7
0
        private static void CreateMockPreferenceSettingsFile(string filePath, string packageDir)
        {
            var settings = new PreferenceSettings
            {
                CustomPackageFolders = new List <string> {
                    packageDir
                },
                //need to mock this because PreferenceSettings.SelectedPackagePathForInstall uses an event to get UserDataFolder from PathManager
                SelectedPackagePathForInstall = packageDir
            };

            settings.Save(filePath);
        }
Exemplo n.º 8
0
        public virtual void ShutDown(bool shutDownHost)
        {
            PreferenceSettings.Save();

            VisualizationManager.ClearVisualizations();

            dynSettings.Controller.DynamoModel.OnCleanup(null);
            dynSettings.Controller = null;

            Selection.DynamoSelection.Instance.ClearSelection();

            DynamoLogger.Instance.FinishLogging();
        }
Exemplo n.º 9
0
        /// <summary>
        /// Return PreferenceSettings from XML path if possible,
        /// else return PreferenceSettings with default values
        /// </summary>
        /// <param name="filePath">Path of the XML File</param>
        /// <returns>
        /// Stored PreferenceSettings from xml file or
        /// Default PreferenceSettings if xml file is not found.
        /// </returns>
        public static PreferenceSettings Load(string filePath)
        {
            var settings = new PreferenceSettings();

            if (string.IsNullOrEmpty(filePath) || (!File.Exists(filePath)))
            {
                return(settings);
            }

            try
            {
                XmlSerializer serializer = new XmlSerializer(typeof(PreferenceSettings));
                FileStream    fs         = new FileStream(filePath, FileMode.Open, FileAccess.Read);
                settings = serializer.Deserialize(fs) as PreferenceSettings;
                fs.Close(); // Release file lock
            }
            catch (Exception) { }

            return(settings);
        }
Exemplo n.º 10
0
        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]);
        }
Exemplo n.º 11
0
        /// <summary>
        /// Return PreferenceSettings from XML path if possible,
        /// else return PreferenceSettings with default values
        /// </summary>
        /// <param name="filePath">Path of the XML File</param>
        /// <returns>
        /// Stored PreferenceSettings from xml file or
        /// Default PreferenceSettings if xml file is not found.
        /// </returns>
        public static PreferenceSettings Load(string filePath)
        {
            var settings = new PreferenceSettings();

            if (String.IsNullOrEmpty(filePath) || (!File.Exists(filePath)))
            {
                return(settings);
            }

            try
            {
                var serializer = new XmlSerializer(typeof(PreferenceSettings));
                using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    settings = serializer.Deserialize(fs) as PreferenceSettings;
                    fs.Close(); // Release file lock
                }
            }
            catch (Exception) { }

            settings.CustomPackageFolders = settings.CustomPackageFolders.Distinct().ToList();

            return(settings);
        }
Exemplo n.º 12
0
        /// <summary>
        /// Return PreferenceSettings from XML path if possible,
        /// else return PreferenceSettings with default values
        /// </summary>
        /// <param name="filePath">Path of the XML File</param>
        /// <returns>
        /// Stored PreferenceSettings from xml file or
        /// Default PreferenceSettings if xml file is not found.
        /// </returns>
        public static PreferenceSettings Load(string filePath)
        {
            PreferenceSettings settings = new PreferenceSettings();

            if (string.IsNullOrEmpty(filePath) || (!File.Exists(filePath)))
                return settings;

            try
            {
                XmlSerializer serializer = new XmlSerializer(typeof(PreferenceSettings));
                FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
                settings = serializer.Deserialize(fs) as PreferenceSettings;
                fs.Close(); // Release file lock
            }
            catch (Exception) { }

            return settings;
        }
Exemplo n.º 13
0
        public void PreferenceSettings_ShowEdges_Save()
        {
            // Test if variable can be serialize and deserialize without any issue
            string tempPath = System.IO.Path.GetTempPath();
            tempPath = Path.Combine(tempPath, "userPreference.xml");

            var initalSetting = new PreferenceSettings();
            PreferenceSettings resultSetting;

            initalSetting.ShowEdges = true;
            initalSetting.Save(tempPath);
            resultSetting = PreferenceSettings.Load(tempPath);
            Assert.True(resultSetting.ShowEdges);
        }
Exemplo n.º 14
0
 public void PreferenceSettings_ShowEdges_DefaultFalse()
 {
     var settings = new PreferenceSettings();
     Assert.False(settings.ShowEdges);
 }
Exemplo n.º 15
0
        public void PreferenceSetting()
        {
            // Test Case to ensure that the link for these persistent variable
            // between DynamoViewModel, Model is not broken or replaced.
            #region FullscreenWatchShowing
            bool expectedValue = !ViewModel.Model.PreferenceSettings.FullscreenWatchShowing;
            ViewModel.ToggleFullscreenWatchShowing(null);
            Assert.AreEqual(expectedValue, ViewModel.Model.PreferenceSettings.FullscreenWatchShowing);

            expectedValue = !ViewModel.Model.PreferenceSettings.FullscreenWatchShowing;
            ViewModel.ToggleFullscreenWatchShowing(null);
            Assert.AreEqual(expectedValue, ViewModel.Model.PreferenceSettings.FullscreenWatchShowing);
            #endregion

            #region ConsoleHeight
            int expectedHeight = 100; ;
            ViewModel.ToggleConsoleShowing(null);
            Assert.AreEqual(expectedHeight, ViewModel.Model.PreferenceSettings.ConsoleHeight);

            expectedHeight = 0;
            ViewModel.ToggleConsoleShowing(null);
            Assert.AreEqual(expectedHeight, ViewModel.Model.PreferenceSettings.ConsoleHeight);
            #endregion

            #region ConnectorType
            ConnectorType expectedConnector = ConnectorType.BEZIER;
            ViewModel.SetConnectorType("BEZIER");
            Assert.AreEqual(expectedConnector, ViewModel.Model.PreferenceSettings.ConnectorType);

            expectedConnector = ConnectorType.POLYLINE;
            ViewModel.SetConnectorType("POLYLINE");
            Assert.AreEqual(expectedConnector, ViewModel.Model.PreferenceSettings.ConnectorType);
            #endregion

            #region Collect Information Option
            {
                // Backup the value of Dynamo.IsTestMode and restore it later. The 
                // reason for this is 'IsUsageReportingApproved' only returns the 
                // actual value when not running in test mode.
                var isTestMode = DynamoModel.IsTestMode;

                // First time run, check if dynamo did set it back to false after running
                Assert.AreEqual(false, UsageReportingManager.Instance.FirstRun);

                // CollectionInfoOption To TRUE
                UsageReportingManager.Instance.SetUsageReportingAgreement(true);
                RestartTestSetup(startInTestMode: false);
                Assert.AreEqual(true, UsageReportingManager.Instance.IsUsageReportingApproved);

                // CollectionInfoOption To FALSE
                UsageReportingManager.Instance.SetUsageReportingAgreement(false);
                RestartTestSetup(startInTestMode: false);
                Assert.AreEqual(false, UsageReportingManager.Instance.IsUsageReportingApproved);

                DynamoModel.IsTestMode = isTestMode; // Restore the orignal value.
            }
            #endregion

            #region Save And Load of PreferenceSettings
            // Test if variable can be serialize and deserialize without any issue
            string tempPath = System.IO.Path.GetTempPath();
            tempPath = Path.Combine(tempPath, "userPreference.xml");

            // Force inital state
            PreferenceSettings initalSetting = new PreferenceSettings();
            PreferenceSettings resultSetting;

            #region First Test

            initalSetting.ConnectorType = ConnectorType.BEZIER;
            initalSetting.ConsoleHeight = 100;
            initalSetting.FullscreenWatchShowing = true;

            initalSetting.Save(tempPath);
            resultSetting = PreferenceSettings.Load(tempPath);

            Assert.AreEqual(resultSetting.FullscreenWatchShowing, initalSetting.FullscreenWatchShowing);
            Assert.AreEqual(resultSetting.ConnectorType, initalSetting.ConnectorType);
            Assert.AreEqual(resultSetting.ConsoleHeight, initalSetting.ConsoleHeight);
            #endregion

            #region Second Test
            initalSetting.ConnectorType = ConnectorType.POLYLINE;
            initalSetting.ConsoleHeight = 0;
            initalSetting.FullscreenWatchShowing = false;

            initalSetting.Save(tempPath);
            resultSetting = PreferenceSettings.Load(tempPath);

            Assert.AreEqual(resultSetting.FullscreenWatchShowing, initalSetting.FullscreenWatchShowing);
            Assert.AreEqual(resultSetting.ConnectorType, initalSetting.ConnectorType);
            Assert.AreEqual(resultSetting.ConsoleHeight, initalSetting.ConsoleHeight);
            #endregion

            #endregion

            View.Close();
        }
Exemplo n.º 16
0
        /// <summary>
        /// Return PreferenceSettings from XML path if possible,
        /// else return PreferenceSettings with default values
        /// </summary>
        /// <param name="filePath">Path of the XML File</param>
        /// <returns>
        /// Stored PreferenceSettings from xml file or
        /// Default PreferenceSettings if xml file is not found.
        /// </returns>
        public static PreferenceSettings Load(string filePath)
        {
            var settings = new PreferenceSettings();

            if (String.IsNullOrEmpty(filePath) || (!File.Exists(filePath)))
                return settings;

            try
            {
                var serializer = new XmlSerializer(typeof(PreferenceSettings));
                using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    settings = serializer.Deserialize(fs) as PreferenceSettings;
                    fs.Close(); // Release file lock
                }
            }
            catch (Exception) { }

            settings.CustomPackageFolders = settings.CustomPackageFolders.Distinct().ToList();

            return settings;
        }
Exemplo n.º 17
0
 private static void CreateMockPreferenceSettingsFile(string filePath, string packageDir)
 {
     var settings = new PreferenceSettings
     {
         CustomPackageFolders = new List<string>{packageDir}
     };
     settings.Save(filePath);
 }
Exemplo n.º 18
0
        public void PreferenceSetting()
        {
            // Test Case to ensure that the link for these persistent variable
            // between DynamoViewModel, Controller is not broken or replaced.
            #region FullscreenWatchShowing
            bool expectedValue = !Controller.PreferenceSettings.FullscreenWatchShowing;
            Vm.ToggleFullscreenWatchShowing(null);
            Assert.AreEqual(expectedValue, Controller.PreferenceSettings.FullscreenWatchShowing);

            expectedValue = !Controller.PreferenceSettings.FullscreenWatchShowing;
            Vm.ToggleFullscreenWatchShowing(null);
            Assert.AreEqual(expectedValue, Controller.PreferenceSettings.FullscreenWatchShowing);
            #endregion

            #region ShowConsole
            expectedValue = !Controller.PreferenceSettings.ShowConsole;
            Vm.ToggleConsoleShowing(null);
            Assert.AreEqual(expectedValue, Controller.PreferenceSettings.ShowConsole);

            expectedValue = !Controller.PreferenceSettings.ShowConsole;
            Vm.ToggleConsoleShowing(null);
            Assert.AreEqual(expectedValue, Controller.PreferenceSettings.ShowConsole);
            #endregion

            #region ConnectorType
            ConnectorType expectedConnector = ConnectorType.BEZIER;
            Vm.SetConnectorType("BEZIER");
            Assert.AreEqual(expectedConnector, Controller.PreferenceSettings.ConnectorType);

            expectedConnector = ConnectorType.POLYLINE;
            Vm.SetConnectorType("POLYLINE");
            Assert.AreEqual(expectedConnector, Controller.PreferenceSettings.ConnectorType);
            #endregion

            #region Collect Information Option
            // First time run, check if dynamo did set it back to false after running
            Assert.AreEqual(false, UsageReportingManager.Instance.FirstRun);

            // CollectionInfoOption To TRUE
            UsageReportingManager.Instance.SetUsageReportingAgreement(true);
            RestartTestSetup();
            Assert.AreEqual(true, UsageReportingManager.Instance.IsUsageReportingApproved);

            // CollectionInfoOption To FALSE
            UsageReportingManager.Instance.SetUsageReportingAgreement(false);
            RestartTestSetup();
            Assert.AreEqual(false, UsageReportingManager.Instance.IsUsageReportingApproved);
            #endregion

            #region Save And Load of PreferenceSettings
            // Test if variable can be serialize and deserialize without any issue
            string tempPath = System.IO.Path.GetTempPath();
            tempPath = Path.Combine(tempPath, "userPreference.xml");

            // Force inital state
            PreferenceSettings initalSetting = new PreferenceSettings();
            PreferenceSettings resultSetting;

            #region First Test

            initalSetting.ConnectorType = ConnectorType.BEZIER;
            initalSetting.ShowConsole = true;
            initalSetting.FullscreenWatchShowing = true;

            initalSetting.Save(tempPath);
            resultSetting = PreferenceSettings.Load(tempPath);

            Assert.AreEqual(resultSetting.FullscreenWatchShowing, initalSetting.FullscreenWatchShowing);
            Assert.AreEqual(resultSetting.ConnectorType, initalSetting.ConnectorType);
            Assert.AreEqual(resultSetting.ShowConsole, initalSetting.ShowConsole);
            #endregion

            #region Second Test
            initalSetting.ConnectorType = ConnectorType.POLYLINE;
            initalSetting.ShowConsole = false;
            initalSetting.FullscreenWatchShowing = false;

            initalSetting.Save(tempPath);
            resultSetting = PreferenceSettings.Load(tempPath);

            Assert.AreEqual(resultSetting.FullscreenWatchShowing, initalSetting.FullscreenWatchShowing);
            Assert.AreEqual(resultSetting.ConnectorType, initalSetting.ConnectorType);
            Assert.AreEqual(resultSetting.ShowConsole, initalSetting.ShowConsole);
            #endregion

            #endregion
            
            Ui.Close();
        }