/**
* 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;
}
}