public async Task Verify(string input, VerifySettings?settings = null) { Guard.AgainstNull(input, nameof(input)); settings = settings.OrDefault(); var extension = settings.ExtensionOrTxt(); var innerVerifier = new VerifyEngine( extension, settings, testType, directory, testName); var file = GetFileNames(extension, settings.Namer); var scrubbedInput = ScrubInput(input, settings); FileHelpers.DeleteIfEmpty(file.Verified); if (!File.Exists(file.Verified)) { await FileHelpers.WriteText(file.Received, input); innerVerifier.AddMissing(file); await innerVerifier.ThrowIfRequired(); return; } var verifiedText = await FileHelpers.ReadText(file.Verified); verifiedText = verifiedText.Replace("\r\n", "\n"); try { assert(verifiedText, scrubbedInput); } catch (Exception exception) when(!BuildServerDetector.Detected) { await FileHelpers.WriteText(file.Received, scrubbedInput); innerVerifier.AddNotEquals(file); await innerVerifier.ThrowIfRequired(exception.Message); } }
async Task VerifyBinary(IEnumerable <Stream> streams, VerifySettings settings) { var extension = settings.ExtensionOrBin(); var innerVerifier = new VerifyEngine( extension, settings, testType, directory, testName); var list = streams.ToList(); for (var index = 0; index < list.Count; index++) { var suffix = GetSuffix(list, index); var stream = list[index]; var file = GetFileNames(extension, settings.Namer, suffix); var verifyResult = await StreamVerifier.VerifyStreams(stream, file); switch (verifyResult) { case VerifyResult.MissingVerified: innerVerifier.AddMissing(file); break; case VerifyResult.NotEqual: innerVerifier.AddNotEquals(file); break; case VerifyResult.Equal: innerVerifier.AddEquals(file); break; } } await innerVerifier.ThrowIfRequired(); }