Пример #1
0
        public void IfFalseCondition()
        {
            var compiler = new CSharpViewCompiler {
                BaseClass = "Spark.SparkViewBase"
            };

            var trueChunks = new Chunk[] { new SendLiteralChunk {
                                               Text = "wastrue"
                                           } };

            DoCompileView(compiler, new Chunk[]
            {
                new SendLiteralChunk {
                    Text = "<p>"
                },
                new LocalVariableChunk {
                    Name = "arg", Value = "5"
                },
                new ConditionalChunk {
                    Type = ConditionalType.If, Condition = "arg==6", Body = trueChunks
                },
                new SendLiteralChunk {
                    Text = "</p>"
                }
            });
            var instance = compiler.CreateInstance();
            var contents = instance.RenderView();

            Assert.AreEqual("<p></p>", contents);
        }
Пример #2
0
        public void Markdown()
        {
            var compiler = new CSharpViewCompiler {
                BaseClass = "Spark.SparkViewBase"
            };

            var innerChunks = new Chunk[] { new SendLiteralChunk {
                                                Text = "*test*"
                                            } };

            DoCompileView(compiler, new Chunk[]
            {
                new MarkdownChunk {
                    Body = innerChunks
                }
            });

            Assert.That(compiler.SourceCode, Text.Contains("using(MarkdownOutputScope())"));
            Assert.That(compiler.SourceCode, Text.Contains("Output.Write(\"*test*\");"));

            var instance = compiler.CreateInstance();
            var contents = instance.RenderView().Trim();

            Assert.That(contents, Is.EqualTo("<p><em>test</em></p>"));
        }
Пример #3
0
        public void PageBaseTypeWorksWithOptionalModel()
        {
            var compiler = new CSharpViewCompiler()
            {
                BaseClass     = "Spark.Tests.Stubs.StubSparkView",
                NullBehaviour = NullBehaviour.Strict
            };

            DoCompileView(compiler, new Chunk[]
            {
                new PageBaseTypeChunk {
                    BaseClass = "Spark.Tests.Stubs.StubSparkView2"
                },
                new ViewDataModelChunk {
                    TModel = "Spark.Tests.Models.Comment"
                },
                new SendLiteralChunk {
                    Text = "Hello world"
                }
            });
            var instance = compiler.CreateInstance();

            Assert.That(instance, Is.InstanceOfType(typeof(StubSparkView2)));
            Assert.That(instance, Is.InstanceOfType(typeof(StubSparkView2 <Comment>)));
        }
Пример #4
0
        public void GlobalVariables()
        {
            var compiler = new CSharpViewCompiler {
                BaseClass = "Spark.SparkViewBase"
            };

            DoCompileView(compiler, new Chunk[]
            {
                new SendExpressionChunk {
                    Code = "title"
                },
                new AssignVariableChunk {
                    Name = "item", Value = "8"
                },
                new SendLiteralChunk {
                    Text = ":"
                },
                new SendExpressionChunk {
                    Code = "item"
                },
                new GlobalVariableChunk {
                    Name = "title", Value = "\"hello world\""
                },
                new GlobalVariableChunk {
                    Name = "item", Value = "3"
                }
            });
            var instance = compiler.CreateInstance();
            var contents = instance.RenderView();

            Assert.AreEqual("hello world:8", contents);
        }
Пример #5
0
        public void SimpleOutput()
        {
            var compiler = new CSharpViewCompiler {
                BaseClass = "Spark.SparkViewBase"
            };

            DoCompileView(compiler, new[] { new SendExpressionChunk {
                                                Code = "3 + 4"
                                            } });
            var    instance = compiler.CreateInstance();
            string contents = instance.RenderView();

            Assert.AreEqual("7", contents);
        }
Пример #6
0
        public void MakeAndCompile()
        {
            var compiler = new CSharpViewCompiler {
                BaseClass = "Spark.SparkViewBase"
            };

            DoCompileView(compiler, new[] { new SendLiteralChunk {
                                                Text = "hello world"
                                            } });

            var    instance = compiler.CreateInstance();
            string contents = instance.RenderView();

            Assert.That(contents.Contains("hello world"));
        }
