TestStepBuilderConsumer.java
package io.github.giulong.spectrum.utils.web_driver_events;
import io.github.giulong.spectrum.pojos.events.TestStep;
import lombok.Builder;
import lombok.Getter;
import lombok.experimental.SuperBuilder;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import static java.time.temporal.ChronoUnit.MILLIS;
@SuperBuilder
public class TestStepBuilderConsumer extends WebDriverEventConsumer {
@Getter
private final List<TestStep> testSteps = new ArrayList<>();
@Builder.Default
private LocalDateTime lastTime = LocalDateTime.now();
@Override
public void accept(final WebDriverEvent webDriverEvent) {
final LocalDateTime now = LocalDateTime.now();
final Duration duration = Duration.ofMillis(lastTime.until(now, MILLIS));
final String message = webDriverEvent.removeTagsFromMessage();
final String delta = String.format("%d.%-3d", duration.toSecondsPart(), duration.toMillisPart()).replace(' ', '0');
final TestStep testStep = TestStep
.builder()
.time(now)
.delta(delta)
.message(message)
.build();
testSteps.add(testStep);
lastTime = now;
}
}