Exemple #1
0
        public void ConfigurationRedirection()
        {
            //Inject test config to UpdateManager instance, using reflection.
            var config = new UpdateManagerConfiguration()
            {
                DownloadSourcePath  = DOWNLOAD_SOURCE_PATH_S,
                SignatureSourcePath = SIGNATURE_SOURCE_PATH_S
            };

            var um = new DynUpdateManager(config);

            Assert.IsNotNull(um);

            var updateRequest = new Mock <IAsynchronousRequest>();

            updateRequest.Setup(ur => ur.Data)
            .Returns(UpdateManagerTestHelpers.updateAvailableData);
            um.UpdateDataAvailable(updateRequest.Object);

            // Spoof a download completion by setting the downloaded update info to the update info
            um.DownloadedUpdateInfo = um.UpdateInfo;
            Assert.NotNull(um.UpdateInfo);
            Assert.AreEqual("9.9.9.0", um.AvailableVersion.ToString());
            Assert.AreEqual(DOWNLOAD_SOURCE_PATH_S, um.UpdateInfo.VersionInfoURL);
            Assert.AreEqual(
                SIGNATURE_SOURCE_PATH_S + @"DynamoInstall9.9.9.sig",
                um.UpdateInfo.SignatureURL);
        }
Exemple #2
0
 public void UpdateManagerConfigurationLoadTest()
 {
     Assert.IsNull(UpdateManagerConfiguration.Load(null, updateManager));
     Assert.IsNull(UpdateManagerConfiguration.Load("", updateManager));
     Assert.IsNull(UpdateManagerConfiguration.Load("filePath", updateManager));
     Assert.IsNull(UpdateManagerConfiguration.Load(Path.GetTempFileName(), updateManager));
 }
Exemple #3
0
        public void ConfigurationSerialization()
        {
            var config = new UpdateManagerConfiguration()
            {
                DownloadSourcePath  = DOWNLOAD_SOURCE_PATH_S,
                SignatureSourcePath = SIGNATURE_SOURCE_PATH_S
            };

            //save to a temp file.
            var tempFile = Path.GetTempFileName();

            Assert.DoesNotThrow(() => config.Save(tempFile, null));

            //read from a temp file.
            UpdateManagerConfiguration savedConfig = null;

            Assert.DoesNotThrow(() => savedConfig = UpdateManagerConfiguration.Load(tempFile, null));

            //Compare parameters.
            Assert.IsNotNull(savedConfig);
            Assert.AreEqual(config.CheckNewerDailyBuild, savedConfig.CheckNewerDailyBuild);
            Assert.AreEqual(config.SignatureSourcePath, savedConfig.SignatureSourcePath);
            Assert.AreEqual(config.DownloadSourcePath, savedConfig.DownloadSourcePath);
            Assert.AreEqual(config.ForceUpdate, savedConfig.ForceUpdate);
            Assert.AreEqual(config.DisableUpdates, savedConfig.DisableUpdates);
        }
Exemple #4
0
        public void Init()
        {
            //Create an instance of the UpdateManager class to be used in the tests.
            var config = UpdateManagerConfiguration.GetSettings(null);

            updateManager = new UpdateManager(config);
        }
Exemple #5
0
        private static RevitDynamoModel InitializeCoreModel(DynamoRevitCommandData commandData)
        {
            var assemblyLocation  = Assembly.GetExecutingAssembly().Location;
            var assemblyDirectory = Path.GetDirectoryName(assemblyLocation);
            var parentDirectory   = Directory.GetParent(assemblyDirectory);
            var corePath          = parentDirectory.FullName;

            var umConfig = UpdateManagerConfiguration.GetSettings(new DynamoRevitLookUp());

            Debug.Assert(umConfig.DynamoLookUp != null);

            return(RevitDynamoModel.Start(
                       new RevitDynamoModel.RevitStartConfiguration()
            {
                GeometryFactoryPath = GetGeometryFactoryPath(corePath),
                PathResolver = new RevitPathResolver(),
                Context = GetRevitContext(commandData),
                SchedulerThread = new RevitSchedulerThread(commandData.Application),
                StartInTestMode = isAutomationMode,
                AuthProvider = new RevitOxygenProvider(new DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher)),
                ExternalCommandData = commandData,
                UpdateManager = new DynUpdateManager(umConfig),
                ProcessMode = isAutomationMode ? TaskProcessMode.Synchronous : TaskProcessMode.Asynchronous
            }));
        }
