public void GetSectionNameTest() { var sectionName = "MySectionName"; var result = SectionControlBuilder.GetSectionName(GetBuildMembers(), defaultIndex); Assert.AreEqual(sectionName, result); }
public void GetSectionRenderMethodTest() { var members = GetRenderMembers(); var result = SectionControlBuilder.GetSectionRenderMethod(members, defaultIndex); Assert.AreEqual(members[0], result); }
public void GetDefineSectionStartSnippetTest() { var snippetStmt = SectionControlBuilder.GetDefineSectionStartSnippet("HelloWorld", Language.CSharp) as CodeSnippetStatement; Assert.AreEqual("DefineSection(\"HelloWorld\", delegate () {", snippetStmt.Value); snippetStmt = SectionControlBuilder.GetDefineSectionStartSnippet("HelloWorld", Language.VisualBasic) as CodeSnippetStatement; Assert.AreEqual("DefineSection(\"HelloWorld\", Sub()", snippetStmt.Value); }
public void GetDefineSectionStatementsTest() { var renderMembers = GetRenderMembers(); var buildMembers = GetBuildMembers(); var members = new List <CodeTypeMember>(renderMembers); foreach (var m in buildMembers) { members.Add(m); } var result = SectionControlBuilder.GetDefineSectionStatements(members, defaultIndex, Language.CSharp); VerifyDefineSection(((CodeMemberMethod)renderMembers[0]).Statements[0], result); }
public void ProcessRenderControlMethodFalseTest() { Assert.IsFalse(SectionControlBuilder.ProcessRenderControlMethod(null, null, null, Language.CSharp)); Assert.IsFalse(SectionControlBuilder.ProcessRenderControlMethod(null, null, new CodeExpressionStatement(new CodeSnippetExpression("test")), Language.CSharp)); var invoke = new CodeMethodInvokeExpression(null, "RenderControlX", new CodeExpression[] { new CodeArgumentReferenceExpression("__w") }); var stmt = new CodeExpressionStatement(invoke); Assert.IsFalse(SectionControlBuilder.ProcessRenderControlMethod(null, null, stmt, Language.CSharp)); invoke = new CodeMethodInvokeExpression(new CodeSnippetExpression(""), "RenderControl", new CodeExpression[] { new CodeArgumentReferenceExpression("__w") }); stmt = new CodeExpressionStatement(invoke); Assert.IsFalse(SectionControlBuilder.ProcessRenderControlMethod(null, null, stmt, Language.CSharp)); var indexer = new CodeIndexerExpression(new CodeSnippetExpression(""), new CodeExpression[] { new CodePrimitiveExpression(defaultIndex) }); invoke = new CodeMethodInvokeExpression(indexer, "RenderControl", new CodeExpression[] { new CodeArgumentReferenceExpression("__w") }); stmt = new CodeExpressionStatement(invoke); Assert.IsFalse(SectionControlBuilder.ProcessRenderControlMethod(null, null, stmt, Language.CSharp)); var container = new CodeArgumentReferenceExpression("parameterContainer"); var controls = new CodePropertyReferenceExpression(container, "Controls"); indexer = new CodeIndexerExpression(controls, new CodeExpression[] { new CodeSnippetExpression("") }); invoke = new CodeMethodInvokeExpression(indexer, "RenderControl", new CodeExpression[] { new CodeArgumentReferenceExpression("__w") }); stmt = new CodeExpressionStatement(invoke); Assert.IsFalse(SectionControlBuilder.ProcessRenderControlMethod(null, null, stmt, Language.CSharp)); controls = new CodePropertyReferenceExpression(container, "ControlsX"); indexer = new CodeIndexerExpression(controls, new CodeExpression[] { new CodePrimitiveExpression(defaultIndex) }); invoke = new CodeMethodInvokeExpression(indexer, "RenderControl", new CodeExpression[] { new CodeArgumentReferenceExpression("__w") }); stmt = new CodeExpressionStatement(invoke); Assert.IsFalse(SectionControlBuilder.ProcessRenderControlMethod(null, null, stmt, Language.CSharp)); controls = new CodePropertyReferenceExpression(new CodeSnippetExpression("test"), "Controls"); indexer = new CodeIndexerExpression(controls, new CodeExpression[] { new CodePrimitiveExpression(defaultIndex) }); invoke = new CodeMethodInvokeExpression(indexer, "RenderControl", new CodeExpression[] { new CodeArgumentReferenceExpression("__w") }); stmt = new CodeExpressionStatement(invoke); Assert.IsFalse(SectionControlBuilder.ProcessRenderControlMethod(null, null, stmt, Language.CSharp)); container = new CodeArgumentReferenceExpression("parameterContainerX"); controls = new CodePropertyReferenceExpression(container, "Controls"); indexer = new CodeIndexerExpression(controls, new CodeExpression[] { new CodePrimitiveExpression(defaultIndex) }); invoke = new CodeMethodInvokeExpression(indexer, "RenderControl", new CodeExpression[] { new CodeArgumentReferenceExpression("__w") }); stmt = new CodeExpressionStatement(invoke); Assert.IsFalse(SectionControlBuilder.ProcessRenderControlMethod(null, null, stmt, Language.CSharp)); }
public void GetSectionNameNullTest() { var index = defaultIndexAfterOffset; var methodName = "__BuildControl__control"; Assert.IsNull(SectionControlBuilder.GetSectionName(new CodeTypeMember[] { }, defaultIndex)); var method = new CodeMemberMethod(); method = new CodeMemberMethod() { Name = methodName + index.ToString() }; method.Statements.Add(new CodeSnippetStatement("test")); Assert.IsNull(SectionControlBuilder.GetSectionName(new CodeTypeMember[] { method }, defaultIndex)); var statement = new CodeAssignStatement(null, null); method.Statements.Clear(); method.Statements.Add(statement); Assert.IsNull(SectionControlBuilder.GetSectionName(new CodeTypeMember[] { method }, defaultIndex)); var left = new CodePropertyReferenceExpression(null, "test"); statement = new CodeAssignStatement(left, null); method.Statements.Clear(); method.Statements.Add(statement); Assert.IsNull(SectionControlBuilder.GetSectionName(new CodeTypeMember[] { method }, defaultIndex)); left = new CodePropertyReferenceExpression(null, "Name"); statement = new CodeAssignStatement(left, null); method.Statements.Clear(); method.Statements.Add(statement); Assert.IsNull(SectionControlBuilder.GetSectionName(new CodeTypeMember[] { method }, defaultIndex)); left = new CodePropertyReferenceExpression(new CodeVariableReferenceExpression("test"), "Name"); statement = new CodeAssignStatement(left, null); method.Statements.Clear(); method.Statements.Add(statement); Assert.IsNull(SectionControlBuilder.GetSectionName(new CodeTypeMember[] { method }, defaultIndex)); }
public void ProcessRenderControlMethodTest() { // Create a statement of the following form: // parameterContainer.Controls[0].RenderControl(@__w); // where parameterContainer is a parameter. var container = new CodeArgumentReferenceExpression("parameterContainer"); var controls = new CodePropertyReferenceExpression(container, "Controls"); var indexer = new CodeIndexerExpression(controls, new CodeExpression[] { new CodePrimitiveExpression(defaultIndex) }); var invoke = new CodeMethodInvokeExpression(indexer, "RenderControl", new CodeExpression[] { new CodeArgumentReferenceExpression("__w") }); var stmt = new CodeExpressionStatement(invoke); var renderMethod = new CodeMemberMethod(); var renderMembers = GetRenderMembers(); var buildMembers = GetBuildMembers(); var members = new List <CodeTypeMember>(renderMembers); foreach (var m in buildMembers) { members.Add(m); } SectionControlBuilder.ProcessRenderControlMethod(members, renderMethod, stmt, Language.CSharp); VerifyDefineSection(((CodeMemberMethod)renderMembers[0]).Statements[0], renderMethod.Statements.OfType <CodeStatement>().ToList()); }