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.client; 019 020import static org.junit.Assert.assertEquals; 021 022import java.net.URI; 023 024import org.junit.Test; 025import org.junit.runner.RunWith; 026import org.mockito.runners.MockitoJUnitRunner; 027 028/** 029 * @author acoburn 030 */ 031@RunWith(MockitoJUnitRunner.class) 032public class FcrepoLinkTest { 033 034 @Test 035 public void testLink() { 036 final String url = "http://localhost/rest/a/b/c"; 037 final String rel = "describedby"; 038 final String header = String.format("<%s>; rel=\"%s\"", url, rel); 039 final FcrepoLink link = new FcrepoLink(header); 040 assertEquals(URI.create(url), link.getUri()); 041 assertEquals(url, link.getUri().toString()); 042 assertEquals(rel, link.getRel()); 043 } 044 045 @Test 046 public void testLinkNoQuotes() { 047 final String url = "http://localhost/rest/a/b/c"; 048 final String rel = "describedby"; 049 final String header = String.format("<%s>; rel=%s", url, rel); 050 final FcrepoLink link = new FcrepoLink(header); 051 assertEquals(URI.create(url), link.getUri()); 052 assertEquals(url, link.getUri().toString()); 053 assertEquals(rel, link.getRel()); 054 } 055 056 @Test 057 public void testLinkNoBrackets() { 058 final String url = "http://localhost/rest/a/b/c"; 059 final String rel = "describedby"; 060 final String header = String.format("%s; rel=%s", url, rel); 061 final FcrepoLink link = new FcrepoLink(header); 062 assertEquals(null, link.getUri()); 063 assertEquals(null, link.getRel()); 064 } 065 066 @Test 067 public void testLinkBadBrackets1() { 068 final String url = "http://localhost/rest/a/b/c"; 069 final String rel = "describedby"; 070 final String header = String.format("<%s; rel=%s", url, rel); 071 final FcrepoLink link = new FcrepoLink(header); 072 assertEquals(null, link.getUri()); 073 assertEquals(null, link.getRel()); 074 } 075 076 @Test 077 public void testLinkBadBrackets2() { 078 final String url = "http://localhost/rest/a/b/c"; 079 final String rel = "describedby"; 080 final String header = String.format("%s>; rel=%s", url, rel); 081 final FcrepoLink link = new FcrepoLink(header); 082 assertEquals(null, link.getUri()); 083 assertEquals(null, link.getRel()); 084 } 085 086 @Test 087 public void testLinkBadQuotes() { 088 final String url = "http://localhost/rest/a/b/c"; 089 final String rel = "describedby"; 090 final String header = String.format("<%s>; rel=\"%s", url, rel); 091 final FcrepoLink link = new FcrepoLink(header); 092 assertEquals(URI.create(url), link.getUri()); 093 assertEquals("\"" + rel, link.getRel()); 094 } 095 096 097 @Test 098 public void testNullLink() { 099 final FcrepoLink link = new FcrepoLink(null); 100 assertEquals(null, link.getUri()); 101 assertEquals(null, link.getRel()); 102 } 103 104 @Test 105 public void testMultipleSegments() { 106 final FcrepoLink link = new FcrepoLink("<a>; rel=foo; bar=bar"); 107 assertEquals(URI.create("a"), link.getUri()); 108 assertEquals("foo", link.getRel()); 109 } 110 111 @Test 112 public void testMultipleMeta() { 113 final FcrepoLink link = new FcrepoLink("<a>; rel=foo=bar"); 114 assertEquals(URI.create("a"), link.getUri()); 115 assertEquals(null, link.getRel()); 116 } 117 118 @Test 119 public void testNotMetaRel() { 120 final FcrepoLink link = new FcrepoLink("<a>; foo=bar"); 121 assertEquals(URI.create("a"), link.getUri()); 122 assertEquals(null, link.getRel()); 123 } 124}