// Path: src/main/java/org/firepick/firebom/exception/ProxyResolutionException.java
// public class ProxyResolutionException extends RuntimeException {
//     public ProxyResolutionException(Exception e) {
//         super(e);
//     }
// 
//     public ProxyResolutionException(String message) {
//         super(message);
//     }
// 
//     public ProxyResolutionException(String message, Exception e) {
//         super(message, e);
//     }
// }


import org.firepick.firebom.exception.ProxyResolutionException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
        }
        catch (Exception e) {
            fail(e.getMessage());
        }

        assert (proxy.isFresh());
        assert (proxy.isResolved());
        // Sampling has no effect on freshness
        proxy.sample();
        assert (proxy.isFresh());
        assert (proxy.isResolved());
        testProxyAge(proxy);

        return this;
    }

    public RefreshableProxyTester testRefreshFailure(IRefreshableProxy proxy) {
        // Initial proxy state
        testInitialProxyState(proxy);

        // Sampling has no effect on freshness
        proxy.sample();
        testInitialProxyState(proxy);

        long ageBefore = proxy.getAge();
        try {
            proxy.refresh();
            fail("Expected refresh failure");
        }
        catch (Exception e) {
// Path: src/main/java/org/firepick/firebom/exception/ProxyResolutionException.java
// public class ProxyResolutionException extends RuntimeException {
//     public ProxyResolutionException(Exception e) {
//         super(e);
//     }
// 
//     public ProxyResolutionException(String message) {
//         super(message);
//     }
// 
//     public ProxyResolutionException(String message, Exception e) {
//         super(message, e);
//     }
// }


// Path: src/test/java/org/firepick/firebom/RefreshableProxyTester.java
import org.firepick.firebom.exception.ProxyResolutionException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

        }
        catch (Exception e) {
            fail(e.getMessage());
        }

        assert (proxy.isFresh());
        assert (proxy.isResolved());
        // Sampling has no effect on freshness
        proxy.sample();
        assert (proxy.isFresh());
        assert (proxy.isResolved());
        testProxyAge(proxy);

        return this;
    }

    public RefreshableProxyTester testRefreshFailure(IRefreshableProxy proxy) {
        // Initial proxy state
        testInitialProxyState(proxy);

        // Sampling has no effect on freshness
        proxy.sample();
        testInitialProxyState(proxy);

        long ageBefore = proxy.getAge();
        try {
            proxy.refresh();
            fail("Expected refresh failure");
        }
        catch (Exception e) {
            assert (e instanceof ProxyResolutionException);