/** * Copyright (C) 2012-2014 Gist Labs, LLC. (http://gistlabs.com) * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package com.gistlabs.mechanize; import static org.junit.Assert.fail; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpRequestBase; import com.gistlabs.mechanize.impl.MechanizeAgent; /** * @author Martin Kersten<Martin.Kersten.mk@gmail.com> */ class MechanizeMock extends MechanizeAgent { final List<PageRequest> requests = new ArrayList<PageRequest>(); @Override protected HttpResponse execute(final HttpClient client, final HttpRequestBase request) throws Exception { PageRequest pageRequest = nextUnexecutedPageRequest(); if(pageRequest != null) return pageRequest.consume(client, request); else { fail("No open page requests"); return null; } } public PageRequest nextUnexecutedPageRequest() { for(PageRequest pageRequest : requests) if(!pageRequest.wasExecuted()) return pageRequest; return null; } }