public static List <CapterraProduct> ReadDataFromYAML(string path) { try { using (StreamReader reader = new StreamReader(path)) { List <CapterraProduct> product = new List <CapterraProduct>(); string yamlString = reader.ReadToEnd(); var input = new StringReader(yamlString); var yaml = new YamlStream(); yaml.Load(input); var mapping = (YamlSequenceNode)yaml.Documents[0].RootNode; var items = mapping.Children; foreach (YamlMappingNode item in items) { CapterraProduct tempProduct = new CapterraProduct(); tempProduct.Name = Convert.ToString(item.Children[new YamlScalarNode("name")]); tempProduct.Category = Convert.ToString(item.Children[new YamlScalarNode("tags")]); tempProduct.Twitter = Convert.ToString(item.Children[new YamlScalarNode("twitter")]); tempProduct.ProviderName = "Capterra"; product.Add(tempProduct); } return(product); } } catch (Exception ex) { Helper.LogEvent("Error occurred in ReadDataFromYAML method due to " + ex.Message, System.Diagnostics.EventLogEntryType.Error); throw ex; } }
public void ReadDataFromYAMLTestMethod1() { List <CapterraProduct> capterraProd = new List <CapterraProduct>(); CapterraProduct prod1 = new CapterraProduct(); prod1.ProviderName = "Capterra"; prod1.Category = "Bugs & Issue Tracking,Development Tools"; prod1.Name = "GitGHub"; prod1.Twitter = "github"; capterraProd.Add(prod1); CapterraProduct prod2 = new CapterraProduct(); prod2.ProviderName = "Capterra"; prod2.Category = "Instant Messaging & Chat,Web Collaboration,Productivity"; prod2.Name = "Slack"; prod2.Twitter = "slackhq"; capterraProd.Add(prod2); CapterraProduct prod3 = new CapterraProduct(); prod3.ProviderName = "Capterra"; prod3.Category = "Project Management,Project Collaboration,Development Tools"; prod3.Name = "JIRA Software"; prod3.Twitter = "jira"; capterraProd.Add(prod3); Assert.AreNotEqual(Capterra.ReadDataFromYAML("./../../../feed-products/capterra.yaml"), capterraProd); }