상속: IDisposable
예제 #1
1
        public void NormalSectionAndKey() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Logging]");
            writer.WriteLine(" great logger =   log4net  ");
            writer.WriteLine("  [Pets] ; pets comment  ");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.AreEqual(IniReadState.Initial, reader.ReadState);
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(IniReadState.Interactive, reader.ReadState);
            Assert.AreEqual(IniType.Section, reader.Type);
            Assert.AreEqual("Logging", reader.Name);
            Assert.AreEqual("", reader.Value);
            Assert.IsNull(reader.Comment);

            Assert.IsTrue(reader.Read());
            Assert.AreEqual(IniType.Key, reader.Type);
            Assert.AreEqual("great logger", reader.Name);
            Assert.AreEqual("log4net", reader.Value);
            Assert.AreEqual(null, reader.Comment);

            Assert.IsTrue(reader.Read());
            Assert.AreEqual(IniType.Section, reader.Type);
            Assert.AreEqual("Pets", reader.Name);
            Assert.AreEqual("", reader.Value);
            Assert.IsNull(reader.Comment);
        }
예제 #2
0
        public void NormalComment() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("");
            writer.WriteLine(" ; Something");
            writer.WriteLine(" ;   Some comment  ");
            writer.WriteLine(" ;");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.AreEqual(IniReadState.Initial, reader.ReadState);
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(IniReadState.Interactive, reader.ReadState);
            Assert.AreEqual(IniType.Empty, reader.Type);
            Assert.AreEqual("", reader.Name);
            Assert.AreEqual(null, reader.Comment);

            Assert.IsTrue(reader.Read());
            Assert.AreEqual(IniType.Empty, reader.Type);
            Assert.AreEqual("Something", reader.Comment);

            Assert.IsTrue(reader.Read());
            Assert.AreEqual(IniType.Empty, reader.Type);
            Assert.AreEqual("Some comment", reader.Comment);

            Assert.IsTrue(reader.Read());
            Assert.AreEqual("", reader.Comment);

            Assert.IsFalse(reader.Read());
        }
예제 #3
0
        public void NoEndOfLineKeyNoValue()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("[Nini Thing]");
            writer.Write(" somekey = ");

            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            reader.Read();
            Assert.IsTrue(true);
        }
예제 #4
0
        /// <summary>
        /// Loads the file not saving comments.
        /// </summary>
        private void LoadReader(IniReader reader)
        {
            reader.IgnoreComments = false;
            var        sectionFound = false;
            IniSection section      = null;

            try {
                while (reader.Read())
                {
                    switch (reader.Type)
                    {
                    case IniType.Empty:
                        if (!sectionFound)
                        {
                            initialComment.Add(reader.Comment);
                        }
                        else
                        {
                            section.Set(reader.Comment);
                        }

                        break;

                    case IniType.Section:
                        sectionFound = true;
                        // If section already exists then overwrite it
                        if (sections[reader.Name] != null)
                        {
                            sections.Remove(reader.Name);
                        }
                        section = new IniSection(reader.Name, reader.Comment);
                        sections.Add(section);

                        break;

                    case IniType.Key:
                        if (section.GetValue(reader.Name) == null)
                        {
                            section.Set(reader.Name, reader.Value, reader.Comment);
                        }
                        break;
                    }
                }
            }
            catch (Exception ex) {
                throw;
            }
            finally {
                // Always close the file
                reader.Close();
            }
        }
예제 #5
0
        public void ConsumeAllKeyText()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("email = \"John Smith\"; <*****@*****.**>");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            reader.ConsumeAllKeyText = true;

            Assert.IsTrue(reader.Read());
            Assert.AreEqual("email", reader.Name);
            Assert.AreEqual("\"John Smith\"; <*****@*****.**>", reader.Value);
        }
예제 #6
0
        public void IgnoreComments()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("[Nini]");
            writer.WriteLine(" some key = something ; my comment 1");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            reader.IgnoreComments = true;
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(null, reader.Comment);
        }
예제 #7
0
        public void MoveToNextSection()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("; Test");
            writer.WriteLine("; Test 1");
            writer.WriteLine("[Nini Thing]");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.MoveToNextSection());
            Assert.AreEqual(4, reader.LineNumber);
            Assert.AreEqual(IniType.Section, reader.Type);
            Assert.IsFalse(reader.MoveToNextSection());
        }
