コード例 #1
0
        private static SyntaxKind ConvertToSyntaxKind(MemberImplementationModifier mod)
        {
            switch (mod)
            {
            case MemberImplementationModifier.Private:
                return(SyntaxKind.PrivateKeyword);

            case MemberImplementationModifier.Public:
                return(SyntaxKind.PublicKeyword);

            case MemberImplementationModifier.Virtual:
                return(SyntaxKind.VirtualKeyword);

            case MemberImplementationModifier.Override:
                return(SyntaxKind.OverrideKeyword);

            case MemberImplementationModifier.Static:
                return(SyntaxKind.StaticKeyword);

            case MemberImplementationModifier.Sealed:
                return(SyntaxKind.SealedKeyword);

            case MemberImplementationModifier.Protected:
                return(SyntaxKind.ProtectedKeyword);

            default:
                throw new ArgumentException(nameof(MemberImplementationModifier) + " arg is in an invalid state. Could not handle Value: " + mod.ToString(), nameof(mod));
            }
        }
コード例 #2
0
 /// <summary>
 /// Converts <paramref name="modifiers"/> into a collection of Rosyln <see cref="SyntaxKind"/> enum values.
 /// </summary>
 /// <param name="modifiers">Valid <see cref="MemberImplementationModifier"/> to convert.</param>
 /// <returns>A collection that represents the transform</returns>
 public static IEnumerable <SyntaxKind> ToSyntaxKind(this MemberImplementationModifier modifiers)
 {
     //Select all the values that have the flag
     return((Enum.GetValues(typeof(MemberImplementationModifier)) as IEnumerable <MemberImplementationModifier>)
            .Where(m => modifiers.HasFlag(m))
            .Select(m => ConvertToSyntaxKind(m)));
 }
コード例 #3
0
        public TestityClassBuilder(string className, MemberImplementationModifier modifiers)
        {
            rosylnCompilationUnit = SyntaxFactory.CompilationUnit();
            rosylnClassUnit       = SyntaxFactory.ClassDeclaration(className)
                                    .WithModifiers(SyntaxFactory.TokenList(modifiers.ToSyntaxKind().Select(x => SyntaxFactory.Token(x))));

            memberSyntax = new List <MemberDeclarationSyntax>();
        }
コード例 #4
0
        private static Mock<IMemberImplementationProvider> BuildMemberImplementationMock(string memberName, Type memberType, MemberImplementationModifier modifiers, IEnumerable<Type> attributeTypes)
        {
            Mock<IMemberImplementationProvider> implementationProvider = new Mock<IMemberImplementationProvider>();

            //Setup the implementationProvider
            implementationProvider.SetupGet(x => x.MemberName).Returns(SyntaxFactory.Identifier(memberName));
            implementationProvider.SetupGet(x => x.Type).Returns(SyntaxFactory.ParseTypeName(memberType.FullName));
            implementationProvider.SetupGet(x => x.Modifiers).Returns(SyntaxFactory.TokenList(modifiers.ToSyntaxKind().Select(x => SyntaxFactory.Token(x))));

            implementationProvider.SetupGet(x => x.Attributes)
                .Returns(SyntaxFactory.List(attributeTypes.Select(x => SyntaxFactory.AttributeList(SyntaxFactory.SingletonSeparatedList(SyntaxFactory.Attribute(SyntaxFactory.IdentifierName(x.FullName)))))));

            return implementationProvider;
        }
コード例 #5
0
 private static SyntaxKind ConvertToSyntaxKind(MemberImplementationModifier mod)
 {
     switch (mod)
     {
         case MemberImplementationModifier.Private:
             return SyntaxKind.PrivateKeyword;
         case MemberImplementationModifier.Public:
             return SyntaxKind.PublicKeyword;
         case MemberImplementationModifier.Virtual:
             return SyntaxKind.VirtualKeyword;
         case MemberImplementationModifier.Override:
             return SyntaxKind.OverrideKeyword;
         case MemberImplementationModifier.Static:
             return SyntaxKind.StaticKeyword;
         case MemberImplementationModifier.Sealed:
             return SyntaxKind.SealedKeyword;
         case MemberImplementationModifier.Protected:
             return SyntaxKind.ProtectedKeyword;
         default:
             throw new ArgumentException(nameof(MemberImplementationModifier) + " arg is in an invalid state. Could not handle Value: " + mod.ToString(), nameof(mod));
     }
 }
コード例 #6
0
 public DefaultMemberImplementationProvider(Type memberType, MemberImplementationModifier modifiers, string name)
 {
     MemberName = SyntaxFactory.Identifier(name);
     Modifiers  = SyntaxFactory.TokenList(modifiers.ToSyntaxKind().Select(x => SyntaxFactory.Token(x)));
     Type       = SyntaxFactory.ParseTypeName(memberType != typeof(void) ? memberType.FullName : "void");       //we can't use void fullname or else we end up with System.Void which is rejected
 }
コード例 #7
0
        private static Mock <IMemberImplementationProvider> BuildMemberImplementationMock(string memberName, Type memberType, MemberImplementationModifier modifiers, IEnumerable <Type> attributeTypes)
        {
            Mock <IMemberImplementationProvider> implementationProvider = new Mock <IMemberImplementationProvider>();

            //Setup the implementationProvider
            implementationProvider.SetupGet(x => x.MemberName).Returns(SyntaxFactory.Identifier(memberName));
            implementationProvider.SetupGet(x => x.Type).Returns(SyntaxFactory.ParseTypeName(memberType.FullName));
            implementationProvider.SetupGet(x => x.Modifiers).Returns(SyntaxFactory.TokenList(modifiers.ToSyntaxKind().Select(x => SyntaxFactory.Token(x))));

            implementationProvider.SetupGet(x => x.Attributes)
            .Returns(SyntaxFactory.List(attributeTypes.Select(x => SyntaxFactory.AttributeList(SyntaxFactory.SingletonSeparatedList(SyntaxFactory.Attribute(SyntaxFactory.IdentifierName(x.FullName)))))));

            return(implementationProvider);
        }
コード例 #8
0
 public DefaultMemberImplementationProvider(Type memberType, MemberImplementationModifier modifiers, string name)
 {
     MemberName = SyntaxFactory.Identifier(name);
     Modifiers = SyntaxFactory.TokenList(modifiers.ToSyntaxKind().Select(x => SyntaxFactory.Token(x)));
     Type = SyntaxFactory.ParseTypeName(memberType != typeof(void) ? memberType.FullName : "void"); //we can't use void fullname or else we end up with System.Void which is rejected
 }