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