示例#1
0
        public void can_find_instance_call_to_interface()
        {
            var method = assembly.GetMethodDefinition <InstanceMethods>("CallsInterface");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses.HasMember <IFoo>("Foo"));
        }
示例#2
0
        public void can_remove_bogus_constructor_reference()
        {
            var method = assembly.GetMethodDefinition <SimpleWithConstructor>("Foo");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses.Count == 0);
        }
示例#3
0
        public void can_find_instance_call_to_another_object()
        {
            var method = assembly.GetMethodDefinition <InstanceMethods>("CallsOther");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses.HasMember <Other>("Foo"));
        }
示例#4
0
        public void can_find_static_variable_read()
        {
            var method = assembly.GetMethodDefinition <StaticMethods>("ReadsClassStaticVariable");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses.HasMember <StaticMethods>("Foo", true));
        }
示例#5
0
        public void can_find_simple_method_call()
        {
            var method = assembly.GetMethodDefinition <StaticMethods>("CallsStatic");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses.HasMember(typeof(Console), "WriteLine"));
        }
示例#6
0
        public void can_find_same_object_instance_method_call()
        {
            var method = assembly.GetMethodDefinition <InstanceMethods>("CallsInstanceMethod");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses.HasMember <InstanceMethods>("InstanceMethod"));
        }
示例#7
0
        public void if_else_results_in_complexity_of_two()
        {
            var method = assembly.GetMethodDefinition <Ifs>("SimpleIfElse");
            var result = TypeScanner.ScanMethod(method);

            Assert.AreEqual(2, result.Complexity);
        }
示例#8
0
        public void can_read_generic_class_method()
        {
            var method = assembly.GetMethodDefinition <StaticMethods>("CallsGenericClass");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses.HasMember <SimpleGenericClass <int> >("Foo"));
        }
示例#9
0
        public void can_find_write_of_instance_variable()
        {
            var method = assembly.GetMethodDefinition <InstanceMethods>("WritesInstanceVariable");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses.HasMember <InstanceMethods>("_instanceVariable", false));
        }
示例#10
0
        public void empty_method_has_complexity_of_zero()
        {
            var method = assembly.GetMethodDefinition <StaticMethods>("CallsStatic");
            var result = TypeScanner.ScanMethod(method);

            Assert.AreEqual(0, result.Complexity);
        }
示例#11
0
        public void simple_if_results_in_complexity_of_one()
        {
            var method = assembly.GetMethodDefinition <Ifs>("SimpleIf");
            var result = TypeScanner.ScanMethod(method);

            Assert.AreEqual(1, result.Complexity);
        }
示例#12
0
        public void can_find_self_instance_method_call_with_parameters_on_base()
        {
            var method = assembly.GetMethodDefinition <B>("CallsBase");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses[1].IsSelfCall); //new before it
        }
示例#13
0
        public void can_find_self_instance_when_calling_abstract_from_base()
        {
            var method = assembly.GetMethodDefinition <Base>("CallsDerived");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses[0].IsSelfCall); //new before it
        }
示例#14
0
        public void can_find_simple_self_instance_method_call()
        {
            var method = assembly.GetMethodDefinition <InstanceMethods>("CallsInstanceMethod");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses[0].IsSelfCall);
        }
示例#15
0
        public void can_find_other_class_static_variable_write()
        {
            var method = assembly.GetMethodDefinition <StaticMethods>("WritesOtherClassStaticVariable");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses.HasMember <Bar>("Baz", false));
        }
        public void closed_generic_parameter_translates_to_generic_argument_on_static()
        {
            var method = assembly.GetMethodDefinition <ParameterTestMethods>("ClosedStaticGenericCall");
            var result = TypeScanner.ScanMethod(method);
            var type   = result.MemberAccesses[0].ActualMethodDefinition.Parameters[0].GetTypeWithGenericResolve();

            Assert.That(type.FullName == "System.Int32");
        }
        public void non_generic_parameter_translates_to_itself()
        {
            var method = assembly.GetMethodDefinition <ParameterTestMethods>("NonGenericCall");
            var result = TypeScanner.ScanMethod(method);
            var type   = result.MemberAccesses[0].ActualMethodDefinition.Parameters[0].GetTypeWithGenericResolve();

            Assert.That(type == result.MemberAccesses[0].ActualMethodDefinition.Parameters[0].ParameterType);
        }
示例#18
0
        public void can_find_static_variable_write()
        {
            var method = assembly.GetMethodDefinition <StaticMethods>("WritesClassStaticVariable");
            var resule = TypeScanner.ScanMethod(method);

            Assert.IsTrue(resule.MemberAccesses.HasMember <StaticMethods>("Foo", false));
            Assert.IsFalse(resule.MemberAccesses[0].IsReadOnly);
        }
示例#19
0
        public void can_find_field_reference_for_call()
        {
            var method = assembly.GetMethodDefinition <InstanceMethods>("CallsField");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsNotNull(result.MemberAccesses[1].MemberReference); //new before it
            Assert.IsTrue(((FieldReference)result.MemberAccesses[0].MemberReference).Name == "s");
        }
