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 static org.fcrepo.kernel.api.RdfLexicon.EMBED_CONTAINED;
024import static org.fcrepo.kernel.api.RdfLexicon.INBOUND_REFERENCES;
025import static org.fcrepo.kernel.api.RdfLexicon.LDP_NAMESPACE;
026import static org.junit.Assert.assertFalse;
027import static org.junit.Assert.assertTrue;
028
029/**
030 * @author cabeer
031 */
032public class LdpPreferTagTest {
033
034    private LdpPreferTag testObj;
035
036
037    @Test
038    public void testMinimalHandling() {
039        testObj = new LdpPreferTag(new PreferTag("handling=lenient; received=\"minimal\""));
040
041        assertFalse(testObj.prefersServerManaged());
042        assertFalse(testObj.prefersContainment());
043        assertFalse(testObj.prefersMembership());
044        assertFalse(testObj.prefersEmbed());
045        assertFalse(testObj.prefersReferences());
046
047    }
048
049    @Test
050    public void testMinimalContainer() {
051        final PreferTag prefer
052                = new PreferTag("return=representation; include=\"" + LDP_NAMESPACE + "PreferMinimalContainer\"");
053        testObj = new LdpPreferTag(prefer);
054
055        assertTrue(testObj.prefersServerManaged());
056        assertFalse(testObj.prefersReferences());
057        assertFalse(testObj.prefersContainment());
058        assertFalse(testObj.prefersMembership());
059        assertFalse(testObj.prefersEmbed());
060    }
061
062    @Test
063    public void testPreferMembership() {
064        final PreferTag prefer
065                = new PreferTag("return=representation; include=\"" + LDP_NAMESPACE + "PreferMinimalContainer "
066                                                                    + LDP_NAMESPACE + "PreferMembership\"");
067        testObj = new LdpPreferTag(prefer);
068
069        assertTrue(testObj.prefersMembership());
070    }
071
072    @Test
073    public void testPreferContainment() {
074        final PreferTag prefer
075                = new PreferTag("return=representation; include=\"" + LDP_NAMESPACE + "PreferMinimalContainer "
076                                                                    + LDP_NAMESPACE + "PreferContainment\"");
077        testObj = new LdpPreferTag(prefer);
078
079        assertTrue(testObj.prefersContainment());
080    }
081
082    @Test
083    public void testPreferContainmentAndMembership() {
084        final PreferTag prefer
085                = new PreferTag("return=representation; include=\"" + LDP_NAMESPACE + "PreferMembership "
086                                                                    + LDP_NAMESPACE + "PreferContainment\"");
087        testObj = new LdpPreferTag(prefer);
088
089        assertTrue(testObj.prefersMembership());
090        assertTrue(testObj.prefersContainment());
091    }
092
093    @Test
094    public void testPreferOmitContainmentAndMembership() {
095        final PreferTag prefer
096                = new PreferTag("return=representation; omit=\"" + LDP_NAMESPACE + "PreferMembership "
097                                                                 + LDP_NAMESPACE + "PreferContainment\"");
098        testObj = new LdpPreferTag(prefer);
099
100        assertFalse(testObj.prefersMembership());
101        assertFalse(testObj.prefersContainment());
102    }
103
104    @Test
105    public void testPreferReference() {
106        final PreferTag prefer
107                = new PreferTag("return=representation; include=\"" + INBOUND_REFERENCES + "\"");
108        testObj = new LdpPreferTag(prefer);
109
110        assertTrue(testObj.prefersReferences());
111    }
112
113    @Test
114    public void testEmbedDefault() {
115        testObj = new LdpPreferTag(PreferTag.emptyTag());
116        assertFalse(testObj.prefersEmbed());
117    }
118
119    @Test
120    public void testEmbedContained() {
121        testObj = new LdpPreferTag(new PreferTag("return=representation; include=\"" + EMBED_CONTAINED + "\""));
122        assertTrue(testObj.prefersEmbed());
123    }
124}