package com.yoursway.progress.core.tests.mocks; import static com.yoursway.utils.YsMath.neq; import com.yoursway.progress.core.ProgressReporter; public class FinishCheckingReporter implements ProgressReporter { protected static final double EPS = 1e-6; private double previousProgress = 0; protected boolean verified = false; public boolean isCancelled() { return false; } public void setAction(int level, String action) { } public void setProgress(double progress) { double prev = previousProgress; String stepDesc = prev + " -> " + progress; verifyStep(progress, prev, stepDesc); previousProgress = progress; } protected void verifyStep(double progress, double prev, String stepDesc) { } public void verify() { verified = true; if (neq(previousProgress, 1, EPS)) throw new FinishException("Progress did not finish on 1.0: " + previousProgress); } public void expect(double value) { if (neq(previousProgress, value, EPS)) throw new FinishException("Progress expected: " + value + ", actual: " + previousProgress); } }