001/*
002 * Licensed to DuraSpace under one or more contributor license agreements.
003 * See the NOTICE file distributed with this work for additional information
004 * regarding copyright ownership.
005 *
006 * DuraSpace licenses this file to you under the Apache License,
007 * Version 2.0 (the "License"); you may not use this file except in
008 * compliance with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.fcrepo.http.commons.domain.ldp;
019
020import org.fcrepo.http.commons.domain.PreferTag;
021import org.junit.Test;
022
023import java.text.ParseException;
024
025import static org.fcrepo.kernel.api.RdfLexicon.EMBED_CONTAINS;
026import static org.fcrepo.kernel.api.RdfLexicon.INBOUND_REFERENCES;
027import static org.fcrepo.kernel.api.RdfLexicon.LDP_NAMESPACE;
028import static org.junit.Assert.assertFalse;
029import static org.junit.Assert.assertTrue;
030
031/**
032 * @author cabeer
033 */
034public class LdpPreferTagTest {
035
036    private LdpPreferTag testObj;
037
038
039    @Test
040    public void testMinimalHandling() throws ParseException {
041        testObj = new LdpPreferTag(new PreferTag("handling=lenient; received=\"minimal\""));
042
043        assertFalse(testObj.prefersServerManaged());
044        assertFalse(testObj.prefersContainment());
045        assertFalse(testObj.prefersMembership());
046        assertFalse(testObj.prefersEmbed());
047        assertFalse(testObj.prefersReferences());
048
049    }
050
051    @Test
052    public void testMinimalContainer() throws ParseException {
053        final PreferTag prefer
054                = new PreferTag("return=representation; include=\"" + LDP_NAMESPACE + "PreferMinimalContainer\"");
055        testObj = new LdpPreferTag(prefer);
056
057        assertTrue(testObj.prefersServerManaged());
058        assertFalse(testObj.prefersReferences());
059        assertFalse(testObj.prefersContainment());
060        assertFalse(testObj.prefersMembership());
061        assertFalse(testObj.prefersEmbed());
062    }
063
064    @Test
065    public void testPreferMembership() throws ParseException {
066        final PreferTag prefer
067                = new PreferTag("return=representation; include=\"" + LDP_NAMESPACE + "PreferMinimalContainer "
068                                                                    + LDP_NAMESPACE + "PreferMembership\"");
069        testObj = new LdpPreferTag(prefer);
070
071        assertTrue(testObj.prefersMembership());
072    }
073
074    @Test
075    public void testPreferContainment() throws ParseException {
076        final PreferTag prefer
077                = new PreferTag("return=representation; include=\"" + LDP_NAMESPACE + "PreferMinimalContainer "
078                                                                    + LDP_NAMESPACE + "PreferContainment\"");
079        testObj = new LdpPreferTag(prefer);
080
081        assertTrue(testObj.prefersContainment());
082    }
083
084    @Test
085    public void testPreferContainmentAndMembership() throws ParseException {
086        final PreferTag prefer
087                = new PreferTag("return=representation; include=\"" + LDP_NAMESPACE + "PreferMembership "
088                                                                    + LDP_NAMESPACE + "PreferContainment\"");
089        testObj = new LdpPreferTag(prefer);
090
091        assertTrue(testObj.prefersMembership());
092        assertTrue(testObj.prefersContainment());
093    }
094
095    @Test
096    public void testPreferOmitContainmentAndMembership() throws ParseException {
097        final PreferTag prefer
098                = new PreferTag("return=representation; omit=\"" + LDP_NAMESPACE + "PreferMembership "
099                                                                 + LDP_NAMESPACE + "PreferContainment\"");
100        testObj = new LdpPreferTag(prefer);
101
102        assertFalse(testObj.prefersMembership());
103        assertFalse(testObj.prefersContainment());
104    }
105
106    @Test
107    public void testPreferEmbed() throws ParseException {
108        final PreferTag prefer
109                = new PreferTag("return=representation; include=\"" + EMBED_CONTAINS + "\"");
110        testObj = new LdpPreferTag(prefer);
111
112        assertTrue(testObj.prefersEmbed());
113    }
114
115    @Test
116    public void testPreferReference() throws ParseException {
117        final PreferTag prefer
118                = new PreferTag("return=representation; include=\"" + INBOUND_REFERENCES + "\"");
119        testObj = new LdpPreferTag(prefer);
120
121        assertTrue(testObj.prefersReferences());
122    }
123
124}