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); }