MCPcopy Index your code
hub / github.com/OpenFeign/feign / MockClient

Class MockClient

mock/src/main/java/feign/mock/MockClient.java:28–338  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26import java.util.concurrent.CompletableFuture;
27
28public class MockClient implements Client, AsyncClient<Object> {
29
30 static class RequestResponse {
31
32 private final RequestKey requestKey;
33
34 private final Response.Builder responseBuilder;
35
36 public RequestResponse(RequestKey requestKey, Response.Builder responseBuilder) {
37 this.requestKey = requestKey;
38 this.responseBuilder = responseBuilder;
39 }
40 }
41
42 private final List<RequestResponse> responses = new ArrayList<>();
43
44 private final Map<RequestKey, List<Request>> requests = new HashMap<>();
45
46 private boolean sequential;
47
48 private Iterator<RequestResponse> responseIterator;
49
50 public MockClient() {}
51
52 public MockClient(boolean sequential) {
53 this.sequential = sequential;
54 }
55
56 @Override
57 public synchronized Response execute(Request request, Request.Options options)
58 throws IOException {
59 RequestKey requestKey = RequestKey.create(request);
60 Response.Builder responseBuilder;
61 if (sequential) {
62 responseBuilder = executeSequential(requestKey);
63 } else {
64 responseBuilder = executeAny(request, requestKey);
65 }
66 responseBuilder.protocolVersion(ProtocolVersion.MOCK);
67
68 return responseBuilder.request(request).build();
69 }
70
71 @Override
72 public CompletableFuture<Response> execute(
73 Request request, Request.Options options, Optional<Object> requestContext) {
74 RequestKey requestKey = RequestKey.create(request);
75 Response.Builder responseBuilder;
76 if (sequential) {
77 responseBuilder = executeSequential(requestKey);
78 } else {
79 responseBuilder = executeAny(request, requestKey);
80 }
81 responseBuilder.protocolVersion(ProtocolVersion.MOCK);
82
83 return CompletableFuture.completedFuture(responseBuilder.request(request).build());
84 }
85

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected