async Task VerifyInfo(VerifyEngine engine, VerifySettings settings, object?info) { if (info == null) { return; } var file = GetFileNames("txt", settings.Namer, "info"); var builder = JsonFormatter.AsJson( info, settings.serialization.currentSettings, settings.IsNewLineEscapingDisabled); ApplyScrubbers.Apply(builder, settings.instanceScrubbers); var result = await Comparer.Text(file, builder, settings); engine.HandleCompareResult(result, file); }
static async Task <EqualityResult> GetResult(VerifySettings settings, FilePair filePair, Target target) { if (target.IsString) { var builder = new StringBuilder(target.StringData); ApplyScrubbers.Apply(target.Extension, builder, settings); return(await Comparer.Text(filePair, builder.ToString(), settings)); } var stream = target.StreamData; #if NETSTANDARD2_0 || NETFRAMEWORK using (stream) #else await using (stream) #endif { stream.MoveToStart(); return(await Comparer.Streams(settings, stream, filePair)); } }
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)); } }
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)); } }
public static void SchemaSettings( this VerifySettings settings, bool storedProcedures = true, bool tables = true, bool views = true, bool userDefinedFunctions = true, bool synonyms = true, Func <string, bool>?includeItem = null) { Guard.AgainstNull(settings, nameof(settings)); includeItem ??= _ => true; settings.Context.Add( "SqlServer", new SchemaSettings( storedProcedures, tables, views, userDefinedFunctions, synonyms, includeItem)); }
public InnerVerifier(string testName, string sourceFile, Assembly assembly, VerifySettings settings) { var projectDirectory = AttributeReader.GetProjectDirectory(assembly); directory = VerifierSettings.DeriveDirectory(sourceFile, projectDirectory); this.testName = testName; this.assembly = assembly; this.settings = settings; var altProjectDirectory = projectDirectory.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); var altProjectDirectoryTrimmed = altProjectDirectory.TrimEnd('/', '\\'); var projectDirectoryTrimmed = projectDirectory.TrimEnd('/', '\\'); settings.instanceScrubbers.Add(builder => { builder.Replace(projectDirectory, "{ProjectDirectory}"); builder.Replace(projectDirectoryTrimmed, "{ProjectDirectory}"); builder.Replace(altProjectDirectory, "{ProjectDirectory}"); builder.Replace(altProjectDirectoryTrimmed, "{ProjectDirectory}"); }); if (AttributeReader.TryGetSolutionDirectory(assembly, out var solutionDirectory)) { var altSolutionDirectory = solutionDirectory !.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); var altSolutionDirectoryTrimmed = altSolutionDirectory.TrimEnd('/', '\\'); var solutionDirectoryTrimmed = solutionDirectory.TrimEnd('/', '\\'); settings.instanceScrubbers.Add(builder => { builder.Replace(solutionDirectory, "{SolutionDirectory}"); builder.Replace(solutionDirectoryTrimmed, "{SolutionDirectory}"); builder.Replace(altSolutionDirectory, "{SolutionDirectory}"); builder.Replace(altSolutionDirectoryTrimmed, "{SolutionDirectory}"); }); } CounterContext.Start(); }
public static object?[] GetParameters(this VerifySettings settings, MethodInfo methodInfo) { var settingsParameters = settings.ParametersOrDefault(); var methodParameters = methodInfo.GetParameters(); if (!methodParameters.Any() || settingsParameters.Any()) { return(settingsParameters); } var names = string.Join(", ", methodParameters.Select(x => x.Name)); throw new($@"Method `{methodInfo.DeclaringType!.Name}.{methodInfo.Name}` requires parameters, but none have been defined. Add UseParameters. For example: VerifySettings settings = new(); settings.UseParameters({names}); await Verifier.Verify(target, settings); or await Verifier.Verify(target).UseParameters({names}); "); }
async Task VerifyStream(VerifySettings settings, Stream stream) { #if NETSTANDARD2_1 await using (stream) #else using (stream) #endif { if (settings.HasExtension()) { if (VerifierSettings.TryGetExtensionConverter(settings.extension !, out var conversion)) { var result = await conversion(stream, settings); await VerifyBinary(result.Streams, settings.ExtensionOrTxt(), settings, result.Info, result.Cleanup); return; } } await VerifyBinary(new List <ConversionStream> { new ConversionStream(settings.ExtensionOrBin(), stream) }, settings.ExtensionOrBin(), settings, null, null); } }
async Task VerifyBinary(IEnumerable <ConversionStream> streams, string infoExtension, VerifySettings settings, object?info, Func <Task>?cleanup) { var engine = new VerifyEngine( infoExtension, settings, directory, testName, assembly); var list = streams.ToList(); await VerifyInfo(engine, settings, info); for (var index = 0; index < list.Count; index++) { var conversionStream = list[index]; var file = GetFileForIndex(settings, list, index, conversionStream.Extension); var result = await GetResult(settings, file, conversionStream); engine.HandleCompareResult(result, file); } if (cleanup != null) { await cleanup.Invoke(); } await engine.ThrowIfRequired(); }
public static void AngleSharpDiffingSettings( this VerifySettings settings, Action <IDiffingStrategyCollection> options) { settings.Context["AngleSharpDiffing"] = new CompareSettings(options); }
public static void UseParameters(this VerifySettings settings, params object?[] parameters) { Guard.AgainstNull(settings, nameof(settings)); Guard.AgainstNullOrEmpty(parameters, nameof(parameters)); settings.Context["Parameters"] = parameters; }