internal string HookSettingFile(string hook)
        {
            var result = new ContextAutosaveSettings
            {
                CacheDirectory   = hook,
                ContextDirectory = hook,
                Mode             = ContextSaveMode.CurrentUser,
                CacheFile        = "TokenCache.dat",
                ContextFile      = "AzureRmContext.json"
            };

            var backupPath = String.Empty;

            if (!dataStore.FileExists(settingsPath))
            {
                string directoryPath = Path.GetDirectoryName(settingsPath);
                if (!dataStore.DirectoryExists(directoryPath))
                {
                    dataStore.CreateDirectory(directoryPath);
                }
            }
            else
            {
                backupPath = BackupSetting();
            }
            dataStore.WriteFile(settingsPath, JsonConvert.SerializeObject(result));
            return(backupPath);
        }
        public void InitializerCreatesTokenCacheFile()
        {
            AzureSessionInitializer.InitializeAzureSession();
            IAzureSession oldSession = null;

            try
            {
                oldSession = AzureSession.Instance;
            }
            catch { }
            try
            {
                var store    = new MemoryDataStore();
                var path     = Path.Combine(AzureSession.Instance.ARMProfileDirectory, ContextAutosaveSettings.AutoSaveSettingsFile);
                var settings = new ContextAutosaveSettings {
                    Mode = ContextSaveMode.CurrentUser
                };
                var content = JsonConvert.SerializeObject(settings);
                store.VirtualStore[path] = content;
                AzureSessionInitializer.CreateOrReplaceSession(store);
                var session        = AzureSession.Instance;
                var tokenCacheFile = Path.Combine(session.ProfileDirectory, session.TokenCacheFile);
                Assert.True(store.FileExists(tokenCacheFile));
            }
            finally
            {
                AzureSession.Initialize(() => oldSession, true);
            }
        }
        public void InitializerCreatesTokenCacheFile()
        {
            AzureSessionInitializer.InitializeAzureSession();
            IAzureSession oldSession = null;

            try
            {
                oldSession = AzureSession.Instance;
            }
            catch { }
            try
            {
                var store = new MemoryDataStore();
                AzureSessionInitializer.CreateOrReplaceSession(store);
                var session        = AzureSession.Instance;
                var tokenCacheFile = Path.Combine(session.ProfileDirectory, session.TokenCacheFile);
                Assert.True(store.FileExists(tokenCacheFile));
            }
            finally
            {
                AzureSession.Initialize(() => oldSession, true);
            }
        }