package ca.uhn.fhir.rest.server;
import static org.junit.Assert.*;
import java.util.regex.Matcher;
import org.junit.AfterClass;
import org.junit.Test;
import ca.uhn.fhir.rest.api.PreferReturnEnum;
import ca.uhn.fhir.util.TestUtil;
public class RestfulServerUtilsTest {
@Test
public void testAcceptPattern() {
Matcher m = RestfulServerUtils.ACCEPT_HEADER_PATTERN.matcher("application/json+fhir");
assertTrue(m.find());
assertEquals("application/json+fhir", m.group(0));
assertEquals("application/json+fhir", m.group(1));
}
@Test
public void testAcceptPattern2() {
Matcher m = RestfulServerUtils.ACCEPT_HEADER_PATTERN.matcher("text/plain, " + Constants.CT_FHIR_JSON);
assertTrue(m.find());
assertEquals("text/plain,", m.group(0));
assertEquals("text/plain", m.group(1));
assertTrue(m.find());
assertEquals(" application/json+fhir", m.group(0));
assertEquals("application/json+fhir", m.group(1));
}
@Test
public void testParsePreferHeaderBad() {
assertEquals(null, RestfulServerUtils.parsePreferHeader(null));
assertEquals(null, RestfulServerUtils.parsePreferHeader(""));
assertEquals(null, RestfulServerUtils.parsePreferHeader("foo"));
assertEquals(null, RestfulServerUtils.parsePreferHeader("foo,bar"));
assertEquals(null, RestfulServerUtils.parsePreferHeader("return"));
assertEquals(null, RestfulServerUtils.parsePreferHeader("return="));
assertEquals(null, RestfulServerUtils.parsePreferHeader("return= "));
assertEquals(null, RestfulServerUtils.parsePreferHeader("return= "));
assertEquals(null, RestfulServerUtils.parsePreferHeader("return= "));
assertEquals(null, RestfulServerUtils.parsePreferHeader("return= "));
assertEquals(null, RestfulServerUtils.parsePreferHeader("return= "));
assertEquals(null, RestfulServerUtils.parsePreferHeader("return =\"minimal"));
}
@Test
public void testParsePreferHeaderGood() {
assertEquals(PreferReturnEnum.MINIMAL, RestfulServerUtils.parsePreferHeader("return=minimal"));
assertEquals(PreferReturnEnum.REPRESENTATION, RestfulServerUtils.parsePreferHeader("return=representation"));
assertEquals(PreferReturnEnum.MINIMAL, RestfulServerUtils.parsePreferHeader("return = minimal "));
assertEquals(PreferReturnEnum.MINIMAL, RestfulServerUtils.parsePreferHeader("return = \"minimal\" "));
assertEquals(PreferReturnEnum.MINIMAL, RestfulServerUtils.parsePreferHeader("return =\"minimal\""));
assertEquals(PreferReturnEnum.MINIMAL, RestfulServerUtils.parsePreferHeader("return =\"minimal\""));
}
@AfterClass
public static void afterClassClearContext() {
TestUtil.clearAllStaticFieldsForUnitTest();
}
}