]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
946d32fad5bba4e100e133022f9b5552349121cc
[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         assertTrue(isJsonContent(requestWithContentType("application/json;charset=utf-8")));
22     }
23     
24     @Test
25     public void testIsJsonPreferred() {
26         assertEquals(
27                 isJsonPreferred("application/json"),
28                 true);
29         assertEquals(
30                 isJsonPreferred("application/xml"),
31                 false);
32         assertEquals(
33                 isJsonPreferred("*/*"),
34                 false);
35         assertEquals(
36                 isJsonPreferred(""),
37                 false);
38         assertEquals(
39                 isJsonPreferred((String) null),
40                 false);
41         assertEquals(
42                 isJsonPreferred("application/json,application/xml;q=0.9"),
43                 true);
44         assertEquals(
45                 isJsonPreferred("application/json;q=0.8,application/xml;q=0.9"),
46                 false);
47         assertEquals(
48                 isJsonPreferred("application/json;q=0.8,application/xml;q=0.7"),
49                 true);
50     }
51
52     @Test
53     public void testGetXmlEnsuredAccept() {
54         assertEquals(
55                 getXmlEnsuredAccept("application/json"),
56                 "application/json,application/xml;q=0.001");
57         assertEquals(
58                 getXmlEnsuredAccept("application/xml"),
59                 "application/xml");
60         assertEquals(
61                 getXmlEnsuredAccept("application/json,application/xml;q=0.9"),
62                 "application/json,application/xml;q=0.9");
63         assertEquals(
64                 getXmlEnsuredAccept("application/json;q=0.8,application/xml;q=0.9"),
65                 "application/json;q=0.8,application/xml;q=0.9");
66         assertEquals(
67                 getXmlEnsuredAccept("application/json;q=0.8,application/xml;q=0.7"),
68                 "application/json;q=0.8,application/xml;q=0.7");
69         assertEquals(
70                 getXmlEnsuredAccept("application/xml;q=0.7,application/json;q=0.8"),
71                 "application/xml;q=0.7,application/json;q=0.8");
72     }
73
74     @Test
75     public void testGetAccept() {
76         assertEquals(
77                 getAccept(requestAccepting("application/json")),
78                 "application/json");
79         assertEquals(
80                 getAccept(requestAccepting("application/xml")),
81                 "application/xml");
82         assertEquals(
83                 getAccept(requestAccepting("application/json,application/xml")),
84                 "application/json,application/xml");
85         assertEquals(
86                 getAccept(requestAccepting("application/json", "application/xml")),
87                 "application/json,application/xml");
88         assertEquals(
89                 getAccept(requestAccepting("*/*", "application/xml;q=0.9", "application/json;q=0.4")),
90                 "*/*,application/xml;q=0.9,application/json;q=0.4");
91     }
92
93     private HttpServletRequest requestAccepting(String... accepts) {
94         HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
95         
96         EasyMock.expect(request.getHeaders("Accept"))
97             .andReturn(Collections.enumeration(Arrays.asList(accepts)));
98         
99         EasyMock.replay(request);
100         
101         return request;
102     }
103     
104     private HttpServletRequest requestWithContentType(String contentType) {
105         HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
106         
107         EasyMock.expect(request.getContentType())
108             .andReturn(contentType);
109         
110         EasyMock.replay(request);
111         
112         return request;
113     }
114 }