コード例 #1
0
        public void VisitActionNode_NullableParameter_CreatesMethod()
        {
            var node = new ActionTreeNode("Index");

            controller.AddChild(node);
            node.AddChild(new ParameterTreeNode("id", "System.Nullable<System.Int32>"));

            generator.Visit(controller);

            var type = source.Ccu.Namespaces[0].Types[0];

            CodeDomAssert.AssertHasField(type, "_services");
            CodeDomAssert.AssertHasMethod(type, "Index");

            var method = type.Members.OfType <CodeMemberMethod>().First(m => m.Name == "Index");

            CodeDomAssert.AssertHasParameter(method, "id");

            var parameter = method.Parameters.OfType <CodeParameterDeclarationExpression>().First(p => p.Name == "id");

            Assert.AreEqual("System.Nullable`1", parameter.Type.BaseType);
            Assert.AreEqual(1, parameter.Type.TypeArguments.Count);
            Assert.AreEqual("System.Int32", parameter.Type.TypeArguments[0].BaseType);
        }