public void GetMethodSignature()
        {
            var method = NormalizingMemberInfoFromExpressionUtility.GetMethod((DomainType obj) => obj.Method(ref Dev <int> .Dummy, null));

            var result = SignatureDebugStringGenerator.GetMethodSignature(method);

            Assert.That(result, Is.EqualTo("String Method(Int32&, Dictionary`2[Int32,DateTime])"));
        }
        public void GetMethodSignature_GenericMethod()
        {
            var method = NormalizingMemberInfoFromExpressionUtility.GetGenericMethodDefinition((DomainType obj) => obj.GenericMethod <int, int>());

            var result = SignatureDebugStringGenerator.GetMethodSignature(method);

            Assert.That(result, Is.EqualTo("Void GenericMethod[T1,T2]()"));
        }
        public void GetConstructorSignature()
        {
            var constructor = NormalizingMemberInfoFromExpressionUtility.GetConstructor(() => new DomainType(7, out Dev <string> .Dummy));

            var result = SignatureDebugStringGenerator.GetConstructorSignature(constructor);

            Assert.That(result, Is.EqualTo("Void .ctor(Int32, String&)"));
        }
        public void GetFieldSignature()
        {
            var field = NormalizingMemberInfoFromExpressionUtility.GetField((DomainType obj) => obj.Field);

            var result = SignatureDebugStringGenerator.GetFieldSignature(field);

            Assert.That(result, Is.EqualTo("IEnumerable`1[DomainType] Field"));
        }
        public void GetEventSignature()
        {
            var event_ = typeof(DomainType).GetEvent("Event");

            var result = SignatureDebugStringGenerator.GetEventSignature(event_);

            Assert.That(result, Is.EqualTo("EventHandler Event"));
        }
        public void GetPropertySignature()
        {
            var property = NormalizingMemberInfoFromExpressionUtility.GetProperty((DomainType obj) => obj.Property);

            var result = SignatureDebugStringGenerator.GetPropertySignature(property);

            Assert.That(result, Is.EqualTo("String Property"));
        }
        public void GetParameterSignature()
        {
            var method = NormalizingMemberInfoFromExpressionUtility.GetMethod((DomainType obj) => obj.Method(ref Dev <int> .Dummy, null));
            var ctor   = NormalizingMemberInfoFromExpressionUtility.GetConstructor(() => new DomainType(7, out Dev <string> .Dummy));

            var result1 = SignatureDebugStringGenerator.GetParameterSignature(method.GetParameters()[0]);
            var result2 = SignatureDebugStringGenerator.GetParameterSignature(method.GetParameters()[1]);
            var result3 = SignatureDebugStringGenerator.GetParameterSignature(ctor.GetParameters()[1]);

            Assert.That(result1, Is.EqualTo("Int32& i"));
            Assert.That(result2, Is.EqualTo("Dictionary`2[Int32,DateTime] dictionary"));
            Assert.That(result3, Is.EqualTo("String& s"));
        }
        public void GetTypeSignature()
        {
            var standardType          = typeof(DomainType);
            var genericType           = typeof(DomainType.NestedGenericType <int, DomainType>);
            var genericTypeDefinition = typeof(DomainType.NestedGenericType <,>);

            var standard          = SignatureDebugStringGenerator.GetTypeSignature(standardType);
            var generic           = SignatureDebugStringGenerator.GetTypeSignature(genericType);
            var genericDefinition = SignatureDebugStringGenerator.GetTypeSignature(genericTypeDefinition);

            Assert.That(standard, Is.EqualTo("DomainType"));
            Assert.That(generic, Is.EqualTo("NestedGenericType`2[Int32,DomainType]"));
            Assert.That(genericDefinition, Is.EqualTo("NestedGenericType`2[T1,T2]"));
        }