Example #1
0
        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]);
        }
Example #2
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);
        }
Example #3
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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]);
        }
Example #7
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");
            }
        }
Example #8
0
        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);
        }