]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
dfed6c5933f90e6180d6e03db6957a733249bac9
[tmp/jakarta-migration.git] /
1 package org.collectionspace.services.common.xmljson.test;
2
3 import java.util.Arrays;
4 import java.util.Collections;
5
6 import javax.servlet.http.HttpServletRequest;
7
8 import static org.collectionspace.services.common.xmljson.RequestUtils.*;
9 import static org.testng.Assert.*;
10
11 import org.easymock.EasyMock;
12 import org.testng.annotations.Test;
13
14 public class RequestUtilsTest {
15
16     @Test
17     public void testIsJsonContent() {
18         assertFalse(isJsonContent(requestWithContentType(null)));
19         assertFalse(isJsonContent(requestWithContentType("application/xml")));
20         assertTrue(isJsonContent(requestWithContentType("application/json")));
21     }
22     
23     @Test
24     public void testIsJsonPreferred() {
25         assertEquals(
26                 isJsonPreferred("application/json"),
27                 true);
28         assertEquals(
29                 isJsonPreferred("application/xml"),
30                 false);
31         assertEquals(
32                 isJsonPreferred("*/*"),
33                 false);
34         assertEquals(
35                 isJsonPreferred(""),
36                 false);
37         assertEquals(
38                 isJsonPreferred((String) null),
39                 false);
40         assertEquals(
41                 isJsonPreferred("application/json,application/xml;q=0.9"),
42                 true);
43         assertEquals(
44                 isJsonPreferred("application/json;q=0.8,application/xml;q=0.9"),
45                 false);
46         assertEquals(
47                 isJsonPreferred("application/json;q=0.8,application/xml;q=0.7"),
48                 true);
49     }
50
51     @Test
52     public void testGetXmlEnsuredAccept() {
53         assertEquals(
54                 getXmlEnsuredAccept("application/json"),
55                 "application/json,application/xml;q=0.001");
56         assertEquals(
57                 getXmlEnsuredAccept("application/xml"),
58                 "application/xml");
59         assertEquals(
60                 getXmlEnsuredAccept("application/json,application/xml;q=0.9"),
61                 "application/json,application/xml;q=0.9");
62         assertEquals(
63                 getXmlEnsuredAccept("application/json;q=0.8,application/xml;q=0.9"),
64                 "application/json;q=0.8,application/xml;q=0.9");
65         assertEquals(
66                 getXmlEnsuredAccept("application/json;q=0.8,application/xml;q=0.7"),
67                 "application/json;q=0.8,application/xml;q=0.7");
68         assertEquals(
69                 getXmlEnsuredAccept("application/xml;q=0.7,application/json;q=0.8"),
70                 "application/xml;q=0.7,application/json;q=0.8");
71     }
72
73     @Test
74     public void testGetAccept() {
75         assertEquals(
76                 getAccept(requestAccepting("application/json")),
77                 "application/json");
78         assertEquals(
79                 getAccept(requestAccepting("application/xml")),
80                 "application/xml");
81         assertEquals(
82                 getAccept(requestAccepting("application/json,application/xml")),
83                 "application/json,application/xml");
84         assertEquals(
85                 getAccept(requestAccepting("application/json", "application/xml")),
86                 "application/json,application/xml");
87         assertEquals(
88                 getAccept(requestAccepting("*/*", "application/xml;q=0.9", "application/json;q=0.4")),
89                 "*/*,application/xml;q=0.9,application/json;q=0.4");
90     }
91
92     private HttpServletRequest requestAccepting(String... accepts) {
93         HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
94         
95         EasyMock.expect(request.getHeaders("Accept"))
96             .andReturn(Collections.enumeration(Arrays.asList(accepts)));
97         
98         EasyMock.replay(request);
99         
100         return request;
101     }
102     
103     private HttpServletRequest requestWithContentType(String contentType) {
104         HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
105         
106         EasyMock.expect(request.getContentType())
107             .andReturn(contentType);
108         
109         EasyMock.replay(request);
110         
111         return request;
112     }
113 }