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 static org.fcrepo.kernel.api.RdfLexicon.EMBED_CONTAINED;
021import static org.fcrepo.kernel.api.RdfLexicon.INBOUND_REFERENCES;
022import static org.fcrepo.kernel.api.RdfLexicon.PREFER_CONTAINMENT;
023import static org.fcrepo.kernel.api.RdfLexicon.PREFER_MEMBERSHIP;
024import static org.fcrepo.kernel.api.RdfLexicon.PREFER_MINIMAL_CONTAINER;
025import static org.junit.Assert.assertFalse;
026import static org.junit.Assert.assertTrue;
027
028import org.fcrepo.http.commons.domain.PreferTag;
029
030import org.junit.Test;
031
032/**
033 * @author cabeer
034 */
035public class LdpPreferTagTest {
036
037    private LdpPreferTag testObj;
038
039    @Test
040    public void testDefaultDecisions() {
041        final PreferTag prefer = PreferTag.emptyTag();
042        testObj = new LdpPreferTag(prefer);
043
044        assertTrue(testObj.displayUserRdf());
045        assertTrue(testObj.displayServerManaged());
046        assertFalse(testObj.displayReferences());
047        assertTrue(testObj.displayContainment());
048        assertTrue(testObj.displayMembership());
049        assertFalse(testObj.displayEmbed());
050    }
051
052    @Test
053    public void testMinimalContainer() {
054        final PreferTag prefer
055                = new PreferTag("return=representation; include=\"" + PREFER_MINIMAL_CONTAINER + "\"");
056        testObj = new LdpPreferTag(prefer);
057
058        assertTrue(testObj.displayUserRdf());
059        assertTrue(testObj.displayServerManaged());
060        assertFalse(testObj.displayReferences());
061        assertFalse(testObj.displayContainment());
062        assertFalse(testObj.displayMembership());
063        assertFalse(testObj.displayEmbed());
064    }
065
066    @Test
067    public void testPreferMembership() {
068        final PreferTag prefer
069                = new PreferTag("return=representation; include=\"" + PREFER_MINIMAL_CONTAINER + " "
070                                                                    + PREFER_MEMBERSHIP + "\"");
071        testObj = new LdpPreferTag(prefer);
072
073        assertTrue(testObj.displayUserRdf());
074        assertTrue(testObj.displayServerManaged());
075        assertFalse(testObj.displayReferences());
076        assertFalse(testObj.displayContainment());
077        assertTrue(testObj.displayMembership());
078        assertFalse(testObj.displayEmbed());
079    }
080
081    @Test
082    public void testPreferContainment() {
083        final PreferTag prefer
084                = new PreferTag("return=representation; include=\"" + PREFER_MINIMAL_CONTAINER + " "
085                                                                    + PREFER_CONTAINMENT + "\"");
086        testObj = new LdpPreferTag(prefer);
087
088        assertTrue(testObj.displayUserRdf());
089        assertTrue(testObj.displayServerManaged());
090        assertFalse(testObj.displayReferences());
091        assertTrue(testObj.displayContainment());
092        assertFalse(testObj.displayMembership());
093        assertFalse(testObj.displayEmbed());
094    }
095
096    @Test
097    public void testPreferContainmentAndMembership() {
098        final PreferTag prefer
099                = new PreferTag("return=representation; include=\"" + PREFER_MEMBERSHIP + " "
100                                                                    + PREFER_CONTAINMENT + "\"");
101        testObj = new LdpPreferTag(prefer);
102
103        assertTrue(testObj.displayUserRdf());
104        assertTrue(testObj.displayServerManaged());
105        assertFalse(testObj.displayReferences());
106        assertTrue(testObj.displayContainment());
107        assertTrue(testObj.displayMembership());
108        assertFalse(testObj.displayEmbed());
109    }
110
111    @Test
112    public void testPreferOmitContainmentAndMembership() {
113        final PreferTag prefer
114                = new PreferTag("return=representation; omit=\"" + PREFER_MEMBERSHIP + " "
115                                                                 + PREFER_CONTAINMENT + "\"");
116        testObj = new LdpPreferTag(prefer);
117
118        assertTrue(testObj.displayUserRdf());
119        assertTrue(testObj.displayServerManaged());
120        assertFalse(testObj.displayReferences());
121        assertFalse(testObj.displayContainment());
122        assertFalse(testObj.displayMembership());
123        assertFalse(testObj.displayEmbed());
124    }
125
126    @Test
127    public void testPreferReference() {
128        final PreferTag prefer
129                = new PreferTag("return=representation; include=\"" + INBOUND_REFERENCES + "\"");
130        testObj = new LdpPreferTag(prefer);
131
132        assertTrue(testObj.displayUserRdf());
133        assertTrue(testObj.displayServerManaged());
134        assertTrue(testObj.displayReferences());
135        assertTrue(testObj.displayContainment());
136        assertTrue(testObj.displayMembership());
137        assertFalse(testObj.displayEmbed());
138    }
139
140    @Test
141    public void testEmbedContained() {
142        testObj = new LdpPreferTag(new PreferTag("return=representation; include=\"" + EMBED_CONTAINED + "\""));
143
144        assertTrue(testObj.displayUserRdf());
145        assertTrue(testObj.displayServerManaged());
146        assertFalse(testObj.displayReferences());
147        assertTrue(testObj.displayContainment());
148        assertTrue(testObj.displayMembership());
149        assertTrue(testObj.displayEmbed());
150    }
151}