public void CompilationProperties()
        {
            const string srcStr = @"#<conf>
              <compiler base-class-name=""NFX.NUnit.Templatization.TeztTemplate""
                    namespace=""NFX.NUnit.Templatization""
                    abstract=""true""
                    summary=""Test master page""
               />
            #</conf>
            #[class]

            public string Title { get {return ""aaaaa""; } }

            protected abstract void renderHeader();
            protected abstract void renderBody(bool showDetails);
            protected abstract void renderFooter();

            #[render]
            <html>
             <head>
               <title>?[Title]</title>
             </head>
             <body>

              <h1>This is Header</h1>
               @[renderHeader();]

              <h1>This is Body</h1>
               @[renderBody(true);]
              <p>This is in master page</p>

              <h1>This is Footer</h1>
               @[renderFooter();]

             </body>
            </html> ";

            TemplateStringContentSource src = new TemplateStringContentSource(srcStr);

            TextCSTemplateCompiler compiler = new TextCSTemplateCompiler(src);

            compiler.Compile();

            Assert.AreEqual(1, compiler.Count());

            CompileUnit unit = compiler.First();

            Assert.IsNull(unit.CompilationException);
            Assert.IsNull(unit.CompiledTemplateType);
            Assert.IsNotNullOrEmpty(unit.CompiledTemplateTypeName);
            Assert.AreSame(src, unit.TemplateSource);
            Assert.AreEqual(srcStr, src.Content);
        }
        public void La()
        {
            string templateStr = @"
            #<laconf>
              compiler
              {
             base-class-name=""NFX.NUnit.Templatization.TeztTemplate""
             namespace=""TestWebApp.Templates""
             summary=""Test master page""

            using {ns=""NFX.Web"" }
            using {ns=""NFX.RecordModel"" }
            using {ns=""BusinessLogic"" }

            attribute {decl=""BusinessLogic.SultanPermission(4)"" }

               }
            #</laconf>";

            TemplateStringContentSource templateSrc = new TemplateStringContentSource(templateStr);

            TextCSTemplateCompiler compiler = new TextCSTemplateCompiler(templateSrc);

            compiler.Compile();

            Assert.AreEqual(1, compiler.Count());

            CompileUnit unit = compiler.First();

            Assert.IsNull(unit.CompilationException);
            Assert.IsNull(unit.CompiledTemplateType);
            Assert.IsNotNullOrEmpty(unit.CompiledTemplateTypeName);
            Assert.AreSame(templateSrc, unit.TemplateSource);
            Assert.AreEqual(templateStr, templateSrc.Content);
        }
        public void Social()
        {
            string templateStr =@"
            #<laconf>
              compiler {
            base-class-name=""NFX.NUnit.Templatization.TeztTemplate""
            namespace=""NFX.NUnit.Templatization""
            summary=""Social Master Page""
              }
            #</laconf>

            #[class]
              public string Title { get { return ""Social"";}}
            #[render]
            <html>
              <head>
            <title>?[Title]</title>
              </head>

              <body>

              </body>
            </html>";

            TemplateStringContentSource templateSrc = new TemplateStringContentSource(templateStr);

            TextCSTemplateCompiler compiler = new TextCSTemplateCompiler(templateSrc);

            compiler.Compile();

            Assert.AreEqual(1, compiler.Count());

            CompileUnit unit = compiler.First();

            Console.WriteLine(unit.CompiledSource);
        }
        public void InitialState()
        {
            TextCSTemplateCompiler compiler = new TextCSTemplateCompiler();

            Assert.False(compiler.Compiled);
            Assert.False(compiler.CompileCode);
            Assert.IsTrue(string.IsNullOrEmpty(compiler.ReferencedAssembliesSearchPath));
            Assert.AreEqual(0, compiler.Count());
            Assert.AreEqual(0, compiler.CompileUnitsWithErrors.Count());
            Assert.AreEqual(0, compiler.CodeCompilerErrors.Count());
            Assert.AreEqual(6, compiler.ReferencedAssemblies.Count());
        }