private void TestWriteDefinition_Works(bool server) { ITemplate tpl = mocks.StrictMock <ITemplate>(); if (!server) { Expect.Call(tpl.EnableClientCreate).Return(true); } mocks.ReplayAll(); var cb = new CodeBuilder(); var f1 = mocks.StrictMock <IFragment>(); var f2 = mocks.StrictMock <IFragment>(); using (mocks.Ordered()) { Expect.Call(f1.TryMergeWithNext(f2)).Return(null); Expect.Call(() => f1.WriteCode(tpl, server ? FragmentCodePoint.ServerRender : FragmentCodePoint.ClientRender, cb)).Do((Action <ITemplate, FragmentCodePoint, CodeBuilder>)((_, __, x) => x.AppendLine("[a]"))); Expect.Call(() => f2.WriteCode(tpl, server ? FragmentCodePoint.ServerRender : FragmentCodePoint.ClientRender, cb)).Do((Action <ITemplate, FragmentCodePoint, CodeBuilder>)((_, __, x) => x.AppendLine("[b]"))); } string expected = "private string Method(int p1, string param2) {" + Environment.NewLine + " StringBuilder sb = new StringBuilder();"+ Environment.NewLine + " [a]"+ Environment.NewLine + " [b]"+ Environment.NewLine + " return sb.ToString();"+ Environment.NewLine + "}" + Environment.NewLine + Environment.NewLine; mocks.ReplayAll(); var member = new RenderFunctionMember("Method", "int p1, string param2"); member.AddFragment(f1); member.AddFragment(f2); if (server) { member.WriteCode(tpl, MemberCodePoint.ServerDefinition, cb); } else { member.WriteCode(tpl, MemberCodePoint.ClientDefinition, cb); } Assert.AreEqual(expected, cb.ToString()); Assert.AreEqual(0, cb.IndentLevel); mocks.VerifyAll(); }
public void TestRender_Works() { var tpl = mocks.StrictMock <ITemplate>(); var ctl = mocks.StrictMock <IInstantiatedTemplateControl>(); var f1 = mocks.StrictMock <IFragment>(); var f2 = mocks.StrictMock <IFragment>(); Expect.Call(f1.TryMergeWithNext(f2)).Return(null); Expect.Call(() => f1.Render(null, null, null)).IgnoreArguments().Constraints(Is.Same(tpl), Is.Same(ctl), Is.NotNull()).Do((Action <ITemplate, IInstantiatedTemplateControl, StringBuilder>)((_, __, sb) => sb.Append("[a]"))); Expect.Call(() => f2.Render(null, null, null)).IgnoreArguments().Constraints(Is.Same(tpl), Is.Same(ctl), Is.NotNull()).Do((Action <ITemplate, IInstantiatedTemplateControl, StringBuilder>)((_, __, sb) => sb.Append("[b]"))); mocks.ReplayAll(); var m = new RenderFunctionMember("Test", ""); m.AddFragment(f1); m.AddFragment(f2); Assert.AreEqual("[a][b]", m.Render(tpl, ctl)); mocks.VerifyAll(); }
private RenderFunctionMember CreateRenderFunction(string name, string parameters, params IFragment[] fragments) { var result = new RenderFunctionMember(name, parameters); foreach (IFragment f in fragments) { result.AddFragment(f); } return(result); }