diff --git a/approvaltests/src/main/java/org/approvaltests/FailedFileLog.java b/approvaltests/src/main/java/org/approvaltests/FailedFileLog.java new file mode 100644 index 000000000..c3352189c --- /dev/null +++ b/approvaltests/src/main/java/org/approvaltests/FailedFileLog.java @@ -0,0 +1,30 @@ +package org.approvaltests; + +import com.spun.util.io.FileUtils; + +import java.io.File; + +import static org.approvaltests.ApprovedFileLog.APPROVAL_TEMP_DIRECTORY; + +public class FailedFileLog +{ + static + { + FileUtils.writeFile(get(), ""); + } + public static File get() + { + File file = new File(APPROVAL_TEMP_DIRECTORY + "/.failed_comparison.log"); + FileUtils.createIfNeeded(file.getAbsolutePath()); + return file; + } + public static void log(File received, File approved) + { + File log = get(); + FileUtils.appendToFile(log, String.format("%s -> %s\n", received.getAbsolutePath(), approved.getAbsolutePath())); + } + + public static void touch() { + // Allows static initializer to be called + } +} diff --git a/approvaltests/src/main/java/org/approvaltests/approvers/FileApprover.java b/approvaltests/src/main/java/org/approvaltests/approvers/FileApprover.java index fefcab66a..27e72277d 100644 --- a/approvaltests/src/main/java/org/approvaltests/approvers/FileApprover.java +++ b/approvaltests/src/main/java/org/approvaltests/approvers/FileApprover.java @@ -3,6 +3,7 @@ import com.spun.util.ObjectUtils; import com.spun.util.io.FileUtils; import org.approvaltests.ApprovedFileLog; +import org.approvaltests.FailedFileLog; import org.approvaltests.core.ApprovalFailureReporter; import org.approvaltests.core.ApprovalReporterWithCleanUp; import org.approvaltests.core.ApprovalWriter; @@ -48,6 +49,7 @@ public VerifyResult approve() { tracker.assertUnique(approved.getAbsolutePath()); ApprovedFileLog.log(approved); + FailedFileLog.touch(); received = writer.writeReceivedFile(received); return approver.call(received, approved); } @@ -61,6 +63,7 @@ public void cleanUpAfterSuccess(ApprovalFailureReporter reporter) } public VerifyResult reportFailure(ApprovalFailureReporter reporter) { + FailedFileLog.log(received, approved); reporter.report(received.getAbsolutePath(), approved.getAbsolutePath()); if (reporter instanceof ReporterWithApprovalPower) {