package com.temenos.interaction.core.hypermedia; /* * #%L * interaction-core * %% * Copyright (C) 2012 - 2013 Temenos Holdings N.V. * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% */ import org.junit.Assert; import org.junit.Test; public class LinkHeaderTest { @Test public void testTopic() throws Exception { LinkHeaderDelegate delegate = new LinkHeaderDelegate(); LinkHeader header = delegate.fromString("<http://localhost:8081/linkheader/topic/sender>; rel=\"sender\"; title=\"sender\", <http://localhost:8081/linkheader/topic/poller>; rel=\"top-message\"; title=\"top-message\""); Link sender = header.getLinkByTitle("sender"); Assert.assertNotNull(sender); Assert.assertEquals("http://localhost:8081/linkheader/topic/sender", sender.getHref()); Assert.assertEquals("sender", sender.getRel()); Link top = header.getLinkByTitle("top-message"); Assert.assertNotNull(top); Assert.assertEquals("http://localhost:8081/linkheader/topic/poller", top.getHref()); Assert.assertEquals("top-message", top.getRel()); } @Test public void testTopic2() throws Exception { LinkHeaderDelegate delegate = new LinkHeaderDelegate(); LinkHeader header = delegate.fromString("<http://localhost:8081/topics/test/poller/next?index=0>; rel=\"next-message\"; title=\"next-message\",<http://localhost:8081/topics/test/poller>; rel=\"generator\"; title=\"generator\""); Link next = header.getLinkByTitle("next-message"); Assert.assertNotNull(next); Assert.assertEquals("http://localhost:8081/topics/test/poller/next?index=0", next.getHref()); Assert.assertEquals("next-message", next.getRel()); Link generator = header.getLinkByTitle("generator"); Assert.assertNotNull(generator); Assert.assertEquals("http://localhost:8081/topics/test/poller", generator.getHref()); Assert.assertEquals("generator", generator.getRel()); } @Test public void testLinkheader() throws Exception { LinkHeaderDelegate delegate = new LinkHeaderDelegate(); LinkHeader header = delegate.fromString("<http://example.com/TheBook/chapter2>; rel=\"previous\";\n" + " title=\"previous chapter\""); Assert.assertTrue(header.getLinksByTitle().containsKey("previous chapter")); Assert.assertTrue(header.getLinksByRelationship().containsKey("previous")); Assert.assertEquals(header.getLinksByTitle().get("previous chapter").getHref(), "http://example.com/TheBook/chapter2"); System.out.println(delegate.toString(header)); String str = delegate.toString(header); header = delegate.fromString(str); Assert.assertTrue(header.getLinksByTitle().containsKey("previous chapter")); Assert.assertTrue(header.getLinksByRelationship().containsKey("previous")); Assert.assertEquals(header.getLinksByTitle().get("previous chapter").getHref(), "http://example.com/TheBook/chapter2"); } @Test public void testLinkheader2() throws Exception { LinkHeaderDelegate delegate = new LinkHeaderDelegate(); LinkHeader header = delegate.fromString("<http://example.org/>; rel=index;\n" + " rel=\"start http://example.net/relation/other\""); Assert.assertTrue(header.getLinksByRelationship().containsKey("index")); Assert.assertTrue(header.getLinksByRelationship().containsKey("start")); Assert.assertTrue(header.getLinksByRelationship().containsKey("http://example.net/relation/other")); System.out.println(delegate.toString(header)); String str = delegate.toString(header); header = delegate.fromString(str); Assert.assertTrue(header.getLinksByRelationship().containsKey("index")); Assert.assertTrue(header.getLinksByRelationship().containsKey("start")); Assert.assertTrue(header.getLinksByRelationship().containsKey("http://example.net/relation/other")); } @Test public void testLinkheader3() throws Exception { LinkHeaderDelegate delegate = new LinkHeaderDelegate(); LinkHeader header = delegate.fromString("<http://example.org/>; rel=\"index\"; type=\"text/html\""); Assert.assertTrue(header.getLinksByType().containsKey("text/html")); System.out.println(delegate.toString(header)); String str = delegate.toString(header); header = delegate.fromString(str); Assert.assertTrue(header.getLinksByType().containsKey("text/html")); } @Test public void testAdd() { final LinkHeader linkHeader = new LinkHeader(); Assert.assertEquals(linkHeader.getLinks().size(), 0); linkHeader.addLink(new Link("one", "resl-1", "href-1", null, null)); Assert.assertEquals(linkHeader.getLinks().size(), 1); linkHeader.addLink(new Link("two", "resl-2", "href-2", null, null)); Assert.assertEquals(linkHeader.getLinks().size(), 2); } }