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

Class SAXDecoderTest

sax/src/test/java/feign/sax/SAXDecoderTest.java:34–169  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32import org.xml.sax.helpers.DefaultHandler;
33
34@SuppressWarnings("deprecation")
35class SAXDecoderTest {
36
37 static String statusFailed =
38"""
39<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
40 <soap:Body>
41 <ns1:getNeustarNetworkStatusResponse xmlns:ns1="http://webservice.api.ultra.neustar.com/v01/">
42 <NeustarNetworkStatus xmlns:ns2="http://schema.ultraservice.neustar.com/v01/">Failed</NeustarNetworkStatus>
43 </ns1:getNeustarNetworkStatusResponse>
44 </soap:Body>
45</soap:Envelope>
46""";
47 Decoder decoder =
48 SAXDecoder.builder()
49 .registerContentHandler(
50 NetworkStatus.class,
51 new SAXDecoder.ContentHandlerWithResult.Factory<NetworkStatus>() {
52 @Override
53 public SAXDecoder.ContentHandlerWithResult<NetworkStatus> create() {
54 return new NetworkStatusHandler();
55 }
56 }) //
57 .registerContentHandler(NetworkStatusStringHandler.class) //
58 .build();
59
60 @Test
61 void parsesConfiguredTypes() throws ParseException, IOException {
62 assertThat(decoder.decode(statusFailedResponse(), NetworkStatus.class))
63 .isEqualTo(NetworkStatus.FAILED);
64 assertThat(decoder.decode(statusFailedResponse(), String.class)).isEqualTo("Failed");
65 }
66
67 @Test
68 void niceErrorOnUnconfiguredType() throws ParseException, IOException {
69 Throwable exception =
70 assertThrows(
71 IllegalStateException.class, () -> decoder.decode(statusFailedResponse(), int.class));
72
73 assertThat(exception.getMessage()).contains("type int not in configured handlers");
74 }
75
76 private Response statusFailedResponse() {
77 return Response.builder()
78 .status(200)
79 .reason("OK")
80 .request(Request.create(HttpMethod.GET, "/api", Collections.emptyMap(), null, Util.UTF_8))
81 .headers(Collections.<String, Collection<String>>emptyMap())
82 .body(statusFailed, UTF_8)
83 .build();
84 }
85
86 @Test
87 void nullBodyDecodesToEmpty() throws Exception {
88 Response response =
89 Response.builder()
90 .status(204)
91 .reason("OK")

Callers

nothing calls this directly

Calls 3

builderMethod · 0.95
buildMethod · 0.45

Tested by

no test coverage detected