TestData.java
package io.github.giulong.spectrum.utils;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
import io.github.giulong.spectrum.exceptions.TestFailedException;
import io.github.giulong.spectrum.exceptions.VisualRegressionException;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.jcodec.api.awt.AWTSequenceEncoder;
@Slf4j
@Getter
@Builder
public class TestData {
private String className;
private String methodName;
private String classDisplayName;
private String testId;
private Path videoPath;
private VisualRegression visualRegression;
private TestFailedException testFailedException;
@Builder.Default
private Map<Path, AWTSequenceEncoder> encoders = new HashMap<>();
@Setter
private int screenshotNumber;
@Setter
private int frameNumber;
@Setter
private boolean dynamic;
@Setter
private byte[] lastFrameDigest;
@Setter
private String lastFrameDisplayName;
@Setter
private Path dynamicVideoPath;
@Setter
private String displayName;
public void incrementScreenshotNumber() {
screenshotNumber++;
}
public void incrementFrameNumber() {
frameNumber++;
}
public void registerFailedVisualRegression() {
log.debug("Registering test failed exception");
testFailedException = new VisualRegressionException(String.format("There were %d visual regressions", ++visualRegression.count));
}
@Getter
@Builder
public static class VisualRegression {
private Path path;
private int count;
@Setter
private Path dynamicPath;
}
}