Example #1
0
        public void Construct_GivenFileNameWhichDoesntExist_ShouldNotThrow()
        {
            //---------------Set up test pack-------------------
            using (var tempFile = new AutoDeletingTempFile(".ini"))
            {
                File.Delete(tempFile.Path);
                //---------------Assert Precondition----------------
                Assert.IsFalse(File.Exists(tempFile.Path));
                //---------------Execute Test ----------------------
                INIFile_EXPOSES_Sections iniFile = null;
                Assert.DoesNotThrow(() => iniFile = Create(tempFile.Path));

                //---------------Test Result -----------------------
                Assert.IsNotNull(iniFile.Data);
                Assert.IsFalse(iniFile.Data.Keys.Any(k => k != ""));
            }
        }
Example #2
0
        public void Parse_WhenValueIsQuoted_ShouldSetDataValueUnQuoted()
        {
            //---------------Set up test pack-------------------
            using (var tempFile = new AutoDeletingTempFile(".ini"))
            {
                var section      = RandString();
                var key          = RandString();
                var value        = RandString();
                var iniDataLines = new[] { "[" + section + "]", key + "=\"" + value + "\"" };
                tempFile.Write(iniDataLines);

                //---------------Assert Precondition----------------
                Assert.IsTrue(File.Exists(tempFile.Path));

                //---------------Execute Test ----------------------
                var iniFile = new INIFile_EXPOSES_Sections(tempFile.Path);

                //---------------Test Result -----------------------
                Assert.IsNotNull(iniFile.Data);
                Assert.IsTrue(iniFile.Data.Keys.Contains(section));
                Assert.AreEqual(value, iniFile.Data[section][key]);
            }
        }
Example #3
0
        public void Construct_GivenFileName_ShouldLoadFile()
        {
            //---------------Set up test pack-------------------
            using (var tempFile = new AutoDeletingTempFile(".ini"))
            {
                var section = RandString();
                var key = RandString();
                var value = RandString();
                var iniDataLines = new[] { "[" + section + "]", key + "=" + value };
                tempFile.Write(iniDataLines);

                //---------------Assert Precondition----------------
                Assert.IsTrue(File.Exists(tempFile.Path));

                //---------------Execute Test ----------------------
                var iniFile = new INIFile_EXPOSES_Sections(tempFile.Path);

                //---------------Test Result -----------------------
                Assert.IsNotNull(iniFile.Data);
                Assert.IsTrue(iniFile.Data.Keys.Contains(section));
                Assert.AreEqual(iniFile.Data[section][key], value);
            }
        }
Example #4
0
        public void Construct_WhenGivenPathButFileDoesntExist_ShouldCreateFile()
        {
            //---------------Set up test pack-------------------
            using (var tempFile = new AutoDeletingTempFile(".ini"))
            {
                File.Delete(tempFile.Path);
                //---------------Assert Precondition----------------
                Assert.IsFalse(File.Exists(tempFile.Path));

                //---------------Execute Test ----------------------
                var iniFile = Create(tempFile.Path);

                //---------------Test Result -----------------------
                Assert.IsTrue(File.Exists(tempFile.Path));
            }
        }
Example #5
0
        public void ShouldLoadMultipleSectionsAndKeys_NotCaringAboutKeyOrSectionCase()
        {
            using (var tempFile = new AutoDeletingTempFile(".ini"))
            {
                //---------------Set up test pack-------------------
                var lines = new[] {
                    "[Section1]",
                    "path=\"C:\\tmp\\something.txt\"",
                    "color=Red",
                    "",
                    "[Section2]",
                    "number=12",
                    "Season = Green"
                };
                tempFile.Write(lines);
                //---------------Assert Precondition----------------

                //---------------Execute Test ----------------------
                var iniFile = Create(tempFile.Path);

                //---------------Test Result -----------------------
                Assert.AreEqual("C:\\tmp\\something.txt", iniFile.Data["Section1"]["path"]);
                Assert.AreEqual("Red", iniFile.Data["Section1"]["color"]);
                Assert.AreEqual("12", iniFile.Data["section2"]["number"]);
                Assert.AreEqual("Green", iniFile.Data["Section2"]["season"]);
            }
        }
Example #6
0
        public void Persist_GivenNoFileName_ShouldWriteINIDataToOriginalFile()
        {
            //---------------Set up test pack-------------------
            using (var tempFile = new AutoDeletingTempFile(".ini"))
            {
                //---------------Assert Precondition----------------
                var writer = Create(tempFile.Path);
                var section = RandString();
                var key = RandString();
                var value = RandString();
                writer.AddSection(section);
                writer.Data[section][key] = value;

                //---------------Execute Test ----------------------
                writer.Persist();
                var reader = Create(tempFile.Path);

                //---------------Test Result -----------------------
                Assert.AreEqual(value, reader.Data[section][key]);
            }
        }
Example #7
0
        public void Parse_WhenValueIsQuoted_ShouldSetDataValueUnQuoted()
        {
            //---------------Set up test pack-------------------
            using (var tempFile = new AutoDeletingTempFile(".ini"))
            {
                var section = RandString();
                var key = RandString();
                var value = RandString();
                var iniDataLines = new[] { "[" + section + "]", key + "=\"" + value + "\"" };
                tempFile.Write(iniDataLines);

                //---------------Assert Precondition----------------
                Assert.IsTrue(File.Exists(tempFile.Path));

                //---------------Execute Test ----------------------
                var iniFile = new INIFile_EXPOSES_Sections(tempFile.Path);

                //---------------Test Result -----------------------
                Assert.IsNotNull(iniFile.Data);
                Assert.IsTrue(iniFile.Data.Keys.Contains(section));
                Assert.AreEqual(value, iniFile.Data[section][key]);
            }
        }
Example #8
0
        public void IndexedGetter_WhenSectionDoesntExist_ShouldCreateSection()
        {
            //---------------Set up test pack-------------------
            var section = RandomValueGen.GetRandomString();
            var key = RandomValueGen.GetRandomString();
            var value = RandomValueGen.GetRandomString();

            //---------------Assert Precondition----------------
            using (var tempFile = new AutoDeletingTempFile(".ini"))
            {
                var ini = new INIFile(tempFile.Path);
                ini[section][key] = value;
                ini.Persist();

                //---------------Execute Test ----------------------
                var ini2 = new INIFile(tempFile.Path);
                var result = ini2[section][key];

                //---------------Test Result -----------------------
                Assert.AreEqual(value, result);
            }
        }
Example #9
0
        public void Construct_WhenSourceContainsComments_ShouldIgnoreCommentedParts()
        {
            using (var tempFile = new AutoDeletingTempFile(".ini"))
            {
                //---------------Set up test pack-------------------
                var src = new[]
                {
                    "; created by some generator",
                    "[general] ; general settings go here",
                    ";this line should be ignored",
                    "key=value ; this part of the line should be ignored"
                };
                File.WriteAllBytes(tempFile.Path, Encoding.UTF8.GetBytes(String.Join(Environment.NewLine, src)));

                //---------------Assert Precondition----------------

                //---------------Execute Test ----------------------
                var ini = Create(tempFile.Path);

                //---------------Test Result -----------------------
                Assert.AreEqual(1, ini.Data.Count);
                Assert.AreEqual(1, ini["general"].Keys.Count);
                Assert.AreEqual(1, ini["General"].Keys.Count);
                Assert.AreEqual("value", ini["general"]["key"]);
            }
        }