Exemple #6
0
        private static RevitDynamoModel InitializeCoreModel(DynamoRevitCommandData commandData)
        {
            var corePath           = DynamoRevitApp.DynamoCorePath;
            var dynamoRevitExePath = Assembly.GetExecutingAssembly().Location;
            var dynamoRevitRoot    = Path.GetDirectoryName(dynamoRevitExePath);// ...\Revit_xxxx\ folder

            var umConfig = UpdateManagerConfiguration.GetSettings(new DynamoRevitLookUp());

            Debug.Assert(umConfig.DynamoLookUp != null);

            var userDataFolder = Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
                "Dynamo", "Dynamo Revit");
            var commonDataFolder = Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
                "Dynamo", "Dynamo Revit");

            return(RevitDynamoModel.Start(
                       new RevitDynamoModel.RevitStartConfiguration()
            {
                DynamoCorePath = corePath,
                DynamoHostPath = dynamoRevitRoot,
                GeometryFactoryPath = GetGeometryFactoryPath(corePath),
                PathResolver = new RevitPathResolver(userDataFolder, commonDataFolder),
                Context = GetRevitContext(commandData),
                SchedulerThread = new RevitSchedulerThread(commandData.Application),
                StartInTestMode = isAutomationMode,
                AuthProvider = new RevitOxygenProvider(new DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher)),
                ExternalCommandData = commandData,
                UpdateManager = new DynUpdateManager(umConfig),
                ProcessMode = isAutomationMode ? TaskProcessMode.Synchronous : TaskProcessMode.Asynchronous
            }));
        }
Exemple #7
0
        /// <summary>
        ///if we are building a model for CLI mode, then we don't want to start an updateManager
        ///for now, building an updatemanager instance requires finding Dynamo install location
        ///which if we are running on mac os or *nix will use different logic then SandboxLookup
        /// </summary>
        private static IUpdateManager InitializeUpdateManager()
        {
            var cfg = UpdateManagerConfiguration.GetSettings(new SandboxLookUp());
            var um  = new Dynamo.Updates.UpdateManager(cfg);

            Debug.Assert(cfg.DynamoLookUp != null);
            return(um);
        }
Exemple #8
0
 public void UpdateManagerConfigurationLoadTest()
 {
     //Testing all the calls for Load that return null
     Assert.IsNull(UpdateManagerConfiguration.Load(null, updateManager));
     Assert.IsNull(UpdateManagerConfiguration.Load("", updateManager));
     Assert.IsNull(UpdateManagerConfiguration.Load("filePath", updateManager));
     Assert.IsNull(UpdateManagerConfiguration.Load(Path.GetTempFileName(), updateManager));
 }
Exemple #9
0
            private readonly FieldInfo fieldInfo;            //internal configuration field.

            /// <summary>
            /// Creates ConfigInjection instance.
            /// </summary>
            /// <param name="updateManager">UpdateManager instance to which configuration is to be injected.</param>
            /// <param name="configuration">The configuration for injection.</param>
            public ConfigInjection(DynUpdateManager updateManager, UpdateManagerConfiguration configuration)
            {
                this.updateManager = updateManager;
                fieldInfo          = updateManager.GetType()
                                     .GetField("configuration", BindingFlags.NonPublic | BindingFlags.Instance);
                Assert.IsNotNull(fieldInfo);

                this.configuration = fieldInfo.GetValue(updateManager);
                fieldInfo.SetValue(updateManager, configuration);
            }
Exemple #10
0
        private static RevitDynamoModel InitializeCoreModel(DynamoRevitCommandData commandData)
        {
            // Temporary fix to pre-load DLLs that were also referenced in Revit folder.
            // To do: Need to align with Revit when provided a chance.
            PreloadDynamoCoreDlls();
            var corePath           = DynamoRevitApp.DynamoCorePath;
            var dynamoRevitExePath = Assembly.GetExecutingAssembly().Location;
            var dynamoRevitRoot    = Path.GetDirectoryName(dynamoRevitExePath);// ...\Revit_xxxx\ folder

            // get Dynamo Revit Version
            var dynRevitVersion = Assembly.GetExecutingAssembly().GetName().Version;

            var umConfig           = UpdateManagerConfiguration.GetSettings(new DynamoRevitLookUp());
            var revitUpdateManager = new DynUpdateManager(umConfig);

            revitUpdateManager.HostVersion = dynRevitVersion; // update RevitUpdateManager with the current DynamoRevit Version
            revitUpdateManager.HostName    = "Dynamo Revit";
            if (revitUpdateManager.Configuration is IDisableUpdateConfig)
            {
                (revitUpdateManager.Configuration as IDisableUpdateConfig).DisableUpdates = true;
            }

            Debug.Assert(umConfig.DynamoLookUp != null);

            var userDataFolder = Path.Combine(Environment.GetFolderPath(
                                                  Environment.SpecialFolder.ApplicationData),
                                              "Dynamo", "Dynamo Revit");
            var commonDataFolder = Path.Combine(Environment.GetFolderPath(
                                                    Environment.SpecialFolder.CommonApplicationData),
                                                "Autodesk", "RVT " + commandData.Application.Application.VersionNumber, "Dynamo");

            bool isAutomationMode = CheckJournalForKey(extCommandData, JournalKeys.AutomationModeKey);

            // when Dynamo runs on top of Revit we must load the same version of ASM as revit
            // so tell Dynamo core we've loaded that version.
            var loadedLibGVersion = PreloadAsmFromRevit();


            return(RevitDynamoModel.Start(
                       new RevitDynamoModel.RevitStartConfiguration()
            {
                DynamoCorePath = corePath,
                DynamoHostPath = dynamoRevitRoot,
                GeometryFactoryPath = GetGeometryFactoryPath(corePath, loadedLibGVersion),
                PathResolver = new RevitPathResolver(userDataFolder, commonDataFolder),
                Context = GetRevitContext(commandData),
                SchedulerThread = new RevitSchedulerThread(commandData.Application),
                StartInTestMode = isAutomationMode,
                AuthProvider = new RevitOxygenProvider(new DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher)),
                ExternalCommandData = commandData,
                UpdateManager = revitUpdateManager,
                ProcessMode = isAutomationMode ? TaskProcessMode.Synchronous : TaskProcessMode.Asynchronous
            }));
        }
