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 static org.fcrepo.kernel.api.RdfLexicon.PREFER_MINIMAL_CONTAINER; 009import static org.junit.Assert.assertEquals; 010import static org.junit.Assert.assertFalse; 011import static org.junit.Assert.assertNotNull; 012import static org.junit.Assert.assertTrue; 013 014import org.junit.Test; 015 016/** 017 * @author cabeer 018 */ 019public class PreferTagTest { 020 021 @Test 022 public void testEmpty() { 023 final PreferTag preferTag = PreferTag.emptyTag(); 024 assertEquals("", preferTag.getTag()); 025 assertEquals("", preferTag.getValue()); 026 assertTrue(preferTag.getParams().isEmpty()); 027 } 028 029 @Test 030 public void testTrailingSemicolon() { 031 final PreferTag preferTag = new PreferTag("foo=bar;"); 032 assertNotNull(preferTag.getParams()); 033 } 034 035 @Test 036 public void testEquals() { 037 final PreferTag preferTag1 = new PreferTag("handling=lenient; received=\"minimal\""); 038 final PreferTag preferTag2 = new PreferTag("handling=lenient; received=\"minimal\""); 039 final PreferTag preferTag3 = PreferTag.emptyTag(); 040 assertTrue(preferTag1.equals(preferTag2)); 041 assertTrue(preferTag1.equals(preferTag1)); // ensure consistency 042 assertTrue(preferTag2.equals(preferTag1)); 043 assertFalse(preferTag1.equals(preferTag3)); 044 assertFalse(preferTag1.equals(null)); 045 assertFalse(preferTag1.equals("some string")); 046 } 047 048 @Test 049 public void testHashCode() { 050 doTestHashCode(new PreferTag("handling=lenient; received=\"minimal\""), 051 new PreferTag("handling=lenient; received=\"minimal\""), 052 true); 053 054 doTestHashCode(new PreferTag("handling=lenient; received=\"minimal\""), 055 new PreferTag("return=representation; include=\"" + PREFER_MINIMAL_CONTAINER + "\""), 056 false); 057 058 doTestHashCode(new PreferTag("handling=lenient; received=\"minimal\""), 059 PreferTag.emptyTag(), 060 false); 061 } 062 063 private static void doTestHashCode(final PreferTag tag0, final PreferTag tag1, final boolean expectEqual) { 064 assertEquals(expectEqual, tag0.equals(tag1)); 065 assertEquals(expectEqual, tag0.hashCode() == tag1.hashCode()); 066 } 067 068}