public void DecorateClassTest()
        {
            var method = new MockMethod()
            {
                Name = "Method", Parameters = new Dictionary <string, IParameter>()
            };

            method.Parameters.Add("Param", new MockParameter()
            {
                Name = "Param"
            });
            var resource = new MockResource();

            resource.Methods.Add("Method", method);
            var resourceDecl = new CodeTypeDeclaration();
            var requestDecl  = new CodeTypeDeclaration();

            // Confirm that the decorator has run correctly.
            var decorator = new ServiceRequestFieldDecorator();

            decorator.DecorateClass(resource, method, requestDecl, resourceDecl);
            Assert.AreEqual(2, requestDecl.Members.Count); // 2 properties
            Assert.IsInstanceOf <CodeMemberProperty>(requestDecl.Members[0]);
            Assert.IsInstanceOf <CodeMemberProperty>(requestDecl.Members[1]);
            Assert.AreEqual("ResourcePath", requestDecl.Members[0].Name);
            Assert.AreEqual("MethodName", requestDecl.Members[1].Name);
        }
        public void GenerateImplementedStringConstantPropertyTest()
        {
            CodeMemberProperty property =
                ServiceRequestFieldDecorator.GenerateStringConstantPropertyOverride("Name", "Value");

            Assert.IsNotNull(property);
            Assert.AreEqual("Name", property.Name);
            Assert.IsTrue(property.HasGet);
            Assert.IsFalse(property.HasSet);
            Assert.AreEqual(1, property.GetStatements.Count);
            CodeExpression value = ((CodeMethodReturnStatement)property.GetStatements[0]).Expression;

            Assert.AreEqual("Value", ((CodePrimitiveExpression)value).Value);
        }