1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.http.response;
18
19 import static org.apache.juneau.commons.utils.CollectionUtils.*;
20 import static org.apache.juneau.http.HttpResponses.*;
21 import static org.apache.juneau.http.response.BadRequest.*;
22 import static org.junit.jupiter.api.Assertions.*;
23
24 import org.apache.http.*;
25 import org.apache.juneau.*;
26 import org.apache.juneau.http.header.*;
27 import org.apache.juneau.rest.annotation.*;
28 import org.apache.juneau.rest.mock.*;
29 import org.junit.jupiter.api.*;
30
31 class BadRequest_Test extends TestBase {
32
33 @Rest
34 public static class A {
35 @RestGet
36 public void f1() throws BadRequest {
37 throw new BadRequest();
38 }
39 @RestGet
40 public void f2() throws BadRequest {
41 throw new BadRequest("foo {0}", "bar");
42 }
43 @RestGet
44 public void f3() throws BadRequest {
45 throw new BadRequest(new RuntimeException("baz"));
46 }
47 @RestGet
48 public void f4() throws BadRequest {
49 throw new BadRequest(new RuntimeException("baz"), "foo {0}", "bar");
50 }
51 @RestGet
52 public void f5() throws BadRequest {
53 throw badRequest().setHeader2("Foo", "bar");
54 }
55 @RestGet
56 public void f6() throws BadRequest {
57 throw new BadRequest("foo");
58 }
59 @RestGet
60 public void f7() throws BadRequest {
61 throw badRequest().setHeaders(l(
62 BasicHeader.of("Foo", "bar"),
63 BasicHeader.of("Baz", "qux")
64 ));
65 }
66 @RestGet
67 public void f8() throws BadRequest {
68 throw badRequest().setContent("Custom content");
69 }
70 @RestGet
71 public void f9() throws BadRequest {
72 throw badRequest().setContent("Another custom message");
73 }
74 }
75
76 @Test void a01_basic() throws Exception {
77 var c = MockRestClient.create(A.class).ignoreErrors().noTrace().build();
78
79 c.get("/f1").run()
80 .assertStatus().asCode().is(STATUS_CODE)
81 .assertContent(REASON_PHRASE);
82 c.get("/f2").run()
83 .assertStatus().asCode().is(STATUS_CODE)
84 .assertContent("foo bar");
85 c.get("/f3").run()
86 .assertStatus().asCode().is(STATUS_CODE)
87 .assertContent("baz");
88 c.get("/f4").run()
89 .assertStatus().asCode().is(STATUS_CODE)
90 .assertContent("foo bar");
91 c.get("/f5").run()
92 .assertStatus().asCode().is(STATUS_CODE)
93 .assertContent(REASON_PHRASE)
94 .assertHeader("Foo").is("bar");
95 c.get("/f6").run()
96 .assertStatus().asCode().is(STATUS_CODE)
97 .assertContent("foo");
98 c.get("/f7").run()
99 .assertStatus().asCode().is(STATUS_CODE)
100 .assertHeader("Foo").is("bar")
101 .assertHeader("Baz").is("qux");
102 c.get("/f8").run()
103 .assertStatus().asCode().is(STATUS_CODE)
104 .assertContent("Custom content");
105 c.get("/f9").run()
106 .assertStatus().asCode().is(STATUS_CODE)
107 .assertContent("Another custom message");
108 }
109
110 @Test void a02_fluentSetters() {
111 var x = badRequest();
112
113
114 assertSame(x, x.setHeaders(l(
115 BasicHeader.of("X-Test", "test-value")
116 )));
117 assertEquals("test-value", x.getFirstHeader("X-Test").getValue());
118
119
120 assertSame(x, x.setContent("test content"));
121
122
123 var x2 = badRequest();
124 HttpEntity entity = x2.getEntity();
125 assertSame(x2, x2.setContent(entity));
126 }
127 }