示例#1
0
    public void AppendTypeName_Returns_Value_Unchanged_When_No_TypeNameFormatter_Returns_A_NonEmpty_Result()
    {
        // Arrange
        var sut = new DefaultCsharpExpressionDumperCallback(Enumerable.Empty <ICustomTypeHandler>(),
                                                            new[] { new Mock <ITypeNameFormatter>().Object },
                                                            Enumerable.Empty <IConstructorResolver>(),
                                                            Enumerable.Empty <IReadOnlyPropertyResolver>(),
                                                            Enumerable.Empty <IObjectHandlerPropertyFilter>());

        // Act
        sut.AppendTypeName(typeof(string));

        // Assert
        sut.Builder.ToString().Should().Be("System.String");
    }
    internal static DefaultCsharpExpressionDumperCallback CreateCallback(IEnumerable <ICustomTypeHandler> typeHandlers,
                                                                         IEnumerable <ITypeNameFormatter> typeNameFormatters)
    {
        var callback = new DefaultCsharpExpressionDumperCallback
                       (
            typeHandlers,
            typeNameFormatters,
            Enumerable.Empty <IConstructorResolver>(),
            Enumerable.Empty <IReadOnlyPropertyResolver>(),
            Enumerable.Empty <IObjectHandlerPropertyFilter>()
                       );

        //little hacky... this initializes the ProcessRecursiveCallbackDelegate property on the callback class
        callback.Initialize
        (
            new Action <object?, Type?, StringBuilder, int>((instance, type, builder, level) => typeHandlers.ProcessUntilSuccess(x => x.Process(new CustomTypeHandlerRequest(instance, type, level), callback))),
            new StringBuilder()
        );
        return(callback);
    }