package com.saucelabs.saucerest.junit; import com.saucelabs.saucerest.SauceREST; import org.junit.rules.TestWatcher; import org.junit.runner.Description; import java.io.IOException; public class ResultReportingTestWatcher extends TestWatcher{ private final SessionIdProvider sessionIdProvider; private final SauceREST sauceREST; public ResultReportingTestWatcher(SessionIdProvider sessionIdProvider, final String username, final String accessKey) { this.sessionIdProvider = sessionIdProvider; sauceREST = new SauceREST(username, accessKey); } protected void succeeded(Description description) { try { sauceREST.jobPassed(sessionIdProvider.getSessionId()); } catch (IOException ioe) { throw new RuntimeException(ioe); } } protected void failed(Throwable e, Description description) { try { sauceREST.jobFailed(sessionIdProvider.getSessionId()); } catch (IOException ioe) { throw new RuntimeException(ioe); } } }