public void CanParseCaseInsensitiveGroup() { string iniContent = "[GlobalSettings]" + Environment.NewLine + "Time: all" + Environment.NewLine + "Category: Art,Drawing"; IniDocument document = new IniDocument(iniContent, false, false); Assert.IsTrue(document.Contains("globalsettings")); Assert.AreEqual(document["globalsettings", "category"], "Art,Drawing"); }
//[Test] public void CanParseFailed() { string iniContent = @"F:\Dev\Workshops\knowledgedrink\src\Tests\CommonLibrary.WebModules.Tests\Workshops\Import\FileDiverse_failed_small.txt"; IniDocument document = new IniDocument(iniContent, true, false); Assert.IsTrue(document.Contains("globalsettings")); Assert.AreEqual(document["globalsettings", "category"], "Art,Sculpture"); document.Save(@"F:\Dev\Workshops\knowledgedrink\src\Tests\failureTest.txt"); }
public void CanLoadEmptyDoc() { IniDocument doc = new IniDocument(); doc["globalSettings", "time"] = "all"; doc["globalSettings", "category"] = "Art,Drawing"; doc["", "pageSize"] = 20; Assert.IsTrue(doc.Contains("globalSettings")); Assert.AreEqual(doc["globalSettings", "category"], "Art,Drawing"); Assert.AreEqual(doc["", "pageSize"], 20); }
public void CanParseMultipleGroups() { string iniContent = "[globalSettings]" + Environment.NewLine + "time: all" + Environment.NewLine + "category: Art,Drawing" + Environment.NewLine + "[post1]" + Environment.NewLine + "title:Build a website" + Environment.NewLine + "CreatedBy: user1"; IniDocument document = new IniDocument(iniContent, false); Assert.IsTrue(document.Contains("globalSettings")); Assert.AreEqual(document["globalSettings", "category"], "Art,Drawing"); Assert.AreEqual(document["post1", "title"], "Build a website"); Assert.AreEqual(document["post1", "CreatedBy"], "user1"); }
/// <summary> /// Save to the database. /// </summary> public virtual void Save() { var itemsFromThis = new List <ConfigItem>(); PopulateItems(itemsFromThis, this); var itemsToDelete = new List <ConfigItem>(); var itemsToCreate = new List <ConfigItem>(); var itemsToUpdate = new List <ConfigItem>(); IConfigSource iniDoc = new IniDocument(); var criteria = Query <object> .New().Where("App").Is(_appName).And("Name").Is(_configName); var fromDb = _repo.Find(criteria); foreach (var dbItem in fromDb) { // Does not exist. if (!this.Contains(dbItem.Section, dbItem.Key)) { itemsToDelete.Add(dbItem); } else { itemsToUpdate.Add(dbItem); dbItem.Val = this[dbItem.Section, dbItem.Key].ToString(); } iniDoc[dbItem.Section, dbItem.Key] = dbItem.Val; } foreach (var itemToCreate in itemsFromThis) { if (!iniDoc.Contains(itemToCreate.Section, itemToCreate.Key)) { itemToCreate.CreateDate = DateTime.Now; itemToCreate.CreateUser = ""; itemToCreate.UpdateDate = DateTime.Now; itemToCreate.UpdateUser = ""; itemsToCreate.Add(itemToCreate); } } // Now persist to db. itemsToDelete.ForEach(c => _repo.Delete(c.Id)); itemsToUpdate.ForEach(c => _repo.Update(c)); itemsToCreate.ForEach(c => _repo.Create(c)); }
public void CanParseMultipleGroupsWithSameName() { string iniContent = "[post]" + Environment.NewLine + "title:Build a website0" + Environment.NewLine + "CreatedBy: user0" + Environment.NewLine + Environment.NewLine + "[post]" + Environment.NewLine + "title:Build a website1" + Environment.NewLine + "CreatedBy: user1"; IniDocument doc = new IniDocument(iniContent, false); Assert.IsTrue(doc.Contains("post")); Assert.AreEqual(doc.Count, 1); Assert.AreEqual(doc.GetSection("post", 0).Get <string>("title"), "Build a website0"); Assert.AreEqual(doc.GetSection("post", 0).Get <string>("CreatedBy"), "user0"); Assert.AreEqual(doc.GetSection("post", 1).Get <string>("title"), "Build a website1"); Assert.AreEqual(doc.GetSection("post", 1).Get <string>("CreatedBy"), "user1"); }