public void GetType2_Rewrite_Foo_To_NonNullFoo()
        {
            // arrange
            Type type          = typeof(Foo);
            var  typeInspector = new DefaultTypeInspector();

            // act
            IExtendedType extendedType = typeInspector.GetType(type !, false);

            // assert
            Assert.Equal("Foo!", extendedType.ToString());
        }
        public void GetArgumentType()
        {
            // arrange
            ParameterInfo parameter     = typeof(Foo).GetMethod(nameof(Foo.Baz)) !.GetParameters()[0];
            var           typeInspector = new DefaultTypeInspector();

            // act
            IExtendedType extendedType = typeInspector.GetArgumentType(parameter !);

            // assert
            Assert.Equal("String!", extendedType.ToString());
        }
        public void GetType_Type_Is_Foo()
        {
            // arrange
            Type type          = typeof(Foo);
            var  typeInspector = new DefaultTypeInspector();

            // act
            IExtendedType extendedType = typeInspector.GetType(type !);

            // assert
            Assert.Equal("Foo", extendedType.ToString());
        }
        public void GetReturnType_FromMethod()
        {
            // arrange
            MethodInfo method        = typeof(Foo).GetMethod(nameof(Foo.Bar));
            var        typeInspector = new DefaultTypeInspector();

            // act
            IExtendedType extendedType = typeInspector.GetReturnType(method !);

            // assert
            Assert.Equal("List<String!>!", extendedType.ToString());
        }