예제 #8
0
        public void NoLineContinuation()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("[Test]");
            writer.WriteLine(" option = this will be \\ ");
            writer.WriteLine("continued later");

            IniReader reader = new IniReader
                                   (new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
        }
예제 #9
0
        public void KeyWithQuotes() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Nini]");
            writer.WriteLine("  whitespace = \"  remove thing\"  ");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(IniType.Key, reader.Type);
            Assert.AreEqual("whitespace", reader.Name);
            Assert.AreEqual("  remove thing", reader.Value);
            Assert.AreEqual(null, reader.Comment);

            Assert.IsFalse(reader.Read());
        }
예제 #10
0
        public void AcceptNoKeyEndings()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("[Mysql]");
            writer.WriteLine("quick");
            writer.WriteLine(" my key = new key");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            reader.AcceptNoAssignmentOperator = true;

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.AreEqual("quick", reader.Name);
            Assert.AreEqual("", reader.Value);
        }
예제 #11
0
        public void KeyWithQuotes()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("[Nini]");
            writer.WriteLine("  whitespace = \"  remove thing\"  ");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(IniType.Key, reader.Type);
            Assert.AreEqual("whitespace", reader.Name);
            Assert.AreEqual("  remove thing", reader.Value);
            Assert.AreEqual(null, reader.Comment);

            Assert.IsFalse(reader.Read());
        }
예제 #12
0
        public void KeysWithSameName()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("[Nini]");
            writer.WriteLine(" superkey = legal ");
            writer.WriteLine("[Pets]");
            writer.WriteLine(" superkey = legal ");
            writer.WriteLine(" superkey = overrides original ");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());

            reader.Read();
        }
예제 #13
0
        public void NoCommentAfterKey()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("[Test]");
            writer.WriteLine(" option = someValue ; some comment");
            writer.WriteLine("");

            IniReader reader = new IniReader
                                   (new StringReader(writer.ToString()));

            reader.AcceptCommentAfterKey = false;

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.AreEqual("someValue ; some comment", reader.Value);
            Assert.IsTrue(reader.Read());
        }
예제 #14
0
        public void LineContinuationNoSpace()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("[Test]");
            writer.WriteLine(" option = this will be \\");
            writer.WriteLine("continued later");

            IniReader reader = new IniReader
                                   (new StringReader(writer.ToString()));

            reader.LineContinuation = true;

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.AreEqual("this will be continued later", reader.Value);
            Assert.IsFalse(reader.Read());
        }
예제 #15
0
        public void MoveToNextKey()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("; Test");
            writer.WriteLine("; Test 1");
            writer.WriteLine("[Nini Thing]");
            writer.WriteLine("; Test");
            writer.WriteLine(" my key = new key");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsFalse(reader.MoveToNextKey());
            Assert.AreEqual(4, reader.LineNumber);
            Assert.IsTrue(reader.MoveToNextKey());
            Assert.AreEqual(6, reader.LineNumber);
            Assert.AreEqual(IniType.Key, reader.Type);
            Assert.AreEqual("my key", reader.Name);
        }
예제 #16
0
        public void SectionsWithSameName()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("[Nini]");
            writer.WriteLine(" some key = something");
            writer.WriteLine("[Nini]");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            try {
                reader.Read();
            }
            catch (IniException e) {
                Assert.AreEqual(3, e.LineNumber);
                Assert.AreEqual(6, e.LinePosition);
            }
        }
예제 #17
0
        public void GetAndSetDelimiters()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("[Test]");
            writer.WriteLine(" option = someValue ; some comment");

            IniReader reader = new IniReader
                                   (new StringReader(writer.ToString()));

            Assert.AreEqual('=', reader.GetAssignDelimiters()[0]);
            reader.SetAssignDelimiters(new char[] { ':', '=' });
            Assert.AreEqual(':', reader.GetAssignDelimiters()[0]);
            Assert.AreEqual('=', reader.GetAssignDelimiters()[1]);

            Assert.AreEqual(';', reader.GetCommentDelimiters()[0]);
            reader.SetCommentDelimiters(new char[] { '#', ';' });
            Assert.AreEqual('#', reader.GetCommentDelimiters()[0]);
            Assert.AreEqual(';', reader.GetCommentDelimiters()[1]);
        }
