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")));
21 assertTrue(isJsonContent(requestWithContentType("application/json;charset=utf-8")));
25 public void testIsJsonPreferred() {
27 isJsonPreferred("application/json"),
30 isJsonPreferred("application/xml"),
33 isJsonPreferred("*/*"),
39 isJsonPreferred((String) null),
42 isJsonPreferred("application/json,application/xml;q=0.9"),
45 isJsonPreferred("application/json;q=0.8,application/xml;q=0.9"),
48 isJsonPreferred("application/json;q=0.8,application/xml;q=0.7"),
53 public void testGetXmlEnsuredAccept() {
55 getXmlEnsuredAccept("application/json"),
56 "application/json,application/xml;q=0.001");
58 getXmlEnsuredAccept("application/xml"),
61 getXmlEnsuredAccept("application/json,application/xml;q=0.9"),
62 "application/json,application/xml;q=0.9");
64 getXmlEnsuredAccept("application/json;q=0.8,application/xml;q=0.9"),
65 "application/json;q=0.8,application/xml;q=0.9");
67 getXmlEnsuredAccept("application/json;q=0.8,application/xml;q=0.7"),
68 "application/json;q=0.8,application/xml;q=0.7");
70 getXmlEnsuredAccept("application/xml;q=0.7,application/json;q=0.8"),
71 "application/xml;q=0.7,application/json;q=0.8");
75 public void testGetAccept() {
77 getAccept(requestAccepting("application/json")),
80 getAccept(requestAccepting("application/xml")),
83 getAccept(requestAccepting("application/json,application/xml")),
84 "application/json,application/xml");
86 getAccept(requestAccepting("application/json", "application/xml")),
87 "application/json,application/xml");
89 getAccept(requestAccepting("*/*", "application/xml;q=0.9", "application/json;q=0.4")),
90 "*/*,application/xml;q=0.9,application/json;q=0.4");
93 private HttpServletRequest requestAccepting(String... accepts) {
94 HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
96 EasyMock.expect(request.getHeaders("Accept"))
97 .andReturn(Collections.enumeration(Arrays.asList(accepts)));
99 EasyMock.replay(request);
104 private HttpServletRequest requestWithContentType(String contentType) {
105 HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
107 EasyMock.expect(request.getContentType())
108 .andReturn(contentType);
110 EasyMock.replay(request);