示例#20
0
        public void returns_method_definition()
        {
            var method = assembly.GetMethodDefinition <StaticMethods>("CallsStatic");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsNotNull(result.Definition);
            Assert.AreEqual("System.Void AutoTest.Minimizer.Tests.StaticMethods::CallsStatic()", result.Definition.GetCacheName());
        }
        public void closed_generic_parameter_translates_to_generic_argument_on_instance()
        {
            var method = assembly.GetMethodDefinition <ParameterTestMethods>("ClosedInstanceGenericCall");
            var result = TypeScanner.ScanMethod(method);
            var type   = result.MemberAccesses[1].ActualMethodDefinition.Parameters[0].GetTypeWithGenericResolve();

            Assert.AreEqual(type.FullName, "System.String");
        }
示例#22
0
        public void can_read_generic_method()
        {
            var method = assembly.GetMethodDefinition <StaticMethods>("CallsGeneric");
            var result = TypeScanner.ScanMethod(method);

            Assert.IsTrue(result.MemberAccesses.HasMember <StaticMethods>("WithGeneric"));
            string s = result.MemberAccesses[0].MemberReference.GetCacheName();
        }
        public void can_read_open_generic_parameter_with_translation()
        {
            var method = assembly.GetMethodDefinition(typeof(OpenParameterTestMethods <>), "OpenParameterGenericCall");
            var result = TypeScanner.ScanMethod(method);
            var type   = result.MemberAccesses[1].ActualMethodDefinition.Parameters[0].GetTypeWithGenericResolve();

            Assert.AreEqual(type.FullName, "TFoo");
        }
        public void can_read_array_type_argument()
        {
            var method = assembly.GetMethodDefinition <ParameterTestMethods>("ClosedInstanceTypeSpecGenericCall");
            var result = TypeScanner.ScanMethod(method);
            var type   = result.MemberAccesses[1].ActualMethodDefinition.Parameters[0].GetTypeWithGenericResolve();

            Assert.AreEqual(type.FullName, "System.String[]");
        }
        public void can_read_array_type_parameter()
        {
            var method        = assembly.GetMethodDefinition <ParameterTestMethods>("StaticWithTypeSpecGenericParameter");
            var result        = TypeScanner.ScanMethod(method);
            var testReference = (GenericInstanceMethod)result.MemberAccesses[1].ActualMethodDefinition;
            var type          = testReference.Parameters[0].GetTypeWithGenericResolve(testReference);

            Assert.AreEqual(type.FullName, "System.String[]");
        }
        public void generic_parameter_on_static_method_can_be_translated()
        {
            var method        = assembly.GetMethodDefinition <ParameterTestMethods>("StaticWithGenericParameter");
            var result        = TypeScanner.ScanMethod(method);
            var testReference = (GenericInstanceMethod)result.MemberAccesses[0].ActualMethodDefinition;
            var type          = testReference.Parameters[0].GetTypeWithGenericResolve(testReference);

            Assert.That(type.FullName == "System.String");
        }
示例#27
0
        public void open_generic_class_arguments_are_read_from_method()
        {
            var method         = assembly.GetMethodDefinition(typeof(GenericTestCaller <>), "OpenGenericClassArgumentsCall");
            var result         = TypeScanner.ScanMethod(method);
            var testReference  = result.MemberAccesses[0].ActualMethodDefinition;
            var genericContext = context.GetGenericContextOf(testReference);

            Assert.AreEqual(2, genericContext.Count);
            Assert.AreEqual("TBar", genericContext["T"].Name);
            Assert.AreEqual("System.String", genericContext["V"].Type.FullName);
        }
示例#28
0
        public void closed_generic_class_arguments_are_read_from_method()
        {
            var method         = assembly.GetMethodDefinition <TestData>("ClosedClassArgumentsOnMethodCall");
            var result         = TypeScanner.ScanMethod(method);
            var testReference  = result.MemberAccesses[0].ActualMethodDefinition;
            var genericContext = context.GetGenericContextOf(testReference);

            Assert.AreEqual(2, genericContext.Count);
            Assert.AreEqual("System.String", genericContext["T"].Type.FullName);
            Assert.AreEqual("System.Int32", genericContext["V"].Type.FullName);
        }
示例#29
0
        public void open_generic_method_parameters_are_read()
        {
            var method         = assembly.GetMethodDefinition <TestData>("OpenGenericParametersOnMethodCall");
            var result         = TypeScanner.ScanMethod(method);
            var testReference  = (GenericInstanceMethod)result.MemberAccesses[0].ActualMethodDefinition;
            var genericContext = context.GetGenericContextOf(testReference);

            Assert.AreEqual(2, genericContext.Count);
            Assert.AreEqual("TFoo", genericContext["T"].Name);
            Assert.AreEqual("TBar", genericContext["V"].Name);
        }
示例#30
0
        private static MemberReference GetMethodReferenceFrom(MethodDefinition methodDefinition)
        {
            int x = 52324;

            foreach (var m in
                     TypeScanner.ScanMethod(methodDefinition).MemberAccesses.Where(m => m.MemberReference is MethodReference))
            {
                return(m.MemberReference);
            }
            return(null);
        }