Пример #7
0
        public void TargetNamespace()
        {
            var compiler = new CSharpViewCompiler
            {
                BaseClass  = "Spark.SparkViewBase",
                Descriptor = new SparkViewDescriptor {
                    TargetNamespace = "Testing.Target.Namespace"
                }
            };

            DoCompileView(compiler, new Chunk[] { new SendLiteralChunk {
                                                      Text = "Hello"
                                                  } });
            var instance = compiler.CreateInstance();

            Assert.AreEqual("Testing.Target.Namespace", instance.GetType().Namespace);
        }
Пример #8
0
        public void UnsafeLiteralCharacters()
        {
            var text     = "hello\t\r\n\"world";
            var compiler = new CSharpViewCompiler {
                BaseClass = "Spark.SparkViewBase"
            };

            DoCompileView(compiler, new[] { new SendLiteralChunk {
                                                Text = text
                                            } });

            Assert.That(compiler.SourceCode.Contains("Write(\"hello\\t\\r\\n\\\"world\")"));

            var    instance = compiler.CreateInstance();
            string contents = instance.RenderView();

            Assert.AreEqual(text, contents);
        }
Пример #9
0
        public void LocalVariableDecl()
        {
            var compiler = new CSharpViewCompiler {
                BaseClass = "Spark.SparkViewBase"
            };

            DoCompileView(compiler, new Chunk[]
            {
                new LocalVariableChunk {
                    Name = "i", Value = "5"
                },
                new SendExpressionChunk {
                    Code = "i"
                }
            });
            var    instance = compiler.CreateInstance();
            string contents = instance.RenderView();

            Assert.AreEqual("5", contents);
        }
Пример #10
0
        public void PageBaseTypeOverridesBaseClass()
        {
            var compiler = new CSharpViewCompiler()
            {
                BaseClass     = "Spark.Tests.Stubs.StubSparkView",
                NullBehaviour = NullBehaviour.Strict
            };

            DoCompileView(compiler, new Chunk[]
            {
                new PageBaseTypeChunk {
                    BaseClass = "Spark.Tests.Stubs.StubSparkView2"
                },
                new SendLiteralChunk {
                    Text = "Hello world"
                }
            });
            var instance = compiler.CreateInstance();

            Assert.That(instance, Is.InstanceOfType(typeof(StubSparkView2)));
        }
Пример #11
0
        public void ForEachLoop()
        {
            var compiler = new CSharpViewCompiler {
                BaseClass = "Spark.SparkViewBase"
            };

            DoCompileView(compiler, new Chunk[]
            {
                new LocalVariableChunk {
                    Name = "data", Value = "new[]{3,4,5}"
                },
                new SendLiteralChunk {
                    Text = "<ul>"
                },
                new ForEachChunk
                {
                    Code = "var item in data",
                    Body = new Chunk[]
                    {
                        new SendLiteralChunk {
                            Text = "<li>"
                        },
                        new SendExpressionChunk {
                            Code = "item"
                        },
                        new SendLiteralChunk {
                            Text = "</li>"
                        }
                    }
                },
                new SendLiteralChunk {
                    Text = "</ul>"
                }
            });
            var instance = compiler.CreateInstance();
            var contents = instance.RenderView();

            Assert.AreEqual("<ul><li>3</li><li>4</li><li>5</li></ul>", contents);
        }
Пример #12
0
        public void PageBaseTypeWorksWithGenericParametersIncluded()
        {
            var compiler = new CSharpViewCompiler()
            {
                BaseClass     = "Spark.Tests.Stubs.StubSparkView",
                NullBehaviour = NullBehaviour.Strict
            };

            DoCompileView(compiler, new Chunk[]
            {
                new PageBaseTypeChunk {
                    BaseClass = "Spark.Tests.Stubs.StubSparkView3<Spark.Tests.Models.Comment, string>"
                },
                new SendLiteralChunk {
                    Text = "Hello world"
                }
            });
            var instance = compiler.CreateInstance();

            Assert.That(instance, Is.InstanceOfType(typeof(StubSparkView2)));
            Assert.That(instance, Is.InstanceOfType(typeof(StubSparkView2 <Comment>)));
            Assert.That(instance, Is.InstanceOfType(typeof(StubSparkView3 <Comment, string>)));
        }