mirror of
				https://github.com/nsnail/spectre.console.git
				synced 2025-11-04 02:25:28 +08:00 
			
		
		
		
	Adding better type names for return types and parameters
Uses the typenamehelper from Ben.Demystifer to help break down things like generic lists into their actual type display name.
This commit is contained in:
		
				
					committed by
					
						
						Patrik Svensson
					
				
			
			
				
	
			
			
			
						parent
						
							a0e20f299c
						
					
				
				
					commit
					78958aae27
				
			@@ -29,4 +29,10 @@ public static class TestExceptions
 | 
			
		||||
            throw new InvalidOperationException("Something threw!", ex);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static List<T> GenericMethodWithOutThatThrows<T>(out List<T> firstFewItems)
 | 
			
		||||
    {
 | 
			
		||||
        firstFewItems = new List<T>();
 | 
			
		||||
        throw new InvalidOperationException("Throwing!");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
System.InvalidOperationException: Something threw!
 | 
			
		||||
     System.InvalidOperationException: Throwing!
 | 
			
		||||
       at Spectre.Console.Tests.Data.TestExceptions.GenericMethodThatThrows[T0,T1,TRet](Nullable`1 number) in /xyz/Exceptions.cs:nn
 | 
			
		||||
       at Spectre.Console.Tests.Data.TestExceptions.ThrowWithGenericInnerException() in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at Spectre.Console.Tests.Data.TestExceptions.ThrowWithGenericInnerException() in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at Spectre.Console.Tests.Unit.ExceptionTests.<>c.<Should_Write_Exceptions_With_Generic_Type_Parameters_In_Callsite_As_Expected>b__4_0() in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at Spectre.Console.Tests.Unit.ExceptionTests.GetException(Action action) in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
       at bool Spectre.Console.Tests.Data.TestExceptions.GenericMethodThatThrows<T0,T1,TRet>(int? number) in /xyz/Exceptions.cs:nn
 | 
			
		||||
       at void Spectre.Console.Tests.Data.TestExceptions.ThrowWithGenericInnerException() in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at void Spectre.Console.Tests.Data.TestExceptions.ThrowWithGenericInnerException() in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at void Spectre.Console.Tests.Unit.ExceptionTests.<>c.<Should_Write_Exceptions_With_Generic_Type_Parameters_In_Callsite_As_Expected>b__4_0() in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at Exception Spectre.Console.Tests.Unit.ExceptionTests.GetException(Action action) in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
System.InvalidOperationException: Throwing!
 | 
			
		||||
  at Spectre.Console.Tests.Data.TestExceptions.MethodThatThrows(Nullable`1 number) in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at Spectre.Console.Tests.Unit.ExceptionTests.<>c.<Should_Write_Exception>b__0_0() in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at Spectre.Console.Tests.Unit.ExceptionTests.GetException(Action action) in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at bool Spectre.Console.Tests.Data.TestExceptions.MethodThatThrows(int? number) in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at void Spectre.Console.Tests.Unit.ExceptionTests.<>c.<Should_Write_Exception>b__0_0() in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at Exception Spectre.Console.Tests.Unit.ExceptionTests.GetException(Action action) in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
System.InvalidOperationException: Something threw!
 | 
			
		||||
     System.InvalidOperationException: Throwing!
 | 
			
		||||
       at Spectre.Console.Tests.Data.TestExceptions.MethodThatThrows(Nullable`1 number) in /xyz/Exceptions.cs:nn
 | 
			
		||||
       at Spectre.Console.Tests.Data.TestExceptions.ThrowWithInnerException() in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at Spectre.Console.Tests.Data.TestExceptions.ThrowWithInnerException() in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at Spectre.Console.Tests.Unit.ExceptionTests.<>c.<Should_Write_Exception_With_Inner_Exception>b__3_0() in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at Spectre.Console.Tests.Unit.ExceptionTests.GetException(Action action) in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
       at bool Spectre.Console.Tests.Data.TestExceptions.MethodThatThrows(int? number) in /xyz/Exceptions.cs:nn
 | 
			
		||||
       at void Spectre.Console.Tests.Data.TestExceptions.ThrowWithInnerException() in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at void Spectre.Console.Tests.Data.TestExceptions.ThrowWithInnerException() in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at void Spectre.Console.Tests.Unit.ExceptionTests.<>c.<Should_Write_Exception_With_Inner_Exception>b__3_0() in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at Exception Spectre.Console.Tests.Unit.ExceptionTests.GetException(Action action) in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,4 @@
 | 
			
		||||
InvalidOperationException: Throwing!
 | 
			
		||||
  at List<T> Spectre.Console.Tests.Data.TestExceptions.GenericMethodWithOutThatThrows<T>(out List<T> firstFewItems) in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at void Spectre.Console.Tests.Unit.ExceptionTests.<>c.<Should_Write_Exception_With_Output_Param>b__5_0() in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at Exception Spectre.Console.Tests.Unit.ExceptionTests.GetException(Action action) in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
System.InvalidOperationException: Throwing!
 | 
			
		||||
  at MethodThatThrows(Nullable`1 number) in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at <Should_Write_Exception_With_Shortened_Methods>b__2_0() in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at GetException(Action action) in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at bool MethodThatThrows(int? number) in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at void <Should_Write_Exception_With_Shortened_Methods>b__2_0() in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at Exception GetException(Action action) in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
InvalidOperationException: Throwing!
 | 
			
		||||
  at Spectre.Console.Tests.Data.TestExceptions.MethodThatThrows(Nullable`1 number) in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at Spectre.Console.Tests.Unit.ExceptionTests.<>c.<Should_Write_Exception_With_Shortened_Types>b__1_0() in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at Spectre.Console.Tests.Unit.ExceptionTests.GetException(Action action) in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at bool Spectre.Console.Tests.Data.TestExceptions.MethodThatThrows(int? number) in /xyz/Exceptions.cs:nn
 | 
			
		||||
  at void Spectre.Console.Tests.Unit.ExceptionTests.<>c.<Should_Write_Exception_With_Shortened_Types>b__1_0() in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
  at Exception Spectre.Console.Tests.Unit.ExceptionTests.GetException(Action action) in /xyz/ExceptionTests.cs:nn
 | 
			
		||||
 
 | 
			
		||||
@@ -79,6 +79,21 @@ public sealed class ExceptionTests
 | 
			
		||||
        return Verifier.Verify(result);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Fact]
 | 
			
		||||
    [Expectation("OutParam")]
 | 
			
		||||
    public Task Should_Write_Exception_With_Output_Param()
 | 
			
		||||
    {
 | 
			
		||||
        // Given
 | 
			
		||||
        var console = new TestConsole().Width(1024);
 | 
			
		||||
        var dex = GetException(() => TestExceptions.GenericMethodWithOutThatThrows<int>(out _));
 | 
			
		||||
 | 
			
		||||
        // When
 | 
			
		||||
        var result = console.WriteNormalizedException(dex, ExceptionFormats.ShortenTypes);
 | 
			
		||||
 | 
			
		||||
        // Then
 | 
			
		||||
        return Verifier.Verify(result);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static Exception GetException(Action action)
 | 
			
		||||
    {
 | 
			
		||||
        try
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user