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 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 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 ()); }
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(); } }
/// <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 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 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 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 NoEndOfLineSection () { StringWriter writer = new StringWriter (); writer.Write ("[Nini Thing]"); IniReader reader = new IniReader (new StringReader (writer.ToString ())); reader.Read (); Assert.IsTrue (true); }
public void NoEndOfLineComment () { StringWriter writer = new StringWriter (); writer.Write (" ; Some comment "); IniReader reader = new IniReader (new StringReader (writer.ToString ())); reader.Read (); Assert.IsTrue (true); }
/// <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> /// Load control bindings from an arbitrary stream. /// If there are already bindings, the new ones will be added. /// New bindings overwrite old bindings. /// </summary> /// <param name="file">The source of the INI data</param> public void LoadConfiguration(Stream file) { using (IniReader r = new IniReader(file)) { while (true) { if (r.Type != IniType.Section) { if (!r.MoveToNextSection()) break; } String[] parts = r.Name.Split(' '); if (parts[0] == "KeyBindings") { if (parts.Length > 1) { ControlState cs = rootcstate.GetChild(parts[1], true); cs.ReadIni(r); } else { rootcstate.ReadIni(r); } } /*else if (parts[0] == "MouseButtons") { }*/ else if (parts[0] == "WindowEvents") { while (r.Read()) { if (r.Type == IniType.Section) break; if (r.Type == IniType.Key) winEvents[r.Name] = r.Value; } } else r.MoveToNextSection(); } } }
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 NoSectionsOrKeys () { StringWriter writer = new StringWriter (); writer.WriteLine (""); IniReader reader = new IniReader (new StringReader (writer.ToString ())); reader.Read (); Assert.IsTrue (true); }
//[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 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 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 (); }
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 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 ()); }
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 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 ()); }
/// <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 (); }