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); }
/// <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); }
public void UpdateCheckReturnsInfoWhenNewerDailyBuildAvailable() { var updateRequest = new Mock<IAsynchronousRequest>(); updateRequest.Setup(ur => ur.Data).Returns(UpdateManagerTestHelpers.dailyBuildAvailableData); var updateManager = new DynUpdateManager(NewConfiguration(checkNewerDailyBuild: true)); updateManager.UpdateDataAvailable(updateRequest.Object); Assert.NotNull(updateManager.UpdateInfo); }
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 })); }
public void IsUpdateAvailableWhenForceUpdateIsTrue() { var updateRequest = new Mock<IAsynchronousRequest>(); updateRequest.Setup(ur => ur.Data).Returns(UpdateManagerTestHelpers.noUpdateAvailableData); var updateManager = new DynUpdateManager(NewConfiguration(forceUpdate:true)); updateManager.UpdateDataAvailable(updateRequest.Object); updateManager.DownloadedUpdateInfo = updateManager.UpdateInfo; Assert.IsTrue(updateManager.IsUpdateAvailable); }
public void UpdateCheckReturnsNothingWhenNoVersionsAvailable() { var updateRequest = new Mock <IAsynchronousRequest>(); updateRequest.Setup(ur => ur.Data).Returns(UpdateManagerTestHelpers.noData); var um = new DynUpdateManager(NewConfiguration()); um.UpdateDataAvailable(updateRequest.Object); Assert.Null(um.UpdateInfo); }
public void UpdateCheckReturnsInfoWhenNewerDailyBuildAvailable() { var updateRequest = new Mock <IAsynchronousRequest>(); updateRequest.Setup(ur => ur.Data).Returns(UpdateManagerTestHelpers.dailyBuildAvailableData); var updateManager = new DynUpdateManager(NewConfiguration(checkNewerDailyBuild: true)); updateManager.UpdateDataAvailable(updateRequest.Object); Assert.NotNull(updateManager.UpdateInfo); }
public void UpdateCheckReturnsNothingWhenNotConnected() { var updateRequest = new Mock <IAsynchronousRequest>(); updateRequest.Setup(ur => ur.Data).Returns(string.Empty); var um = new DynUpdateManager(NewConfiguration()); um.UpdateDataAvailable(updateRequest.Object); Assert.Null(um.UpdateInfo); }
public void NoUpdateAvailableWhenUpToDate() { var updateRequest = new Mock <IAsynchronousRequest>(); updateRequest.Setup(ur => ur.Data).Returns(UpdateManagerTestHelpers.noUpdateAvailableData); var updateManager = new DynUpdateManager(NewConfiguration()); updateManager.UpdateDataAvailable(updateRequest.Object); updateManager.DownloadedUpdateInfo = updateManager.UpdateInfo; Assert.IsFalse(updateManager.IsUpdateAvailable); }
public void UpdateCheckReturnsCorrectVersionWhenAvailable() { var um = new DynUpdateManager(NewConfiguration()); 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(um.AvailableVersion.ToString(), "9.9.9.0"); }
public void DisableUpdateWhenLowerVersionDynamoIsInstalled() { var lookup = new Mock <DynamoLookUp>(); lookup.Setup(l => l.GetDynamoInstallLocations()).Returns(new[] { "A" }); lookup.Setup(l => l.GetDynamoVersion(It.IsAny <string>())) .Returns <string>(s => Version.Parse("1.2.0.0")); var um = new DynUpdateManager(NewConfiguration(false, false, lookup.Object)); (um.Configuration as IDisableUpdateConfig).DisableUpdates = true; Assert.IsNotNull(um); DynUpdateManager.CheckForProductUpdate(um); Assert.IsNull(um.UpdateInfo); Assert.IsFalse(um.IsUpdateAvailable); }
public void UpdateCheckReturnsNothingWhenGivenBadData() { // Here we simulate some xml that is returned that is well-formed // but not what we are looking for. This is the case often when you // are logging into a network that requires an additional login, like // hotel wi-fi. In this case, the ListBucketResult element will not // be found in the xml and we'll get null UpdateInfo. var updateRequest = new Mock <IAsynchronousRequest>(); updateRequest.Setup(ur => ur.Data).Returns(UpdateManagerTestHelpers.badData); var um = new DynUpdateManager(NewConfiguration()); um.UpdateDataAvailable(updateRequest.Object); Assert.Null(um.UpdateInfo); }
public void NoUpdateIsAvailableWhenHigherVersionDynamoIsInstalled() { var lookup = new Mock <DynamoLookUp>(); lookup.Setup(l => l.GetDynamoInstallLocations()).Returns(new[] { "A" }); lookup.Setup(l => l.GetDynamoVersion(It.IsAny <string>())) .Returns <string>(s => Version.Parse("9.9.9.0")); var um = new DynUpdateManager(NewConfiguration(false, false, lookup.Object)); Assert.IsNotNull(um); DynUpdateManager.CheckForProductUpdate(um); um.DownloadedUpdateInfo = um.UpdateInfo; Assert.IsNull(um.UpdateInfo); Assert.IsFalse(um.IsUpdateAvailable); }
private static RevitDynamoModel InitializeCoreModel(DynamoRevitCommandData commandData) { var corePath = DynamoRevitApp.DynamoCorePath; var dynamoRevitExePath = Assembly.GetExecutingAssembly().Location; var dynamoRevitRoot = Path.GetDirectoryName(dynamoRevitExePath);// ...\Revit_xxxx\ folder // get Dynamo Revit Version var revitVersion = Assembly.GetExecutingAssembly().GetName().Version; var umConfig = UpdateManagerConfiguration.GetSettings(new DynamoRevitLookUp()); var revitUpdateManager = new DynUpdateManager(umConfig); revitUpdateManager.HostVersion = revitVersion; // update RevitUpdateManager with the current DynamoRevit Version revitUpdateManager.HostName = "Dynamo Revit"; 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"); PreloadAsmFromRevit(); 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 = revitUpdateManager, ProcessMode = isAutomationMode ? TaskProcessMode.Synchronous : TaskProcessMode.Asynchronous })); }
public void UpdateCheckReturnsCorrectVersionWhenAvailable() { var um = new DynUpdateManager(NewConfiguration()); 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(um.AvailableVersion.ToString(), "9.9.9.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; }
public void UpdateCheckReturnsNothingWhenNoVersionsAvailable() { var updateRequest = new Mock<IAsynchronousRequest>(); updateRequest.Setup(ur => ur.Data).Returns(UpdateManagerTestHelpers.noData); var um = new DynUpdateManager(NewConfiguration()); um.UpdateDataAvailable(updateRequest.Object); Assert.Null(um.UpdateInfo); }
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); }
public void UpdateCheckReturnsNothingWhenNotConnected() { var updateRequest = new Mock<IAsynchronousRequest>(); updateRequest.Setup(ur => ur.Data).Returns(string.Empty); var um = new DynUpdateManager(NewConfiguration()); um.UpdateDataAvailable(updateRequest.Object); Assert.Null(um.UpdateInfo); }
public void UpdateCheckReturnsNothingWhenGivenBadData() { // Here we simulate some xml that is returned that is well-formed // but not what we are looking for. This is the case often when you // are logging into a network that requires an additional login, like // hotel wi-fi. In this case, the ListBucketResult element will not // be found in the xml and we'll get null UpdateInfo. var updateRequest = new Mock<IAsynchronousRequest>(); updateRequest.Setup(ur => ur.Data).Returns(UpdateManagerTestHelpers.badData); var um = new DynUpdateManager(NewConfiguration()); um.UpdateDataAvailable(updateRequest.Object); Assert.Null(um.UpdateInfo); }
public void NoUpdateIsAvailableWhenHigherVersionDynamoIsInstalled() { var lookup = new Mock<DynamoLookUp>(); lookup.Setup(l => l.GetDynamoInstallLocations()).Returns(new[] { "A" }); lookup.Setup(l => l.GetDynamoVersion(It.IsAny<string>())) .Returns<string>(s => Version.Parse("9.9.9.0")); var um = new DynUpdateManager(NewConfiguration(false, false, lookup.Object)); Assert.IsNotNull(um); DynUpdateManager.CheckForProductUpdate(um); um.DownloadedUpdateInfo = um.UpdateInfo; Assert.IsNull(um.UpdateInfo); Assert.IsFalse(um.IsUpdateAvailable); }
public void NoUpdateAvailableWhenUpdateInfoIsNotYetDownloaded() { var updateManager = new DynUpdateManager(NewConfiguration()); Assert.IsFalse(updateManager.IsUpdateAvailable); }