public void Test01() {
            string file = Path.GetTempFileName();
            var content = "x <- 1";

            var coll = new ConfigurationSettingCollection();
            coll.Save(file);

            var fi = new FileInfo(file);
            fi.Length.Should().Be(0);

            try {
                using (var sw = new StreamWriter(file)) {
                    sw.Write(content);
                }

                coll.Load(file);
                coll.GetSetting("foo").Should().BeNull();

                var setting = coll.GetSetting("x");
                setting.Should().NotBeNull();
                setting.Name.Should().Be("x");
                setting.Value.Should().Be("1");
                setting.ValueType.Should().Be(ConfigurationSettingValueType.Expression);

            } finally {
                if (File.Exists(file)) {
                    File.Delete(file);
                }
            }
        }
        public void Test01()
        {
            string file    = Path.GetTempFileName();
            var    content = "x <- 1";

            var coll = new ConfigurationSettingCollection();

            coll.Save(file);

            var fi = new FileInfo(file);

            fi.Length.Should().Be(0);

            try {
                using (var sw = new StreamWriter(file)) {
                    sw.Write(content);
                }

                coll.Load(file);
                coll.GetSetting("foo").Should().BeNull();

                var setting = coll.GetSetting("x");
                setting.Should().NotBeNull();
                setting.Name.Should().Be("x");
                setting.Value.Should().Be("1");
                setting.ValueType.Should().Be(ConfigurationSettingValueType.Expression);
            } finally {
                if (File.Exists(file))
                {
                    File.Delete(file);
                }
            }
        }
        private async Task <ConfigurationSettingCollection> OpenCollectionAsync(string projectFolder, IRProjectProperties properties)
        {
            var settings         = new ConfigurationSettingCollection();
            var settingsFilePath = await GetSettingsFilePathAsync(projectFolder, properties);

            if (!string.IsNullOrEmpty(settingsFilePath))
            {
                settings.Load(settingsFilePath.MakeAbsolutePathFromRRelative(projectFolder));
            }
            return(settings);
        }
Exemplo n.º 4
0
        public async Task ConcurrentAccess()
        {
            string folder = Path.Combine(_files.DestinationPath, "ConcurrentAccess");

            if (!Directory.Exists(folder))
            {
                Directory.CreateDirectory(folder);
            }
            string projFile = Path.Combine(folder, "file.rproj");
            var    up       = Substitute.For <UnconfiguredProject>();

            up.FullPath.Returns(projFile);

            var props = Substitute.For <IRProjectProperties>();
            var p     = new ProjectConfigurationSettingsProvider();

            var s1 = new ConfigurationSetting("s1", "1", ConfigurationSettingValueType.String);
            var s2 = new ConfigurationSetting("s2", "2", ConfigurationSettingValueType.String);

            using (var access1 = await p.OpenProjectSettingsAccessAsync(up, props)) {
                access1.Settings.Should().NotBeNull();
                access1.Settings.Should().BeEmpty();

                using (var access2 = await p.OpenProjectSettingsAccessAsync(up, props)) {
                    access2.Settings.Should().NotBeNull();
                    access2.Settings.Add(s1);
                    access1.Settings.Count.Should().Be(1);
                }

                access1.Settings.Add(s2);
                access1.Settings.Count.Should().Be(2);
            }

            var settingsFile = Path.Combine(folder, "Settings.R");

            File.Exists(settingsFile).Should().BeTrue();

            var c = new ConfigurationSettingCollection();

            c.Load(settingsFile);

            c.Count.Should().Be(2);
            c.GetSetting("s1").Value.Should().Be("1");
            c.GetSetting("s2").Value.Should().Be("2");

            File.Delete(settingsFile);
        }
Exemplo n.º 5
0
        public async Task ConcurrentAccess() {
            string folder = Path.Combine(_files.DestinationPath, "ConcurrentAccess");
            if(!Directory.Exists(folder)) {
                Directory.CreateDirectory(folder);
            }
            string projFile = Path.Combine(folder, "file.rproj");
            var up = Substitute.For<UnconfiguredProject>();
            up.FullPath.Returns(projFile);

            var props = Substitute.For<IRProjectProperties>();
            var p = new ProjectConfigurationSettingsProvider();

            var s1 = new ConfigurationSetting("s1", "1", ConfigurationSettingValueType.String);
            var s2 = new ConfigurationSetting("s2", "2", ConfigurationSettingValueType.String);

            using (var access1 = await p.OpenProjectSettingsAccessAsync(up, props)) {
                access1.Settings.Should().NotBeNull();
                access1.Settings.Should().BeEmpty();

                using (var access2 = await p.OpenProjectSettingsAccessAsync(up, props)) {
                    access2.Settings.Should().NotBeNull();
                    access2.Settings.Add(s1);
                    access1.Settings.Count.Should().Be(1);
                }

                access1.Settings.Add(s2);
                access1.Settings.Count.Should().Be(2);
            }

            var settingsFile = Path.Combine(folder, "Settings.R");
            File.Exists(settingsFile).Should().BeTrue();

            var c = new ConfigurationSettingCollection();
            c.Load(settingsFile);

            c.Count.Should().Be(2);
            c.GetSetting("s1").Value.Should().Be("1");
            c.GetSetting("s2").Value.Should().Be("2");

            File.Delete(settingsFile);
        }