001/*
002 * The contents of this file are subject to the license and copyright
003 * detailed in the LICENSE and NOTICE files at the root of the source
004 * tree.
005 */
006package org.fcrepo.http.commons.domain;
007
008import org.junit.Test;
009
010import static org.junit.Assert.assertEquals;
011import static org.junit.Assert.assertTrue;
012
013/**
014 * @author cabeer
015 * @author ajs6f
016 */
017public class SinglePreferTest  {
018
019    protected SinglePrefer createTestPreferTypeFromHeader(final String header) {
020        return new SinglePrefer(header);
021    }
022
023    @Test
024    public void testHasReturn() {
025        final SinglePrefer prefer = createTestPreferTypeFromHeader("return=representation");
026
027        assertTrue(prefer.hasReturn());
028    }
029
030    @Test
031    public void testGetReturn() {
032        final SinglePrefer prefer = createTestPreferTypeFromHeader("return=representation");
033
034        assertEquals("representation", prefer.getReturn().getValue());
035    }
036
037    @Test
038    public void testGetReturnParameters() {
039        final SinglePrefer prefer =
040                createTestPreferTypeFromHeader("return=representation; "
041                        + "include=\"http://www.w3.org/ns/ldp#PreferMinimalContainer\"");
042
043        assertTrue(prefer.hasReturn());
044        assertEquals("representation", prefer.getReturn().getValue());
045
046        final String returnParams = prefer.getReturn().getParams().get("include");
047        assertTrue(returnParams.contains("http://www.w3.org/ns/ldp#PreferMinimalContainer"));
048    }
049
050    @Test
051    public void testHasHandling() {
052        final SinglePrefer prefer = createTestPreferTypeFromHeader("handling=strict");
053
054        assertTrue(prefer.hasHandling());
055    }
056
057    @Test
058    public void testGetHandling() {
059        final SinglePrefer prefer = createTestPreferTypeFromHeader("handling=lenient");
060
061        assertEquals("lenient", prefer.getHandling().getValue());
062    }
063
064    @Test
065    public void testGetHandlingParameters() {
066        final SinglePrefer prefer =
067                createTestPreferTypeFromHeader("handling=lenient; some=\"parameter\"");
068
069        assertTrue(prefer.hasHandling());
070        assertEquals("lenient", prefer.getHandling().getValue());
071
072        final String returnParams = prefer.getHandling().getParams().get("some");
073        assertTrue(returnParams.contains("parameter"));
074    }
075}