Exemple #1
0
        public void FromMethod_ref_parameter_nominal()
        {
            MethodName m = MethodName.FromMethodInfo(typeof(Array).GetTypeInfo().GetMethod("Resize"));

            Assert.Equal("System.Array.Resize<T>(T[]& array, System.Int32 newSize)", m.FullName);
            Assert.True(m.Parameters[0].ParameterType.IsByReference);
        }
Exemple #2
0
        public void ToString_GenericInstanceType_receiver_should_contain_generic_parameters()
        {
            var method = typeof(Comparison <int>).GetTypeInfo().GetMethod("Invoke");

            Assert.Equal("System.Comparison<System.Int32>.Invoke(System.Int32 x, System.Int32 y)",
                         MethodName.FromMethodInfo(method).ToString());
        }
Exemple #3
0
        public void FromMethod_out_parameter_nominal()
        {
            MethodName m = MethodName.FromMethodInfo(typeof(char).GetTypeInfo().GetMethod("TryParse"));

            Assert.Equal("System.Char.TryParse(System.String s, System.Char& result)", m.FullName);
            Assert.True(m.Parameters[1].ParameterType.IsByReference);
        }
Exemple #4
0
        public void FromMethod_closed_generic_method_return_type()
        {
            var        method = typeof(S <int>).GetTypeInfo().GetMethods().Where(t => t.IsStatic).Single();
            MethodName m      = MethodName.FromMethodInfo(method);

            Assert.Equal(method.Name, m.Name);
            Assert.Equal("From", m.Name);
            Assert.Equal("Int32", m.ReturnType.Name);
        }
        public void Format_method_unspecified_parameters()
        {
            var mi   = typeof(decimal).GetTypeInfo().GetMethods().First(t => t.Name == "op_Explicit");
            var name = MethodName.FromMethodInfo(mi).WithParametersUnspecified();

            string expected = "System.Decimal.op_Explicit";
            var    format   = new MetadataNameFormat();

            Assert.Equal(expected, format.Format(name));
            Assert.Equal(expected, name.ToString(null, format));
        }
Exemple #6
0
        public void FromMethod_generic_arguments_binding()
        {
            MethodName concatMethod = MethodName.FromMethodInfo(
                typeof(string).GetTypeInfo().GetMethods().Where(t => t.Name == "Concat" && t.IsGenericMethod).Single());

            // Concat<T>(IEnumerable<T>)
            var gits = (GenericInstanceTypeName)concatMethod.Parameters[0].ParameterType;

            Assert.Equal(concatMethod,
                         ((GenericParameterName)gits.GenericArguments[0]).DeclaringMethod);
        }
Exemple #7
0
        public void FromMethod_generic_method()
        {
            // Array.Sort<TKey, TValue>(TKey[],TValue[],int,int)

            var        method = typeof(Array).GetTypeInfo().GetMethods().Where(t => t.GetGenericArguments().Length == 2 && t.GetParameters().Length == 4).Single();
            MethodName m      = MethodName.FromMethodInfo(method);

            Assert.Equal(method.Name, m.Name);
            Assert.Equal("Sort", m.Name);
            Assert.Equal("System.Array.Sort<TKey, TValue>(TKey[] keys, TValue[] items, System.Int32 index, System.Int32 length)", m.FullName);
            Assert.Equal("Void", m.ReturnType.Name);
        }
        public void Format_use_simple_parameter_type_names()
        {
            MethodName m = MethodName.FromMethodInfo(typeof(string).GetTypeInfo().GetMethod("CopyTo"));

            MetadataNameFormat format = new MetadataNameFormat();

            format.DefaultFormatString[SymbolType.Parameter] = "Cv";

            string expected = "System.String.CopyTo(Int32, Char[], Int32, Int32)";

            Assert.Equal(expected, format.Format(m));
            Assert.Equal(expected, m.ToString(null, format));
        }
        public void Format_type_generic_positions_open_generic_type()
        {
            var method = MethodName.FromMethodInfo(
                typeof(ICollection <>).GetTypeInfo().GetMethod("Add"));

            MetadataNameFormat format = new MetadataNameFormat();

            format.UseGenericParameterPositions = true;
            format.IncludeTypeParameters        = true;

            string expected = "System.Collections.Generic.ICollection`1.Add(`0 item)";

            Assert.Equal(expected, format.Format(method));
            Assert.Equal(expected, method.ToString(null, format));
        }
        public void Format_use_simple_parameter_type_names_generic()
        {
            MethodName m = MethodName.FromMethodInfo(
                typeof(string).GetTypeInfo().GetMethods().Single(t => t.Name == "Concat" && t.IsGenericMethod));

            MetadataNameFormat format = new MetadataNameFormat();

            format.DefaultFormatString[SymbolType.Parameter] = "Cv";
            format.IncludeTypeParameters  = true;
            format.IncludeTypeConstraints = false;
            format.IncludeVariance        = false;

            string expected = "System.String.Concat<T>(IEnumerable<T>)";

            Assert.Equal(expected, format.Format(m));
            Assert.Equal(expected, m.ToString(null, format));
        }
        public void Format_use_generic_parameter_positions_array()
        {
            MethodName m = MethodName.FromMethodInfo(
                typeof(Array).GetTypeInfo().GetMethods().Single(t => t.Name == "TrueForAll" && t.IsGenericMethod));

            MetadataNameFormat format = new MetadataNameFormat();

            format.DefaultFormatString[SymbolType.Parameter] = "Cv";
            format.IncludeTypeParameters        = true;
            format.IncludeTypeConstraints       = false;
            format.IncludeVariance              = false;
            format.UseGenericParameterPositions = true;

            string expected = "System.Array.TrueForAll``1(``0[], Predicate<``0>)";

            Assert.Equal(expected, format.Format(m));
            Assert.Equal(expected, m.ToString(null, format));
        }
        public void Format_method_name_include_return_types()
        {
            var mi   = typeof(decimal).GetTypeInfo().GetMethods().First(t => t.Name == "op_Explicit");
            var name = MethodName.FromMethodInfo(mi);

            Assert.NotNull(mi.ReturnType);

            MetadataNameFormat format = new MetadataNameFormat();

            format.DefaultFormatString[SymbolType.Parameter] = "Cv";
            format.IncludeReturnTypes[SymbolType.Method]     = true;

            // Uses the parameter format string for return type
            string expected = "System.Decimal.op_Explicit(Single):Decimal";

            Assert.Equal(expected, format.Format(name));
            Assert.Equal(expected, name.ToString(null, format));
        }
Exemple #13
0
        public void FromMethod_nominal()
        {
            MethodName m = MethodName.FromMethodInfo(typeof(string).GetTypeInfo().GetMethod("CopyTo"));

            Assert.Equal("System.String.CopyTo(System.Int32 sourceIndex, System.Char[] destination, System.Int32 destinationIndex, System.Int32 count)", m.FullName);
        }