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

Class FeignBuilderTest

core/src/test/java/feign/FeignBuilderTest.java:48–509  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46import org.junit.jupiter.api.Test;
47
48public class FeignBuilderTest {
49
50 public final MockWebServer server = new MockWebServer();
51
52 @Test
53 void defaults() throws Exception {
54 server.enqueue(new MockResponse().setBody("response data"));
55
56 String url = "http://localhost:" + server.getPort();
57 TestInterface api = Feign.builder().target(TestInterface.class, url);
58
59 Response response = api.codecPost("request data");
60 assertThat(Util.toString(response.body().asReader(Util.UTF_8))).isEqualTo("response data");
61
62 assertThat(server.takeRequest()).hasBody("request data");
63 }
64
65 /** Shows exception handling isn't required to coerce 404 to null or empty */
66 @Test
67 void dismiss404() {
68 server.enqueue(new MockResponse().setResponseCode(404));
69 server.enqueue(new MockResponse().setResponseCode(404));
70 server.enqueue(new MockResponse().setResponseCode(404));
71 server.enqueue(new MockResponse().setResponseCode(404));
72 server.enqueue(new MockResponse().setResponseCode(404));
73 server.enqueue(new MockResponse().setResponseCode(400));
74
75 String url = "http://localhost:" + server.getPort();
76 TestInterface api = Feign.builder().dismiss404().target(TestInterface.class, url);
77
78 assertThat(api.getQueues("/")).isEmpty(); // empty, not null!
79 assertThat(api.decodedLazyPost().hasNext()).isFalse(); // empty, not null!
80 assertThat(api.optionalContent()).isEmpty(); // empty, not null!
81 assertThat(api.streamPost()).isEmpty(); // empty, not null!
82 assertThat(api.decodedPost()).isNull(); // null, not empty!
83
84 try { // ensure other 400 codes are not impacted.
85 api.decodedPost();
86 failBecauseExceptionWasNotThrown(FeignException.class);
87 } catch (FeignException e) {
88 assertThat(e.status()).isEqualTo(400);
89 }
90 }
91
92 /** Shows exception handling isn't required to coerce 204 to null or empty */
93 @Test
94 void decode204() {
95 server.enqueue(new MockResponse().setResponseCode(204));
96 server.enqueue(new MockResponse().setResponseCode(204));
97 server.enqueue(new MockResponse().setResponseCode(204));
98 server.enqueue(new MockResponse().setResponseCode(204));
99 server.enqueue(new MockResponse().setResponseCode(204));
100 server.enqueue(new MockResponse().setResponseCode(400));
101
102 String url = "http://localhost:" + server.getPort();
103 TestInterface api = Feign.builder().target(TestInterface.class, url);
104
105 assertThat(api.getQueues("/")).isEmpty(); // empty, not null!

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected