public void TestInvalidJSON() { var ex = Assert.Throws <JsonHtmlException>(() => { var document = JsonHtmlConverter.ConvertFromJson("dummy text"); }); Assert.Equal(JsonHtmlException.Error.InvalidJSONInput, ex.ErrorCode); Assert.Matches("dummy text", ex.Message); }
private static void Main(string[] args) { //TODO: have a class (provider) handle logging configuration (possibly from config file) var config = new LoggingConfiguration(); //configuration for NLog starting here var consoleTarget = new ColoredConsoleTarget("consoleTarget") //output to console { Layout = @"${date:format=HH\:mm\:ss} ${level} ${message} ${exception}" }; config.AddTarget(consoleTarget); var fileTarget = new FileTarget("fileTarget") //output to file { ArchiveOldFileOnStartup = true, FileName = "${basedir}/log.txt", Layout = "${longdate} ${level} ${message} ${exception}", }; config.AddTarget(fileTarget); config.AddRuleForAllLevels(consoleTarget); //output everything config.AddRuleForAllLevels(fileTarget); LogManager.Configuration = config; //initialize with configuration Logger logger = LogManager.GetLogger("Program"); //logger for current class var json = File.ReadAllText("input.json"); //read predefined JSON string (from file) var html = JsonHtmlConverter.ConvertFromJson(json); //parse and convert to Document logger.Debug($"{html}"); using (var ms = new MemoryStream()) //only for log output (via string) { using (var sw = new StreamWriter(ms)) { html.Render(sw); } logger.Info($"Generated HTML:{Environment.NewLine}{Encoding.UTF8.GetString(ms.ToArray())}"); } Console.ReadKey(); //don't quit immediately }
public void TestNestedTag(string jsonInput) { var item = JsonHtmlConverter.ConvertFromJson(jsonInput); Assert.NotNull(item); Assert.IsType <Document>(item); Assert.Equal(2, ((Document)item).Children.Count); var doctype = ((Document)item).Children.First(); Assert.IsType <Doctype>(doctype); var head = ((Document)item).Children.Last(); Assert.IsType <Head>(head); Assert.Single(head.Children); var meta = head.Children.First(); Assert.IsType <Meta>(meta); Assert.Matches("foo", meta.GetValue()); }
public void TestDoctypeAttributeValue(string jsonInput, string generatedHtml) { var document = JsonHtmlConverter.ConvertFromJson(jsonInput); Assert.NotNull(document); Assert.IsType <Document>(document); Assert.Single(((Document)document).Children); var doctype = ((Document)document).Children.First(); Assert.IsType <Doctype>(doctype); string html; using (var ms = new MemoryStream()) { using (var st = new StreamWriter(ms)) { document.Render(st); } html = Encoding.UTF8.GetString(ms.ToArray()); } Assert.Equal(generatedHtml, html); }
public void TestInvalidTag(string jsonInput, IHtmlItem htmlItem) { var item = JsonHtmlConverter.ConvertFromJson(jsonInput); Assert.Null(htmlItem); }