internal static void Main(string[] args) { AtTemplate template = new AtTemplate("numbers.al", (Encoding)null); template.Debug = true; try { template.Parse(); template.Context = new object[] { 5 }; Console.WriteLine(template.Render()); } catch (TemplateParsingException ex) { Console.Write("A parsing error at line "); Console.WriteLine(ex.SourceLine); Console.WriteLine(ex.Message); } catch (TemplateCompilationException ex) { Console.WriteLine(ex.ToString()); } catch (TemplateRuntimeException ex) { Console.WriteLine(ex); } Console.ReadLine(); }
public void GlobalLineLocation() { AtTemplate template = new AtTemplate( @"@# line 1 @global string b; int a = 1; @end_global @ @global c = 1; @end_global"); template.Debug = true; try { template.Parse(); Assert.Fail(); } catch (TemplateCompilationException ex) { Assert.AreEqual(8, ex.Errors[0].Line); } }
public void InnerMultiOutput() { AtTemplate template = new AtTemplate( @"@output page2 <html> <br/> @! for (int i = 1; i <= 3; i++) { @output page3 Just kidding. @code for (int j = 1; j < 3; j++) { @text page3 @output page4 OK @end_output @end_text } @end_code @end_output @! } </html> @end_output"); template.Parse(); Dictionary <string, TextWriter> outputs = new Dictionary <string, TextWriter>(); outputs.Add(AtTemplate.MainOutputKey, new StringWriter()); outputs.Add("page2", new StringWriter()); outputs.Add("page3", new StringWriter()); outputs.Add("page4", new StringWriter()); template.Render(outputs); Assert.AreEqual(@"<html> <br/> </html> ", outputs["page2"].ToString()); Assert.AreEqual(@"Just kidding. page3 page3 Just kidding. page3 page3 Just kidding. page3 page3 ", outputs["page3"].ToString()); Assert.AreEqual(@"OK OK OK OK OK OK ", outputs["page4"].ToString()); }
public void SectionReferenceWithinAnOutput() { AtTemplate template = new AtTemplate( @"@output o\1 @+ Outer @end_output @section Outer () line1 @+ inner @end_section @section inner inner line @end_section"); template.Parse(); IDictionary <string, TextWriter> writers = new Dictionary <string, TextWriter>() { { AtTemplate.MainOutputKey, new StringWriter() }, { "o\\1", new StringWriter() } }; template.Render(writers); Assert.That( writers["o\\1"].ToString(), Is.EqualTo(" line1\r\n inner line\r\n")); }
public void TextLine() { AtTemplate template = new AtTemplate("line 1\r\nline 2"); template.Parse(); Assert.AreEqual("line 1\r\nline 2\r\n", template.Render()); }
public void NothingToParse() { using (IAtTemplate template = new AtTemplate("")) { template.Parse(); Assert.IsEmpty(template.Render()); } }
public void Compiler35() { AtTemplate template = new AtTemplate( @"@reference System.Core.dll ", "v3.5"); template.Parse(); }
public void SimpleSectionReference(string code) { AtTemplate template = new AtTemplate(code); template.Parse(); Assert.That(template.Render(), Is.EqualTo("Hello DCG\r\n")); }
public void Compiler20() { AtTemplate template = new AtTemplate( @"@reference System.Data.dll ", "v2.0"); template.Parse(); }
public void Compiler20_35Reference() { AtTemplate template = new AtTemplate( @"@reference System.Core.dll ", "v2.0"); template.Parse(); }
public void EmptyLine() { AtTemplate template = new AtTemplate("\r\n"); template.Parse(); Assert.AreEqual("\r\n", template.Render()); }
public void LineEnding(string lineEnding) { AtTemplate template = new AtTemplate( string.Format("line1{0}line2", lineEnding)); template.Parse(); Assert.That(template.Render(), Is.EqualTo(string.Format("line1{0}line2{0}", lineEnding))); }
public void GenerateAssembly() { ITemplate template = new AtTemplate(TemplateFile, Encoding.Default); template.Parse(); Assert.IsNotNull(template.GeneratedAssemblyPath); }
public void StaticEscaping() { AtTemplate template = new AtTemplate( "@@reference System.dll\r\n"); template.Parse(); Assert.AreEqual("@reference System.dll\r\n", template.Render()); }
public void MultilineEvaluation() { AtTemplate template = new AtTemplate( " @= \"line1\\r\\nline2\""); template.Parse(); Assert.AreEqual(" line1\r\n line2\r\n", template.Render()); }
internal static void Main(string[] args) { AtTemplate template = new AtTemplate("capitalize.al", (Encoding)null); template.Parse(); Console.WriteLine(template.Render()); Console.ReadLine(); }
public void EmptyOutputKey() { AtTemplate template = new AtTemplate( @"main output @output something @end_output"); template.Parse(); }
public void SimpleRender() { ITemplate template = new AtTemplate(TemplateFile, Encoding.Default); template.Parse(); template.Context = new object[] { "arg1", "arg2" }; Assert.AreEqual("1 + 1 = 2\r\n", template.Render()); }
public void FakeWhiteSpace() { AtTemplate template = new AtTemplate( @"line1@@@@ ,line1 too "); template.Parse(); Assert.AreEqual("line1@@\r\n,line1 too\r\n", template.Render()); }
public void Comment() { AtTemplate template = new AtTemplate( @"@# sample line 1 @# sample line 2 "); template.Parse(); Assert.AreEqual(0, template.Render().Length); }
public void GenerateSourceCodeWithDebug() { ITemplate template = new AtTemplate(TemplateFile, Encoding.Default); template.Debug = true; template.Parse(); Console.WriteLine(template.SourceCode); }
internal static void Main(string[] args) { string templateContent = "@! string name = \"Cavingdeep\";\r\n" + "Hello @(name)."; AtTemplate template = new AtTemplate(templateContent); template.Parse(); Console.WriteLine(template.Render()); Console.ReadLine(); }
internal static void Main(string[] args) { AtTemplate template = new AtTemplate("numbers.al", (Encoding)null); template.Parse(); template.Context = new object[] { 5 }; Console.WriteLine(template.Render()); Console.ReadLine(); }
public void SectionReferenceWithParameters() { AtTemplate template = new AtTemplate( @"@! string name = ""Seth""; @+ SayHello(name) @section SayHello(name : string) Hello @(name) @end_section"); template.Parse(); Assert.That(template.Render(), Is.EqualTo("Hello Seth\r\n")); }
public void SectionReferenceWithIndentation() { AtTemplate template = new AtTemplate( @" @+ SayHello @section SayHello line1 line2 @end_section"); template.Parse(); Assert.That(template.Render(), Is.EqualTo(" line1\r\n line2\r\n")); }
internal static void Main(string[] args) { AtTemplate template = new AtTemplate("class.al", (Encoding)null); template.Parse(); template.Context = new object[] { "SampleClass", 5, new string[] { "id", "name" } }; Console.WriteLine(template.Render()); Console.ReadLine(); }
public void CodeDirective() { AtTemplate template = new AtTemplate( @"line 1 @code Dcg.Write(""line 2\r\n""); @end_code line 3"); template.Parse(); Assert.AreEqual("line 1\r\nline 2\r\nline 3\r\n", template.Render()); }
public void MultilineEvaluationWithParentIndentation() { AtTemplate template = new AtTemplate( @"line @code @text @= ""line1\r\nline2"" @end_text @end_code"); template.Parse(); Assert.AreEqual("line\r\n line1\r\n line2\r\n", template.Render()); }
internal static void Main(string[] args) { AtTemplate template = new AtTemplate("person.al", (Encoding)null); template.Parse(); template.Context = new object[] { new Person("Seth", "Yuan", 24, Gender.Male) }; Console.WriteLine(template.Render()); Console.ReadLine(); }
public void LineEndHandlingWithIndentation() { AtTemplate template = new AtTemplate( @" @code @text line1@ continuation @end_text @end_code"); template.Parse(); Assert.That(template.Render(), Is.EqualTo(" line1continuation\r\n")); }