public void CreateMethodTest()
        {
            const string className      = "TestClass";
            var          typeProvider   = new DefaultObjectTypeProvider("Schema");
            var          commentCreator = new DefaultEnglishCommentCreator();
            var          generator      = new RequestMethodResourceDecorator.ResourceGenerator(
                className, typeProvider, commentCreator);

            // Generate a method.
            var decl     = new CodeTypeDeclaration();
            var resource = new MockResource();
            var method   = new MockMethod()
            {
                Name = "Test", Parameters = new Dictionary <string, IParameter>()
            };

            method.Parameters.Add(
                "a", new MockParameter()
            {
                Name = "a", ParameterType = "string", IsRequired = false
            });
            method.Parameters.Add(
                "b", new MockParameter()
            {
                Name = "b", ParameterType = "string", IsRequired = true
            });
            CodeMemberMethod generatedMethod = generator.CreateMethod(decl, resource, method, true,
                                                                      RequestMethodResourceDecorator.MethodType.Request);

            Assert.AreEqual("Test", generatedMethod.Name);
            Assert.AreEqual(2, generatedMethod.Parameters.Count); // two parameters defined.
            Assert.AreEqual(1, generatedMethod.Statements.Count); // one "new ...Request()" statement.
            Assert.AreEqual("TestRequest", generatedMethod.ReturnType.BaseType);
        }
        public void CreateParameterComment()
        {
            var instance = new DefaultEnglishCommentCreator();
            var parameter = new MockParameter();
            var progamaticName = "testParameter";

            CodeCommentStatementCollection result = instance.CreateParameterComment(parameter, progamaticName);
            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Count);
            Assert.IsNotNull(result[0].Comment);
            Assert.AreEqual("<param name=\"testParameter\">Optional</param>", result[0].Comment.Text);
        }
Exemple #3
0
        public void CreateParameterComment()
        {
            var instance       = new DefaultEnglishCommentCreator();
            var parameter      = new MockParameter();
            var progamaticName = "testParameter";

            CodeCommentStatementCollection result = instance.CreateParameterComment(parameter, progamaticName);

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Count);
            Assert.IsNotNull(result[0].Comment);
            Assert.AreEqual("<param name=\"testParameter\">Optional</param>", result[0].Comment.Text);
        }
Exemple #4
0
        public void GetParameterMetaData()
        {
            var instance       = new DefaultEnglishCommentCreator();
            var parameter      = new MockParameter();
            var progamaticName = "testParameter";

            parameter.Name       = progamaticName;
            parameter.IsRequired = false;

            string result = instance.GetParameterMetaData(parameter, progamaticName);

            Assert.AreEqual("Optional", result);

            parameter.IsRequired = true;
            result = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Required", result);

            parameter.Name = "test-parameters";
            result         = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("test-parameters - Required", result);

            parameter.Name    = progamaticName;
            parameter.Minimum = "53";
            result            = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Required - Minimum value of 53", result);

            parameter.Minimum = null;
            parameter.Maximum = "105";
            result            = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Required - Maximum value of 105", result);

            parameter.Maximum = null;
            parameter.Pattern = ".*\\.java";
            result            = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Required - Must match pattern .*\\.java", result);

            parameter.Pattern    = null;
            parameter.EnumValues = new List <string> {
                "a", "b", "c", "d"
            };
            result = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Required - Must be one of the following values [a, b, c, d]", result);

            parameter.EnumValues  = null;
            parameter.Description = "A Test Description";
            result = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Required - A Test Description", result);
        }
        public void CreateMethodComment()
        {
            var method = new MockMethod();
            var instance = new DefaultEnglishCommentCreator();
            method.Description = "A Test description";

            CodeCommentStatementCollection result = instance.CreateMethodComment(method);
            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Count);
            Assert.IsNotNull(result[0].Comment);
            Assert.AreEqual("<summary>A Test description</summary>", result[0].Comment.Text);

            method.Description = "A <nasty> \"description\"";
            result = instance.CreateMethodComment(method);
            Assert.AreEqual("<summary>A &lt;nasty&gt; &quot;description&quot;</summary>", result[0].Comment.Text);
        }
