package com.codeborne.selenide.junit;
import com.codeborne.selenide.logevents.ErrorsCollector;
import com.codeborne.selenide.logevents.SelenideLogger;
import org.junit.rules.ExternalResource;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
import static com.codeborne.selenide.logevents.ErrorsCollector.LISTENER_SOFT_ASSERT;
public class SoftAsserts extends ExternalResource {
private Description currentTest;
@Override
public Statement apply(Statement base, Description description) {
currentTest = description;
return super.apply(base, description);
}
@Override
protected void before() throws Throwable {
SelenideLogger.addListener(LISTENER_SOFT_ASSERT, new ErrorsCollector());
}
@Override
protected void after() {
ErrorsCollector errorsCollector = SelenideLogger.removeListener(LISTENER_SOFT_ASSERT);
errorsCollector.failIfErrors(currentTest.getDisplayName());
}
}