1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.http.header;
18
19 import static org.apache.juneau.TestUtils.*;
20 import static org.apache.juneau.commons.utils.CollectionUtils.*;
21 import static org.apache.juneau.commons.utils.StringUtils.*;
22 import static org.apache.juneau.http.HttpHeaders.*;
23 import static org.apache.juneau.junit.bct.BctAssertions.*;
24 import static org.junit.jupiter.api.Assertions.*;
25
26 import java.io.*;
27 import java.util.function.*;
28
29 import org.apache.juneau.*;
30 import org.apache.juneau.MediaType;
31 import org.apache.juneau.annotation.*;
32 import org.apache.juneau.http.annotation.*;
33 import org.apache.juneau.rest.annotation.*;
34 import org.apache.juneau.rest.client.*;
35 import org.apache.juneau.rest.mock.*;
36 import org.junit.jupiter.api.*;
37
38
39
40
41 class Accept_Test extends TestBase {
42
43 private static final String HEADER = "Accept";
44 private static final String VALUE = "foo";
45 private static final MediaRanges PARSED = MediaRanges.of("foo");
46
47 @Rest
48 public static class A {
49 @RestGet
50 public StringReader get(@Header(name=HEADER) @Schema(cf="multi") String[] h) {
51 return reader(h == null ? "null" : join(h, ','));
52 }
53 }
54
55
56
57
58
59 @Test void a01_basic() throws Exception {
60 var c = client().build();
61
62
63 c.get().header(accept(VALUE)).run().assertContent(VALUE);
64 c.get().header(accept(VALUE)).run().assertContent(VALUE);
65 c.get().header(accept(PARSED)).run().assertContent(VALUE);
66 c.get().header(accept(()->PARSED)).run().assertContent(VALUE);
67
68
69 c.get().header(accept((String)null)).run().assertContent().isEmpty();
70 c.get().header(accept((Supplier<MediaRanges>)null)).run().assertContent().isEmpty();
71 c.get().header(accept(()->null)).run().assertContent().isEmpty();
72 }
73
74 @Test void a02_asRanges() {
75 assertNull(new Accept((String)null).asMediaRanges().orElse(null));
76 assertEquals(-1, new Accept((String)null).match(l(MediaType.JSON)));
77 assertNull(new Accept((String)null).getRange(0));
78 assertString("Accept: application/json", new Accept(MediaRanges.of("application/json")));
79 }
80
81
82
83
84
85 private static RestClient.Builder client() {
86 return MockRestClient.create(A.class);
87 }
88 }