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(); }
static async Task <EqualityResult> GetResult(VerifySettings settings, FilePair filePair, ConversionStream conversionStream) { var stream = conversionStream.Stream; #if NETSTANDARD2_0 || NETFRAMEWORK using (stream) #else await using (stream) #endif { stream.MoveToStart(); if (!EmptyFiles.Extensions.IsText(conversionStream.Extension)) { return(await Comparer.Streams(settings, stream, filePair)); } var builder = await stream.ReadAsString(); ApplyScrubbers.Apply(builder, settings.instanceScrubbers); return(await Comparer.Text(filePair, builder, settings)); } }
static async Task <EqualityResult> GetResult(VerifySettings settings, FilePair filePair, ConversionStream conversionStream) { if (conversionStream.IsData) { var builder = new StringBuilder(conversionStream.Data); ApplyScrubbers.Apply(builder, settings.instanceScrubbers); return(await Comparer.Text(filePair, builder.ToString(), settings)); } var stream = conversionStream.Stream; #if NETSTANDARD2_0 || NETFRAMEWORK using (stream) #else await using (stream) #endif { stream.MoveToStart(); return(await Comparer.Streams(settings, stream, filePair)); } }