예제 #18
0
        //[ExpectedException (typeof (IniException))]
        public void LinePositionAndNumber()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("; Test");
            writer.WriteLine("; Test 1");
            writer.WriteLine("[Nini Thing");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());

            try {
                reader.Read();
            }
            catch (IniException e) {
                Assert.AreEqual(3, e.LineNumber);
                Assert.AreEqual(13, e.LinePosition);
            }
        }
예제 #19
0
        public void EndCommentUnix()
        {
            StringWriter writer = new StringWriter();

            writer.WriteLine("[Test]");
            writer.WriteLine("; Test");
            writer.WriteLine(" float1 = 1.0 ;"); // no space after comment
            writer.WriteLine(" float2 = 2.0");

            IniReader reader = new IniReader
                                   (new StringReader(ConvertToUnix(writer.ToString())));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.AreEqual("float1", reader.Name, "float1 not found");
            Assert.AreEqual("1.0", reader.Value, "float1 value not found");
            Assert.IsTrue(reader.Read(), "Could not find last float");
            Assert.AreEqual("float2", reader.Name);
            Assert.AreEqual("2.0", reader.Value);
        }
예제 #20
0
        /// <summary>
        /// Returns a proper INI reader depending upon the type parameter.
        /// </summary>
        private IniReader GetIniReader(TextReader reader, IniFileType type)
        {
            IniReader result = new IniReader(reader);

            switch (type)
            {
            case IniFileType.Standard:
                // do nothing
                break;

            case IniFileType.PythonStyle:
                result.AcceptCommentAfterKey = false;
                result.SetCommentDelimiters(new char[] { ';', '#' });
                result.SetAssignDelimiters(new char[] { ':' });
                break;

            case IniFileType.SambaStyle:
                result.AcceptCommentAfterKey = false;
                result.SetCommentDelimiters(new char[] { ';', '#' });
                result.LineContinuation = true;
                break;

            case IniFileType.MysqlStyle:
                result.AcceptCommentAfterKey      = false;
                result.AcceptNoAssignmentOperator = true;
                result.SetCommentDelimiters(new char[] { '#' });
                result.SetAssignDelimiters(new char[] { ':', '=' });
                break;

            case IniFileType.WindowsStyle:
                result.ConsumeAllKeyText = true;
                break;
            }

            return(result);
        }
예제 #21
0
        /// <summary>
        /// Loads the file not saving comments.
        /// </summary>
        private void LoadReader(IniReader reader) {
            reader.IgnoreComments = false;
            var sectionFound = false;
            IniSection section = null;

            try {
                while(reader.Read()) {
                    switch(reader.Type) {
                        case IniType.Empty:
                            if(!sectionFound) {
                                initialComment.Add(reader.Comment);
                            }
                            else {
                                section.Set(reader.Comment);
                            }

                            break;
                        case IniType.Section:
                            sectionFound = true;
                            // If section already exists then overwrite it
                            if(sections[reader.Name] != null) {
                                sections.Remove(reader.Name);
                            }
                            section = new IniSection(reader.Name, reader.Comment);
                            sections.Add(section);

                            break;
                        case IniType.Key:
                            if(section.GetValue(reader.Name) == null) {
                                section.Set(reader.Name, reader.Value, reader.Comment);
                            }
                            break;
                    }
                }
            }
            catch(Exception ex) {
                throw;
            }
            finally {
                // Always close the file
                reader.Close();
            }
        }
예제 #22
0
        public void GetAndSetDelimiters() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Test]");
            writer.WriteLine(" option = someValue ; some comment");

            IniReader reader = new IniReader
                (new StringReader(writer.ToString()));

            Assert.AreEqual('=', reader.GetAssignDelimiters()[0]);
            reader.SetAssignDelimiters(new char[] { ':', '=' });
            Assert.AreEqual(':', reader.GetAssignDelimiters()[0]);
            Assert.AreEqual('=', reader.GetAssignDelimiters()[1]);

            Assert.AreEqual(';', reader.GetCommentDelimiters()[0]);
            reader.SetCommentDelimiters(new char[] { '#', ';' });
            Assert.AreEqual('#', reader.GetCommentDelimiters()[0]);
            Assert.AreEqual(';', reader.GetCommentDelimiters()[1]);
        }
