1 package org.collectionspace.services.common.xmljson.test;
3 import java.util.Arrays;
4 import java.util.Collections;
6 import javax.servlet.http.HttpServletRequest;
8 import static org.collectionspace.services.common.xmljson.RequestUtils.*;
9 import static org.testng.Assert.*;
11 import org.easymock.EasyMock;
12 import org.testng.annotations.Test;
14 public class RequestUtilsTest {
17 public void testIsJsonContent() {
18 assertFalse(isJsonContent(requestWithContentType(null)));
19 assertFalse(isJsonContent(requestWithContentType("application/xml")));
20 assertTrue(isJsonContent(requestWithContentType("application/json")));
24 public void testIsJsonPreferred() {
26 isJsonPreferred("application/json"),
29 isJsonPreferred("application/xml"),
32 isJsonPreferred("*/*"),
38 isJsonPreferred((String) null),
41 isJsonPreferred("application/json,application/xml;q=0.9"),
44 isJsonPreferred("application/json;q=0.8,application/xml;q=0.9"),
47 isJsonPreferred("application/json;q=0.8,application/xml;q=0.7"),
52 public void testGetXmlEnsuredAccept() {
54 getXmlEnsuredAccept("application/json"),
55 "application/json,application/xml;q=0.001");
57 getXmlEnsuredAccept("application/xml"),
60 getXmlEnsuredAccept("application/json,application/xml;q=0.9"),
61 "application/json,application/xml;q=0.9");
63 getXmlEnsuredAccept("application/json;q=0.8,application/xml;q=0.9"),
64 "application/json;q=0.8,application/xml;q=0.9");
66 getXmlEnsuredAccept("application/json;q=0.8,application/xml;q=0.7"),
67 "application/json;q=0.8,application/xml;q=0.7");
69 getXmlEnsuredAccept("application/xml;q=0.7,application/json;q=0.8"),
70 "application/xml;q=0.7,application/json;q=0.8");
74 public void testGetAccept() {
76 getAccept(requestAccepting("application/json")),
79 getAccept(requestAccepting("application/xml")),
82 getAccept(requestAccepting("application/json,application/xml")),
83 "application/json,application/xml");
85 getAccept(requestAccepting("application/json", "application/xml")),
86 "application/json,application/xml");
88 getAccept(requestAccepting("*/*", "application/xml;q=0.9", "application/json;q=0.4")),
89 "*/*,application/xml;q=0.9,application/json;q=0.4");
92 private HttpServletRequest requestAccepting(String... accepts) {
93 HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
95 EasyMock.expect(request.getHeaders("Accept"))
96 .andReturn(Collections.enumeration(Arrays.asList(accepts)));
98 EasyMock.replay(request);
103 private HttpServletRequest requestWithContentType(String contentType) {
104 HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
106 EasyMock.expect(request.getContentType())
107 .andReturn(contentType);
109 EasyMock.replay(request);