1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // Licensed to the .NET Foundation under one or more agreements.
- // The .NET Foundation licenses this file to you under the Apache 2.0 License.
- // See the LICENSE file in the project root for more information.
- using ApprovalTests.Core;
- using DiffPlex;
- using DiffPlex.DiffBuilder;
- using DiffPlex.DiffBuilder.Model;
- using System.IO;
- using Xunit.Abstractions;
- namespace ReactiveTests.Tests
- {
- public class DiffPlexReporter : IApprovalFailureReporter
- {
- public static DiffPlexReporter INSTANCE = new DiffPlexReporter();
- public ITestOutputHelper Output { get; set; }
- public void Report(string approved, string received)
- {
- var approvedText = File.Exists(approved) ? File.ReadAllText(approved) : string.Empty;
- var receivedText = File.ReadAllText(received);
- var diffBuilder = new InlineDiffBuilder(new Differ());
- var diff = diffBuilder.BuildDiffModel(approvedText, receivedText);
- foreach (var line in diff.Lines)
- {
- if (line.Type == ChangeType.Unchanged) continue;
- var prefix = " ";
- switch (line.Type)
- {
- case ChangeType.Inserted:
- prefix = "+ ";
- break;
- case ChangeType.Deleted:
- prefix = "- ";
- break;
- }
- Output.WriteLine("{0}{1}", prefix, line.Text);
- }
- }
- }
- }
|