예제 #23
0
        public void LineContinuationNoSpace() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Test]");
            writer.WriteLine(" option = this will be \\");
            writer.WriteLine("continued later");

            IniReader reader = new IniReader
                (new StringReader(writer.ToString()));
            reader.LineContinuation = true;

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.AreEqual("this will be continued later", reader.Value);
            Assert.IsFalse(reader.Read());
        }
예제 #24
0
        public void EndCommentUnix() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Test]");
            writer.WriteLine("; Test");
            writer.WriteLine(" float1 = 1.0 ;"); // no space after comment
            writer.WriteLine(" float2 = 2.0");

            IniReader reader = new IniReader
                (new StringReader(ConvertToUnix(writer.ToString())));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.AreEqual("float1", reader.Name, "float1 not found");
            Assert.AreEqual("1.0", reader.Value, "float1 value not found");
            Assert.IsTrue(reader.Read(), "Could not find last float");
            Assert.AreEqual("float2", reader.Name);
            Assert.AreEqual("2.0", reader.Value);
        }
예제 #25
0
        public void NoEndOfLineKeyNoValue() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Nini Thing]");
            writer.Write(" somekey = ");

            IniReader reader = new IniReader(new StringReader(writer.ToString()));
            reader.Read();
            Assert.IsTrue(true);
        }
예제 #26
0
        public void AcceptNoKeyEndings() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Mysql]");
            writer.WriteLine("quick");
            writer.WriteLine(" my key = new key");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            reader.AcceptNoAssignmentOperator = true;

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.AreEqual("quick", reader.Name);
            Assert.AreEqual("", reader.Value);
        }
예제 #27
0
        public void CommentCharInString() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("Value = \"WEB;www.google.com|WEB;www.yahoo.com\"");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.AreEqual("Value", reader.Name);
            Assert.AreEqual("WEB;www.google.com|WEB;www.yahoo.com", reader.Value);
        }
예제 #28
0
        //[ExpectedException (typeof (IniException))]
        public void LinePositionAndNumber() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("; Test");
            writer.WriteLine("; Test 1");
            writer.WriteLine("[Nini Thing");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());

            try {
                reader.Read();
            }
            catch(IniException e) {
                Assert.AreEqual(3, e.LineNumber);
                Assert.AreEqual(13, e.LinePosition);
            }
        }
예제 #29
0
 public IniDocument(IniReader reader)
 {
     fileType = IniFileType.Standard;
     Load(reader);
 }
예제 #30
0
 public void Load(IniReader reader) {
     LoadReader(reader);
 }
예제 #31
0
 public IniDocument(IniReader reader) {
     fileType = IniFileType.Standard;
     Load(reader);
 }
예제 #32
0
        /// <summary>
        /// Returns a proper INI reader depending upon the type parameter.
        /// </summary>
        private IniReader GetIniReader(TextReader reader, IniFileType type) {
            IniReader result = new IniReader(reader);

            switch(type) {
                case IniFileType.Standard:
                    // do nothing
                    break;
                case IniFileType.PythonStyle:
                    result.AcceptCommentAfterKey = false;
                    result.SetCommentDelimiters(new char[] { ';', '#' });
                    result.SetAssignDelimiters(new char[] { ':' });
                    break;
                case IniFileType.SambaStyle:
                    result.AcceptCommentAfterKey = false;
                    result.SetCommentDelimiters(new char[] { ';', '#' });
                    result.LineContinuation = true;
                    break;
                case IniFileType.MysqlStyle:
                    result.AcceptCommentAfterKey = false;
                    result.AcceptNoAssignmentOperator = true;
                    result.SetCommentDelimiters(new char[] { '#' });
                    result.SetAssignDelimiters(new char[] { ':', '=' });
                    break;
                case IniFileType.WindowsStyle:
                    result.ConsumeAllKeyText = true;
                    break;
            }

            return result;
        }
예제 #33
0
        public void MoveToNextKey() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("; Test");
            writer.WriteLine("; Test 1");
            writer.WriteLine("[Nini Thing]");
            writer.WriteLine("; Test");
            writer.WriteLine(" my key = new key");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsFalse(reader.MoveToNextKey());
            Assert.AreEqual(4, reader.LineNumber);
            Assert.IsTrue(reader.MoveToNextKey());
            Assert.AreEqual(6, reader.LineNumber);
            Assert.AreEqual(IniType.Key, reader.Type);
            Assert.AreEqual("my key", reader.Name);
        }