Exemple #6
0
        public void CreateParameterCommentValidateParams()
        {
            var    instance       = new DefaultEnglishCommentCreator();
            var    parameter      = new MockParameter();
            string progamaticName = null;

            Assert.Throws(
                typeof(ArgumentNullException), () => instance.CreateParameterComment(parameter, progamaticName));

            progamaticName = "";
            Assert.Throws(typeof(ArgumentException), () => instance.CreateParameterComment(parameter, progamaticName));

            progamaticName = "testParameter";
            parameter      = null;
            Assert.Throws(
                typeof(ArgumentNullException), () => instance.CreateParameterComment(parameter, progamaticName));
        }
        public void CreateParameterCommentValidateParams()
        {
            var instance = new DefaultEnglishCommentCreator();
            var parameter = new MockParameter();
            string progamaticName = null;

            Assert.Throws(
                typeof(ArgumentNullException), () => instance.CreateParameterComment(parameter, progamaticName));

            progamaticName = "";
            Assert.Throws(typeof(ArgumentException), () => instance.CreateParameterComment(parameter, progamaticName));

            progamaticName = "testParameter";
            parameter = null;
            Assert.Throws(
                typeof(ArgumentNullException), () => instance.CreateParameterComment(parameter, progamaticName));
        }
Exemple #8
0
        public void CreateMethodComment()
        {
            var method   = new MockMethod();
            var instance = new DefaultEnglishCommentCreator();

            method.Description = "A Test description";

            CodeCommentStatementCollection result = instance.CreateMethodComment(method);

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Count);
            Assert.IsNotNull(result[0].Comment);
            Assert.AreEqual("<summary>A Test description</summary>", result[0].Comment.Text);

            method.Description = "A <nasty> \"description\"";
            result             = instance.CreateMethodComment(method);
            Assert.AreEqual("<summary>A &lt;nasty&gt; &quot;description&quot;</summary>", result[0].Comment.Text);
        }
        public void CreateMethodTest()
        {
            const string className = "TestClass";
            var typeProvider = new DefaultObjectTypeProvider("Schema");
            var commentCreator = new DefaultEnglishCommentCreator();
            var generator = new RequestMethodResourceDecorator.ResourceGenerator(
                className, typeProvider, commentCreator);

            // Generate a method.
            var decl = new CodeTypeDeclaration();
            var resource = new MockResource();
            var method = new MockMethod() { Name = "Test", Parameters = new Dictionary<string, IParameter>()};
            method.Parameters.Add(
                "a", new MockParameter() { Name = "a", ParameterType = "string", IsRequired = false });
            method.Parameters.Add(
                "b", new MockParameter() { Name = "b", ParameterType = "string", IsRequired = true });
            CodeMemberMethod generatedMethod = generator.CreateMethod(decl, resource, method, true);

            Assert.AreEqual("Test", generatedMethod.Name);
            Assert.AreEqual(2, generatedMethod.Parameters.Count); // two parameters defined.
            Assert.AreEqual(1, generatedMethod.Statements.Count); // one "new ...Request()" statement.
            Assert.AreEqual("TestRequest", generatedMethod.ReturnType.BaseType);
        }
Exemple #10
0
        public void CreateMethodCommentValidateParams()
        {
            var instance = new DefaultEnglishCommentCreator();

            Assert.Throws(typeof(ArgumentNullException), () => instance.CreateMethodComment(null));
        }
        public void GetParameterMetaData()
        {
            var instance = new DefaultEnglishCommentCreator();
            var parameter = new MockParameter();
            var progamaticName = "testParameter";
            parameter.Name = progamaticName;
            parameter.IsRequired = false;

            string result = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Optional", result);

            parameter.IsRequired = true;
            result = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Required", result);

            parameter.Name = "test-parameters";
            result = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("test-parameters - Required", result);

            parameter.Name = progamaticName;
            parameter.Minimum = "53";
            result = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Required - Minimum value of 53", result);

            parameter.Minimum = null;
            parameter.Maximum = "105";
            result = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Required - Maximum value of 105", result);

            parameter.Maximum = null;
            parameter.Pattern = ".*\\.java";
            result = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Required - Must match pattern .*\\.java", result);

            parameter.Pattern = null;
            parameter.EnumValues = new List<string> { "a", "b", "c", "d" };
            result = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Required - Must be one of the following values [a, b, c, d]", result);

            parameter.EnumValues = null;
            parameter.Description = "A Test Description";
            result = instance.GetParameterMetaData(parameter, progamaticName);
            Assert.AreEqual("Required - A Test Description", result);
        }
 public void CreateMethodCommentValidateParams()
 {
     var instance = new DefaultEnglishCommentCreator();
     Assert.Throws(typeof(ArgumentNullException), () => instance.CreateMethodComment(null));
 }