package org.webpieces.httpfrontend2.api.mock2;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import org.webpieces.mock.MethodEnum;
import org.webpieces.mock.MockSuperclass;
import org.webpieces.mock.ParametersPassedIn;
import com.webpieces.http2engine.api.StreamWriter;
import com.webpieces.http2parser.api.dto.lib.PartialStream;
public class MockStreamWriter extends MockSuperclass implements StreamWriter {
private enum Method implements MethodEnum {
SEND_MORE
}
public void setDefaultRetValToThis() {
CompletableFuture<StreamWriter> completedFuture = CompletableFuture.completedFuture(this);
super.setDefaultReturnValue(Method.SEND_MORE, completedFuture);
}
@SuppressWarnings("unchecked")
@Override
public CompletableFuture<StreamWriter> send(PartialStream data) {
return (CompletableFuture<StreamWriter>) super.calledMethod(Method.SEND_MORE, data);
}
public PartialStream getSingleFrame() {
List<ParametersPassedIn> list = super.getCalledMethodList(Method.SEND_MORE);
if(list.size() != 1)
throw new IllegalArgumentException("method was not called exactly once. numTimes="+list.size());
return (PartialStream) list.get(0).getArgs()[0];
}
}