1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.rest.arg;
18
19 import static org.apache.juneau.commons.utils.CollectionUtils.*;
20 import static org.junit.jupiter.api.Assertions.*;
21
22 import java.util.*;
23
24 import org.apache.http.*;
25 import org.apache.juneau.*;
26 import org.apache.juneau.commons.reflect.*;
27 import org.apache.juneau.http.*;
28 import org.apache.juneau.http.header.*;
29 import org.junit.jupiter.api.*;
30
31 class ArgException_Test extends TestBase {
32
33 private static ParameterInfo testParameterInfo;
34
35 @BeforeAll
36 public static void setup() throws Exception {
37
38 var mi = MethodInfo.of(ArgException_Test.class.getMethod("sampleMethod", String.class));
39 testParameterInfo = mi.getParameter(0);
40 }
41
42 public static void sampleMethod(String param) {
43
44 }
45
46 @Test void a01_basic() {
47 var x = new ArgException(testParameterInfo, "Test message");
48 assertNotNull(x);
49 assertTrue(x.getMessage().contains("Test message"));
50 assertTrue(x.getMessage().contains("parameter 0"));
51 }
52
53 @Test void a02_withArgs() {
54 var x = new ArgException(testParameterInfo, "Test {0} {1}", "foo", "bar");
55 assertTrue(x.getMessage().contains("Test foo bar"));
56 assertTrue(x.getMessage().contains("parameter 0"));
57 }
58
59 @Test void a03_fluentSetters() {
60 var x = new ArgException(testParameterInfo, "Test");
61
62
63 assertSame(x, x.setMessage("New message"));
64 assertTrue(x.getMessage().contains("New message"));
65
66
67 assertSame(x, x.setHeader2("X-Test", "test-value"));
68
69
70 var headers = HeaderList.of(BasicHeader.of("X-Header1", "value1"));
71 assertSame(x, x.setHeaders(headers));
72
73
74 assertSame(x, x.setHeaders2(BasicHeader.of("X-Header2", "value2")));
75
76
77 assertSame(x, x.setLocale2(Locale.US));
78
79
80 assertSame(x, x.setProtocolVersion(new ProtocolVersion("HTTP", 1, 1)));
81
82
83 assertSame(x, x.setReasonPhrase2("Custom Reason"));
84
85
86 assertSame(x, x.setReasonPhraseCatalog(null));
87
88
89 assertSame(x, x.setStatusLine(BasicStatusLine.create(500, "Test")));
90
91
92 List<Header> headerList = l(BasicHeader.of("X-Header3", "value3"));
93 assertSame(x, x.setHeaders(headerList));
94 assertEquals("value3", x.getFirstHeader("X-Header3").getValue());
95
96
97 assertSame(x, x.setContent("test content"));
98
99
100 HttpEntity entity = x.getEntity();
101 assertSame(x, x.setContent(entity));
102
103
104 assertSame(x, x.setUnmodifiable());
105 }
106
107 @Test void a04_fluentChaining() {
108
109 var x = new ArgException(testParameterInfo, "Initial")
110 .setHeaders(l(BasicHeader.of("X-Chain", "chained")))
111 .setContent("Chained content");
112
113 assertEquals("chained", x.getFirstHeader("X-Chain").getValue());
114 }
115
116 @Test void a05_copy() {
117
118 var x = new ArgException(testParameterInfo, "Original message");
119
120 ArgException copy = x.copy();
121
122
123 assertNotSame(x, copy);
124
125
126 assertInstanceOf(ArgException.class, copy);
127
128
129 assertTrue(copy.getMessage().contains("Original message"));
130 }
131 }