Exemplo n.º 1
0
        /// <summary>
        /// Tries to load custom settings and if one is find, tries to merge them to the given default settings.
        /// </summary>
        /// <param name="defaultSettings">The default settings with which to merge the ones.</param>
        /// <returns>The result settings after merge.</returns>
        private static TestEnvironmentSettings TryLoadAndMergeWithCustomSettings(TestEnvironmentSettings defaultSettings)
        {
            string customTestSettingsFileLocation = System.Environment.GetEnvironmentVariable(EnvVariableForCustomSettingLocation, EnvironmentVariableTarget.User) ?? FallBackCustomTestSettingsFileLocation;

            var codeBaseUrl   = new Uri(Assembly.GetExecutingAssembly().CodeBase);
            var codeBasePath  = Uri.UnescapeDataString(codeBaseUrl.AbsolutePath);
            var dirPath       = Path.GetDirectoryName(codeBasePath);
            var customFileLoc = Path.Combine(dirPath, customTestSettingsFileLocation);

            var finalSettings = JObject.FromObject(defaultSettings);

            if (File.Exists(customFileLoc))
            {
                //TODO: Print that parsing custom values...
                var mergeSettings = new JsonMergeSettings {
                    MergeArrayHandling = MergeArrayHandling.Union
                };
                var customSettingsJson = JObject.Parse(File.ReadAllText(customFileLoc));
                customSettingsJson.Merge(finalSettings, mergeSettings);
                finalSettings = customSettingsJson;
            }

            return(finalSettings.ToObject <TestEnvironmentSettings>());
        }
Exemplo n.º 2
0
 /// <summary>
 /// The default constructor.
 /// </summary>
 public TestEnvironmentInvariant()
 {
     ActiveSettings = TryLoadAndMergeWithCustomSettings(DefaultSettings);
 }
Exemplo n.º 3
0
 /// <summary>
 /// The default constructor.
 /// </summary>
 public TestEnvironmentInvariant()
 {
     ActiveSettings = TryLoadAndMergeWithCustomSettings(DefaultSettings);
 }
Exemplo n.º 4
0
        /// <summary>
        /// Tries to load custom settings and if one is find, tries to merge them to the given default settings.
        /// </summary>
        /// <param name="defaultSettings">The default settings with which to merge the ones.</param>
        /// <returns>The result settings after merge.</returns>
        private static TestEnvironmentSettings TryLoadAndMergeWithCustomSettings(TestEnvironmentSettings defaultSettings)
        {
            string customTestSettingsFileLocation = System.Environment.GetEnvironmentVariable(EnvVariableForCustomSettingLocation, EnvironmentVariableTarget.User) ?? FallBackCustomTestSettingsFileLocation;

            var codeBaseUrl = new Uri(Assembly.GetExecutingAssembly().CodeBase);
            var codeBasePath = Uri.UnescapeDataString(codeBaseUrl.AbsolutePath);
            var dirPath = Path.GetDirectoryName(codeBasePath);
            var customFileLoc = Path.Combine(dirPath, customTestSettingsFileLocation);

            var finalSettings = JObject.FromObject(defaultSettings);
            if(File.Exists(customFileLoc))
            {
                //TODO: Print that parsing custom values...
                var mergeSettings = new JsonMergeSettings { MergeArrayHandling = MergeArrayHandling.Union };
                var customSettingsJson = JObject.Parse(File.ReadAllText(customFileLoc));
                customSettingsJson.Merge(finalSettings, mergeSettings);
                finalSettings = customSettingsJson;
            }

            return finalSettings.ToObject<TestEnvironmentSettings>();
        }