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

Class RequestTemplateTest

core/src/test/java/feign/RequestTemplateTest.java:33–635  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

31import org.junit.jupiter.api.Test;
32
33public class RequestTemplateTest {
34
35 /** Avoid depending on guava solely for map literals. */
36 private static <K, V> Map<K, V> mapOf(K key, V val) {
37 Map<K, V> result = new LinkedHashMap<>();
38 result.put(key, val);
39 return result;
40 }
41
42 private static <K, V> Map<K, V> mapOf(K k1, V v1, K k2, V v2) {
43 Map<K, V> result = mapOf(k1, v1);
44 result.put(k2, v2);
45 return result;
46 }
47
48 private static <K, V> Map<K, V> mapOf(K k1, V v1, K k2, V v2, K k3, V v3) {
49 Map<K, V> result = mapOf(k1, v1, k2, v2);
50 result.put(k3, v3);
51 return result;
52 }
53
54 private static String expand(String template, Map<String, Object> variables) {
55 RequestTemplate requestTemplate = new RequestTemplate();
56 requestTemplate.uri(template);
57 return requestTemplate.resolve(variables).url();
58 }
59
60 @Test
61 void expandUrlEncoded() {
62 for (String val : Arrays.asList("apples", "sp ace", "unic???de", "qu?stion")) {
63 assertThat(expand("/users/{user}", mapOf("user", val)))
64 .isEqualTo("/users/" + UriUtils.encode(val, Util.UTF_8));
65 }
66 }
67
68 @Test
69 void expandMultipleParams() {
70 assertThat(expand("/users/{user}/{repo}", mapOf("user", "unic???de", "repo", "foo")))
71 .isEqualTo("/users/unic%3F%3F%3Fde/foo");
72 }
73
74 @Test
75 void expandParamKeyHyphen() {
76 assertThat(expand("/{user-dir}", mapOf("user-dir", "foo"))).isEqualTo("/foo");
77 }
78
79 @Test
80 void expandMissingParamProceeds() {
81 assertThat(expand("/{user-dir}", mapOf("user_dir", "foo"))).isEqualTo("/");
82 }
83
84 @Test
85 void resolveTemplateWithParameterizedPathSkipsEncodingSlash() {
86 RequestTemplate template = new RequestTemplate().method(HttpMethod.GET).uri("{zoneId}");
87
88 template = template.resolve(mapOf("zoneId", "/hostedzone/Z1PA6795UKMFR9"));
89
90 assertThat(template).hasUrl("/hostedzone/Z1PA6795UKMFR9");

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected