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); }
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 ()); }
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); }
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); }
/// <summary> /// Loads the file not saving comments. /// </summary> private void LoadReader(IniReader reader) { reader.IgnoreComments = false; bool 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 ex; } finally { // Always close the file reader.Close(); } }
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); }
public void CommentAfterKey() { 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 = true; Assert.IsTrue (reader.Read ()); Assert.IsTrue (reader.Read ()); Assert.AreEqual ("someValue", reader.Value); Assert.AreEqual ("some comment", reader.Comment); Assert.IsTrue (reader.Read ()); }
/// <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.MercurialStyle: 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); }
/// <summary> /// Loads the file not saving comments. /// </summary> private void Load(IniReader reader) { reader.IgnoreComments = false; bool sectionFound = false; IniSection section = null; 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; section = new IniSection(reader.Name, reader.Comment); sections.Add(section); break; case IniType.Key: section.Set(reader.Name, reader.Value, reader.Comment); break; } } reader.Close(); }
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 ()); }
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); }
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); } }
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 ()); }
/// <include file='IniDocument.xml' path='//Method[@name="LoadIniReader"]/docs/*' /> public void Load(IniReader reader) { LoadReader (reader); }
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); }
public void NoSectionsOrKeys () { StringWriter writer = new StringWriter (); writer.WriteLine (""); IniReader reader = new IniReader (new StringReader (writer.ToString ())); reader.Read (); Assert.IsTrue (true); }
/// <include file='IniDocument.xml' path='//Method[@name="LoadIniReader"]/docs/*' /> public void Load(IniReader reader) { LoadReader(reader); }
/// <include file='IniDocument.xml' path='//Constructor[@name="ConstructorIniReader"]/docs/*' /> public IniDocument(IniReader reader) { fileType = IniFileType.Standard; Load (reader); }
/// <summary> /// Loads the file not saving comments. /// </summary> private void LoadReader(IniReader reader) { reader.IgnoreComments = false; bool 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.RemoveSection (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 ex; } finally { // Always close the file reader.Close (); } }
/// <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.MercurialStyle: 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; }
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 ()); }
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); }
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 ()); }
public static void ParseConfig() { cfgSource = new IniConfigSource (); if (File.Exists (ConfigPath)) { IniReader ireader = new IniReader (ConfigPath); ireader.SetCommentDelimiters(new char[] { '#' }); ireader.SetAssignDelimiters(new char[] { '=' }); cfgSource = new IniConfigSource (new IniDocument (ireader)); } IConfig cfg = cfgSource.Configs["Tangerine"]; if (cfg == null) { cfg = cfgSource.AddConfig ("Tangerine"); } cfg.Alias.AddAlias ("yes", true); cfg.Alias.AddAlias ("true", true); cfg.Alias.AddAlias ("no", false); cfg.Alias.AddAlias ("false", false); Name = cfg.Get ("name", String.Format ("{0}'s Music", Environment.UserName)); PasswordFile = cfg.Get ("password_file"); Debug = cfg.GetBoolean ("debug", false); MaxUsers = cfg.GetInt ("max_users", 0); string defaultLogFile = null; LogFile = cfg.Get ("log_file", defaultLogFile); Port = (ushort) cfg.GetInt ("port", 0); IsPublished = (bool) cfg.GetBoolean ("publish", true); string names = cfg.Get ("plugins", "file,session"); if (names != null && names != String.Empty) { PluginNames = names.Split(','); } else { PluginNames = new string[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); }
/// <include file='IniDocument.xml' path='//Constructor[@name="ConstructorIniReader"]/docs/*' /> public IniDocument(IniReader reader) { fileType = IniFileType.Standard; Load(reader); }
public void NoEndOfLineComment () { StringWriter writer = new StringWriter (); writer.Write (" ; Some comment "); IniReader reader = new IniReader (new StringReader (writer.ToString ())); reader.Read (); Assert.IsTrue (true); }
/// <include file='IniException.xml' path='//Constructor[@name="ConstructorTextReader"]/docs/*' /> internal IniException(IniReader reader, string message) : this(message) { iniReader = reader; this.message = message; }
public void NoEndOfLineSection () { StringWriter writer = new StringWriter (); writer.Write ("[Nini Thing]"); IniReader reader = new IniReader (new StringReader (writer.ToString ())); reader.Read (); Assert.IsTrue (true); }
/// <include file='IniException.xml' path='//Constructor[@name="ConstructorTextReader"]/docs/*' /> internal IniException (IniReader reader, string message) : this (message) { iniReader = reader; this.message = message; }
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 ()); }
public void SectionWithNoEndBracket () { StringWriter writer = new StringWriter (); writer.WriteLine ("[Nini"); writer.WriteLine (""); IniReader reader = new IniReader (new StringReader (writer.ToString ())); Assert.IsTrue (reader.Read ()); }
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]); }
//[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); } }
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 ()); }
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 (); }