package com.github.kristofa.test.http.file;
import java.io.File;
import com.github.kristofa.test.http.HttpResponse;
import com.github.kristofa.test.http.HttpResponseProxy;
class FileHttpResponseProxy implements HttpResponseProxy {
private final String directory;
private final String filename;
private final int seqNr;
private boolean isConsumed = false;
private final HttpResponseFileReader httpResponseFileReader;
public FileHttpResponseProxy(final String directory, final String filename, final int seqNr,
final HttpResponseFileReader responseFileReader) {
this.directory = directory;
this.filename = filename;
this.seqNr = seqNr;
httpResponseFileReader = responseFileReader;
}
@Override
public boolean consumed() {
return isConsumed;
}
@Override
public HttpResponse getResponse() {
return readResponse();
}
@Override
public HttpResponse consume() {
final HttpResponse response = readResponse();
isConsumed = true;
return response;
}
private HttpResponse readResponse() {
final File responseFile = new File(directory, FileNameBuilder.RESPONSE_FILE_NAME.getFileName(filename, seqNr));
final File responseEntityFile =
new File(directory, FileNameBuilder.RESPONSE_ENTITY_FILE_NAME.getFileName(filename, seqNr));
final HttpResponse response = httpResponseFileReader.read(responseFile, responseEntityFile);
return response;
}
}