package com.github.dreamhead.moco.dumper;
import com.github.dreamhead.moco.HttpRequest;
import com.github.dreamhead.moco.Request;
import com.google.common.base.Joiner;
import io.netty.util.internal.StringUtil;
import static com.github.dreamhead.moco.dumper.HttpDumpers.asContent;
public class HttpRequestDumper implements Dumper<Request> {
private final Joiner.MapJoiner headerJoiner = Joiner.on(StringUtil.NEWLINE).withKeyValueSeparator(": ");
@Override
public String dump(final Request request) {
HttpRequest httpRequest = (HttpRequest) request;
StringBuilder buf = new StringBuilder();
buf.append(requestProtocolLine(httpRequest))
.append(StringUtil.NEWLINE)
.append(headerJoiner.join(httpRequest.getHeaders()))
.append(asContent(httpRequest));
return buf.toString();
}
private String requestProtocolLine(final HttpRequest request) {
return request.getMethod().name() + ' ' + request.getUri() + ' ' + request.getVersion().text();
}
}