async Task VerifyInner(object?target, Func <Task>?cleanup, IEnumerable <Target> targets) { var targetList = targets.ToList(); if (TryGetTargetBuilder(target, out var builder, out var extension)) { ApplyScrubbers.Apply(extension, builder, settings); var received = builder.ToString(); var stream = new Target(extension, received); targetList.Insert(0, stream); } targetList.AddRange(VerifierSettings.GetFileAppenders(settings)); var builders = targetList .Select( stream => { return(new ResultBuilder( stream.Extension, file => GetResult(settings, file, stream))); }) .ToList(); VerifyEngine engine = new(fileNameBuilder, settings.autoVerify); await engine.HandleResults(builders); if (cleanup != null) { await cleanup(); } await engine.ThrowIfRequired(); }
async Task VerifyInner(object?target, Func <Task>?cleanup, IEnumerable <ConversionStream> streams) { VerifyEngine engine = new(settings, fileNameBuilder); var streamsList = streams.ToList(); if (TryGetTargetBuilder(target, out var builder, out var extension)) { ApplyScrubbers.Apply(builder, settings.instanceScrubbers); var received = builder.ToString(); var stream = new ConversionStream(extension, received); streamsList.Insert(0, stream); } streamsList.AddRange(VerifierSettings.GetFileAppenders(settings)); var builders = streamsList .Select( stream => { return(new ResultBuilder( stream.Extension, file => GetResult(settings, file, stream))); }) .ToList(); await engine.HandleResults(builders); if (cleanup != null) { await cleanup.Invoke(); } await engine.ThrowIfRequired(); }
async Task VerifyStream(Stream stream, string?extension) { #if NETSTANDARD2_0 || NETFRAMEWORK using (stream) #else await using (stream) #endif { if (extension != null) { if (VerifierSettings.TryGetExtensionConverter(extension, out var conversion)) { var result = await conversion(stream, settings.Context); await VerifyBinary(result.Streams, extension, result.Info, result.Cleanup); return; } } extension ??= "bin"; List <ConversionStream> streams = new() { new(extension, stream) }; await VerifyBinary(streams, extension, null, null); } } async Task VerifyBinary(IEnumerable <ConversionStream> streams, string infoExtension, object?info, Func <Task>?cleanup) { VerifyEngine engine = new(infoExtension, settings, directory, testName, assembly); var builders = streams .Concat(VerifierSettings.GetFileAppenders(settings)) .Select(appender => { return(new ResultBuilder( appender.Extension, file => GetResult(settings, file, appender))); }) .ToList(); await VerifyInfo(engine, info); await HandleResults(builders, engine); if (cleanup != null) { await cleanup.Invoke(); } await engine.ThrowIfRequired(); }
async Task VerifyStringBuilder(StringBuilder target, string extension) { ApplyScrubbers.Apply(target, settings.instanceScrubbers); VerifyEngine engine = new(extension, settings, directory, testName, assembly); List <ResultBuilder> builders = new() { new(extension, file => Comparer.Text(file, target, settings)) }; builders.AddRange(VerifierSettings.GetFileAppenders(settings) .Select(appender => { return(new ResultBuilder( appender.Extension, file => GetResult(settings, file, appender))); })); await HandleResults(builders, engine); await engine.ThrowIfRequired(); }