Esempio n. 1
0
        public static void QueryableMethodsContainCorrectDynamicDependency()
        {
            IEnumerable <MethodInfo> dependentMethods =
                typeof(Queryable)
                .GetMethods(BindingFlags.Public | BindingFlags.Static)
                .Where(m => m.Name != "AsQueryable");

            foreach (MethodInfo method in dependentMethods)
            {
                DynamicDependencyAttribute dependency = method.GetCustomAttribute <DynamicDependencyAttribute>();
                Assert.NotNull(dependency);
                Assert.Equal(typeof(Enumerable), dependency.Type);

                int    genericArgCount = 0;
                string methodName      = dependency.MemberSignature;

                int genericSeparator = methodName.IndexOf('`');
                if (genericSeparator != -1)
                {
                    genericArgCount = int.Parse(methodName.Substring(genericSeparator + 1));
                    methodName      = methodName.Substring(0, genericSeparator);
                }

                Assert.Equal(method.GetGenericArguments().Length, genericArgCount);
                Assert.Equal(method.Name, methodName);
            }
        }
Esempio n. 2
0
        public void TestConstructorMemberTypesTypeNameAssemblyName(DynamicallyAccessedMemberTypes memberTypes, string typeName, string assemblyName)
        {
            var dda = new DynamicDependencyAttribute(memberTypes, typeName, assemblyName);

            Assert.Null(dda.MemberSignature);
            Assert.Equal(memberTypes, dda.MemberTypes);
            Assert.Null(dda.Type);
            Assert.Equal(typeName, dda.TypeName);
            Assert.Equal(assemblyName, dda.AssemblyName);
            Assert.Null(dda.Condition);
        }
Esempio n. 3
0
        public void TestConstructorSignatureType(string memberSignature, Type type)
        {
            var dda = new DynamicDependencyAttribute(memberSignature, type);

            Assert.Equal(memberSignature, dda.MemberSignature);
            Assert.Equal(DynamicallyAccessedMemberTypes.None, dda.MemberTypes);
            Assert.Equal(type, dda.Type);
            Assert.Null(dda.TypeName);
            Assert.Null(dda.AssemblyName);
            Assert.Null(dda.Condition);
        }
Esempio n. 4
0
        public void TestCondition()
        {
            var dda = new DynamicDependencyAttribute("Foo()");

            Assert.Null(dda.Condition);

            dda.Condition = "DEBUG";
            Assert.Equal("DEBUG", dda.Condition);

            dda.Condition = null;
            Assert.Null(dda.Condition);
        }