private void Generate_AddsAndPassesAttributeToChildren(string attributeName, Action generateDelegate)
        {
            Generator = new AttributeCodeGenerator(attributeName, Configuration, spy1, spy2);
            generateDelegate();
            var attribute = FindAttribute(attributeName);

            Assert.AreSame(attribute, spy1.CodeObjects[0]);
            Assert.AreSame(attribute, spy2.CodeObjects[0]);
        }
Exemple #2
0
        public GeneratedMethod GenerateMethod(string codeTemplate, string methodName, Type request, Type response, HandlerInfo handlerInfo)
        {
            var attributes = AttributeCodeGenerator.GenerateAttributes(handlerInfo.AuthorizeAttributes);

            string code = codeTemplate
                          .Replace(Tag.Attributes, attributes, StringComparison.Ordinal)
                          .Replace(Tag.Method, methodName, StringComparison.Ordinal)
                          .Replace(Tag.Request, request.GetFullClassName(), StringComparison.Ordinal)
                          .Replace(Tag.Response, response.GetFullClassName(), StringComparison.Ordinal)
                          .Replace(Tag.Handler, handlerInfo.Handler.GetFullClassName(), StringComparison.Ordinal);

            return(new GeneratedMethod(handlerInfo.Handler, request, response, code));
        }
        public void Generates_one_Attribute()
        {
            var attributes = new[]
            {
                new AuthorizeAttribute {
                    AuthenticationSchemes = "sch.1", Policy = "p.1", Roles = "r.1"
                }
            };

            var result = AttributeCodeGenerator.GenerateAttributes(attributes);

            result.Should().Contain("[global::Microsoft.AspNetCore.Authorization.Authorize(Roles = \"r.1\", Policy = \"p.1\", AuthenticationSchemes = \"sch.1\")]");
        }
Exemple #4
0
        private string GenerateClassSource(IEnumerable <GeneratedMethod> methods, string className, string baseClassName)
        {
            var attributes = AttributeCodeGenerator.GenerateAttributes(_configuration.GlobalAuthorizeAttributes);

            var members = Code.ConstructorCode
                          .Replace(Tag.Constructor, className, StringComparison.Ordinal)
                          +
                          string.Concat(methods.Select(m => m.Code));

            var classSource = Code.ClassCode
                              .Replace(Tag.Attributes, attributes, StringComparison.Ordinal)
                              .Replace(Tag.Class, className, StringComparison.Ordinal)
                              .Replace(Tag.BaseClass, baseClassName, StringComparison.Ordinal)
                              .Replace(Tag.Members, members, StringComparison.Ordinal);

            return(classSource);
        }
 private void SetupProperty()
 {
     ContentType = new MediaType();
     Generator   = new AttributeCodeGenerator("GenericProperty", Configuration);
     Candidate   = new CodeMemberProperty();
 }
 private void SetupMediaType()
 {
     ContentType = new MediaType();
     Generator   = new AttributeCodeGenerator("MediaType", Configuration);
     Candidate   = new CodeTypeDeclaration();
 }