예제 #34
0
        public void NoSectionsOrKeys() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("");

            IniReader reader = new IniReader(new StringReader(writer.ToString()));
            reader.Read();
            Assert.IsTrue(true);
        }
예제 #35
0
        public void KeysWithSameName() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Nini]");
            writer.WriteLine(" superkey = legal ");
            writer.WriteLine("[Pets]");
            writer.WriteLine(" superkey = legal ");
            writer.WriteLine(" superkey = overrides original ");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());

            reader.Read();
        }
예제 #36
0
        public void ConsumeAllKeyText() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("email = \"John Smith\"; <*****@*****.**>");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));
            reader.ConsumeAllKeyText = true;

            Assert.IsTrue(reader.Read());
            Assert.AreEqual("email", reader.Name);
            Assert.AreEqual("\"John Smith\"; <*****@*****.**>", reader.Value);
        }
예제 #37
0
        public void SectionsWithSameName() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Nini]");
            writer.WriteLine(" some key = something");
            writer.WriteLine("[Nini]");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            try {
                reader.Read();
            }
            catch(IniException e) {
                Assert.AreEqual(3, e.LineNumber);
                Assert.AreEqual(6, e.LinePosition);
            }
        }
예제 #38
0
        public void NoEndOfLineComment() {
            StringWriter writer = new StringWriter();
            writer.Write(" ;   Some comment  ");

            IniReader reader = new IniReader(new StringReader(writer.ToString()));
            reader.Read();
            Assert.IsTrue(true);
        }
예제 #39
0
        public void IgnoreComments() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Nini]");
            writer.WriteLine(" some key = something ; my comment 1");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            reader.IgnoreComments = true;
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(null, reader.Comment);
        }
예제 #40
0
        public void NoEndOfLineSection() {
            StringWriter writer = new StringWriter();
            writer.Write("[Nini Thing]");

            IniReader reader = new IniReader(new StringReader(writer.ToString()));
            reader.Read();
            Assert.IsTrue(true);
        }
예제 #41
0
        public void NoEndingQuote() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Nini]");
            writer.WriteLine(" some key = \" something ");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
        }
예제 #42
0
        public void NoLineContinuation() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Test]");
            writer.WriteLine(" option = this will be \\ ");
            writer.WriteLine("continued later");

            IniReader reader = new IniReader
                (new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
        }
예제 #43
0
        public void KeyWithNoEquals() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Nini]");
            writer.WriteLine(" some key ");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
        }
예제 #44
0
        public void NoCommentAfterKey() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Test]");
            writer.WriteLine(" option = someValue ; some comment");
            writer.WriteLine("");

            IniReader reader = new IniReader
                (new StringReader(writer.ToString()));
            reader.AcceptCommentAfterKey = false;

            Assert.IsTrue(reader.Read());
            Assert.IsTrue(reader.Read());
            Assert.AreEqual("someValue ; some comment", reader.Value);
            Assert.IsTrue(reader.Read());
        }
예제 #45
0
        public void MoveToNextSection() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("; Test");
            writer.WriteLine("; Test 1");
            writer.WriteLine("[Nini Thing]");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.MoveToNextSection());
            Assert.AreEqual(4, reader.LineNumber);
            Assert.AreEqual(IniType.Section, reader.Type);
            Assert.IsFalse(reader.MoveToNextSection());
        }
예제 #46
0
 internal IniException(IniReader reader, string message) : this(message) {
     iniReader = reader;
     this.message = message;
 }
예제 #47
0
 public void Load(IniReader reader)
 {
     LoadReader(reader);
 }
예제 #48
0
        public void SectionWithNoEndBracket() {
            StringWriter writer = new StringWriter();
            writer.WriteLine("[Nini");
            writer.WriteLine("");
            IniReader reader = new IniReader(new StringReader(writer.ToString()));

            Assert.IsTrue(reader.Read());
        }
예제 #49
0
 internal IniException(IniReader reader, string message) : this(message) {
     iniReader    = reader;
     this.message = message;
 }