WebResponseListener.java 1.1 KB
Newer Older
T
tfennelly 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
package com.gargoylesoftware.htmlunit;

import org.junit.Assert;

import java.io.IOException;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

/**
 * @author <a href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a>
 */
public interface WebResponseListener {

    void onLoadWebResponse(WebRequest webRequest, WebResponse webResponse) throws IOException;

    public final class StatusListener implements WebResponseListener {

        private final int statusCode;
        private final List<WebResponse> responses = new CopyOnWriteArrayList<>();

        public StatusListener(final int statusCode) {
            this.statusCode = statusCode;
        }

        @Override
        public void onLoadWebResponse(WebRequest webRequest, WebResponse webResponse) throws IOException {
            if (webResponse.getStatusCode() == statusCode) {
                responses.add(webResponse);
            }
        }

        public void assertHasResponses() {
            Assert.assertTrue(!responses.isEmpty());
        }

        public List<WebResponse> getResponses() {
            return responses;
        }
    }
}