Exemple #11
0
        public void UpdateManagerConfigurationPropertiesTest()
        {
            var config = new UpdateManagerConfiguration();
            var checkNewerDailyBuildOldValue = config.CheckNewerDailyBuild;

            config.CheckNewerDailyBuild = !config.CheckNewerDailyBuild;
            Assert.AreEqual(!checkNewerDailyBuildOldValue, config.CheckNewerDailyBuild);

            var forceUpdateOldValue = config.ForceUpdate;

            config.ForceUpdate = !config.ForceUpdate;
            Assert.AreEqual(!forceUpdateOldValue, config.ForceUpdate);
        }
Exemple #12
0
        public void UpdateManagerConfigurationSaveTest()
        {
            var config   = new UpdateManagerConfiguration();
            var goodPath = Path.GetTempFileName();
            var badPath  = "W:\\PathThatDoesntExist";

            //Happy path
            Assert.DoesNotThrow(() => config.Save(goodPath, updateManager));

            //if statement in the catch block
            Assert.DoesNotThrow(() => config.Save(badPath, updateManager));

            //else statement in the catch block
            Assert.Throws <DirectoryNotFoundException>(() => config.Save(badPath, null));
        }
        private static Mock <IUpdateManager> MockUpdateManager(string availableVersion, string productVersion)
        {
            var um_mock = new Mock <IUpdateManager>();

            um_mock.Setup(um => um.AvailableVersion).Returns(BinaryVersion.FromString(availableVersion));
            um_mock.Setup(um => um.ProductVersion).Returns(BinaryVersion.FromString(productVersion));

            var config = new UpdateManagerConfiguration()
            {
                DownloadSourcePath  = DOWNLOAD_SOURCE_PATH_S,
                SignatureSourcePath = SIGNATURE_SOURCE_PATH_S
            };

            um_mock.Setup(um => um.Configuration).Returns(config);

            var fieldInfo = typeof(UpdateManager).GetField("instance", BindingFlags.Static | BindingFlags.NonPublic);

            Assert.NotNull(fieldInfo);
            fieldInfo.SetValue(UpdateManager.Instance, um_mock.Object);
            return(um_mock);
        }
Exemple #14
0
        private static void MakeStandaloneAndRun(string commandFilePath, out DynamoViewModel viewModel)
        {
            var geometryFactoryPath = string.Empty;
            var preloaderLocation   = string.Empty;

            PreloadShapeManager(ref geometryFactoryPath, ref preloaderLocation);

            DynamoModel.RequestMigrationStatusDialog += MigrationStatusDialogRequested;

            var umConfig = UpdateManagerConfiguration.GetSettings(new SandboxLookUp());

            Debug.Assert(umConfig.DynamoLookUp != null);

            var model = DynamoModel.Start(
                new DynamoModel.DefaultStartConfiguration()
            {
                PathResolver        = new PathResolver(preloaderLocation),
                GeometryFactoryPath = geometryFactoryPath,
                UpdateManager       = new UpdateManager(umConfig)
            });

            viewModel = DynamoViewModel.Start(
                new DynamoViewModel.StartConfiguration()
            {
                CommandFilePath = commandFilePath,
                DynamoModel     = model
            });

            var view = new DynamoView(viewModel);

            view.Loaded += (sender, args) => CloseMigrationWindow();

            var app = new Application();

            app.Run(view);

            DynamoModel.RequestMigrationStatusDialog -= MigrationStatusDialogRequested;
        }
Exemple #15
0
        public void UpdateManagerConfigurationSaveTest()
        {
            var config = new UpdateManagerConfiguration();

            Assert.DoesNotThrow(() => config.Save(Path.GetTempFileName(), updateManager));
        }
Exemple #16
0
        public void Init()
        {
            var config = UpdateManagerConfiguration.GetSettings(null);

            updateManager = new UpdateManager(config);
        }