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")); }
public void can_remove_bogus_constructor_reference() { var method = assembly.GetMethodDefinition <SimpleWithConstructor>("Foo"); var result = TypeScanner.ScanMethod(method); Assert.IsTrue(result.MemberAccesses.Count == 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")); }
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)); }
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")); }
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")); }
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); }
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")); }
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)); }
public void empty_method_has_complexity_of_zero() { var method = assembly.GetMethodDefinition <StaticMethods>("CallsStatic"); var result = TypeScanner.ScanMethod(method); Assert.AreEqual(0, result.Complexity); }
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); }
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 }
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 }
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); }
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); }
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); }
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"); }
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"); }
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"); }
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); }
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); }
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); }
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); }