public void TestMigration() { // 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); // Assert that new CustomePackageFolders in preference settings // for 2.0 version points to user data dir for 2.0 Assert.AreEqual(currentVersionDir, targetMigrator.PreferenceSettings.CustomPackageFolders[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); }
public void GetLatestVersionToMigrate_AllInvalidData() { var mockLookup = new Mock <IDynamoLookUp>(); mockLookup.Setup(x => x.GetDynamoUserDataLocations()).Returns(new[] { "x", "y", "z" }); var current = new FileVersion(1, 0, "a"); var latest = DynamoMigratorBase.GetLatestVersionToMigrate(null, mockLookup.Object, current); Assert.IsTrue(!latest.HasValue || latest.Value.UserDataRoot == null); }
public void GetSortedInstallVersion_FromDynamoLookUp() { var mockLookup = new Mock <IDynamoLookUp>(); mockLookup.Setup(x => x.GetDynamoUserDataLocations()).Returns(MockUserDirectories); var versionList = DynamoMigratorBase.GetInstalledVersions(null, mockLookup.Object).ToList(); VerifySortedOrder(versionList); Assert.AreEqual(4, versionList.Count); Assert.AreEqual(Path.Combine(TempFolder, "Test"), versionList[0].UserDataRoot); Assert.AreEqual(TempFolder, versionList[1].UserDataRoot); }
public void GetLatestVersionToMigrate_PartiallyValidData() { var mockLookup = new Mock <IDynamoLookUp>(); mockLookup.Setup(x => x.GetDynamoUserDataLocations()).Returns(MockUserDirectories); var current = new FileVersion(0, 9, TempFolder); var latest = DynamoMigratorBase.GetLatestVersionToMigrate(null, mockLookup.Object, current); Assert.IsTrue(latest.HasValue); Assert.AreEqual(0, latest.Value.MajorPart); Assert.AreEqual(8, latest.Value.MinorPart); Assert.AreEqual(TempFolder, latest.Value.UserDataRoot); }
public void TestMigration() { // Create 0.8, and 0.9 version user data directories in Temp folder string userDataDir; CreateMockDirectoriesAndFiles(out userDataDir); var sourceVersionDir = Path.Combine(userDataDir, "0.8"); var settingsFilePath = Path.Combine(sourceVersionDir, "DynamoSettings.xml"); // Create PreferenceSettings.xml file in 0.8 CreateMockPreferenceSettingsFile(settingsFilePath, sourceVersionDir); // Create mock objects for IPathManager and IPathResolver var mockPathManager = new Mock <IPathManager>(); var mockPathResolver = new Mock <IPathResolver>(); var currentVersionDir = Path.Combine(userDataDir, "0.9"); mockPathResolver.Setup(x => x.UserDataRootFolder).Returns(() => userDataDir); mockPathManager.Setup(x => x.UserDataDirectory).Returns(() => currentVersionDir); // Test MigrateBetweenDynamoVersions var targetMigrator = DynamoMigratorBase.MigrateBetweenDynamoVersions( mockPathManager.Object, mockPathResolver.Object); // Assert that both 0.8 and 0.9 dirs are the same after migration var sourcePackageDir = Path.Combine(sourceVersionDir, "packages"); var currentPackageDir = Path.Combine(currentVersionDir, "packages"); bool areDirectoriesEqual = Directory.EnumerateFiles(sourcePackageDir).Select(Path.GetFileName). SequenceEqual(Directory.EnumerateFiles(currentPackageDir).Select(Path.GetFileName)); Assert.IsTrue(areDirectoriesEqual); var sourceDefinitionDir = Path.Combine(sourceVersionDir, "definitions"); var currentDefinitionDir = Path.Combine(currentVersionDir, "definitions"); areDirectoriesEqual = Directory.EnumerateFiles(sourceDefinitionDir).Select(Path.GetFileName). SequenceEqual(Directory.EnumerateFiles(currentDefinitionDir).Select(Path.GetFileName)); Assert.IsTrue(areDirectoriesEqual); // Assert that new CustomePackageFolders in preference settings // for 0.9 version points to user data dir for 0.9 Assert.AreEqual(currentVersionDir, targetMigrator.PreferenceSettings.CustomPackageFolders[0]); }
public void GetSortedInstalledVersions_FromDirectoryInspection() { var tempPath = base.TempFolder; var uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "0.7")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "0.8")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "0.0")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "1.7")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "1.8")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "1.9")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "2.0")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "-1.9")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "-2.9")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "-1.0")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "3.0")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "2.-9")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "2.-8")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "-2.-9")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "-2.-8")); uniqueDirectory = Directory.CreateDirectory(Path.Combine(tempPath, "-1.-9")); var versionList = DynamoMigratorBase.GetInstalledVersions(tempPath).ToList(); VerifySortedOrder(versionList); try { DynamoMigratorBase.GetInstalledVersions(""); } catch (ArgumentNullException e) { Assert.IsTrue(e.ParamName == "rootFolder"); } try { DynamoMigratorBase.GetInstalledVersions(null); } catch (ArgumentNullException e) { Assert.IsTrue(e.ParamName == "rootFolder"); } }
public void TestInstalledVersionFromUserDataFolder() { //Test with valid version string var tempPath = base.TempFolder; var userDataFolder = Path.Combine(tempPath, "1.0"); var version = DynamoMigratorBase.GetInstallVersionFromUserDataFolder(userDataFolder); Assert.AreEqual(tempPath, version.UserDataRoot); Assert.AreEqual(1, version.MajorPart); Assert.AreEqual(0, version.MinorPart); //Test with -ve version string userDataFolder = Path.Combine(tempPath, "-1.-9"); version = DynamoMigratorBase.GetInstallVersionFromUserDataFolder(userDataFolder); Assert.AreEqual(tempPath, version.UserDataRoot); Assert.AreEqual(-1, version.MajorPart); Assert.AreEqual(-9, version.MinorPart); //Test with invalid data version = DynamoMigratorBase.GetInstallVersionFromUserDataFolder(tempPath); Assert.AreEqual(default(FileVersion), version); }