/** * Copyright Intellectual Reserve, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.gedcomx.rs.client.util; import org.gedcomx.atom.Feed; import org.gedcomx.common.URI; import org.testng.annotations.Test; import static org.testng.Assert.*; public class PagedFeedIteratorTest { private static final String baseUri = "http://www.example.com/feed"; @Test public void testFromUriConstructor() { URI expected = URI.create(baseUri); PagedFeedIterator pagedFeedIterator = PagedFeedIterator.fromUri(expected); URI actual = pagedFeedIterator.nextHRef(); assertEquals(actual, expected); assertNull(pagedFeedIterator.firstHRef()); assertNull(pagedFeedIterator.lastHRef()); assertNull(pagedFeedIterator.previousHRef()); assertTrue(pagedFeedIterator.hasNext()); assertFalse(pagedFeedIterator.hasFirst()); assertFalse(pagedFeedIterator.hasLast()); assertFalse(pagedFeedIterator.hasPrevious()); } @Test public void testFromFeedConstructor() { URI expected = URI.create(baseUri + "/next"); Feed feed = new Feed(); feed.addLink("next", expected); PagedFeedIterator pagedFeedIterator = PagedFeedIterator.fromFeed(feed); URI actual = pagedFeedIterator.nextHRef(); assertEquals(actual, expected); assertNull(pagedFeedIterator.firstHRef()); assertNull(pagedFeedIterator.lastHRef()); assertNull(pagedFeedIterator.previousHRef()); assertTrue(pagedFeedIterator.hasNext()); assertFalse(pagedFeedIterator.hasFirst()); assertFalse(pagedFeedIterator.hasLast()); assertFalse(pagedFeedIterator.hasPrevious()); } @Test public void testFromFeedConstructor2() { URI[] expected = new URI[]{ URI.create(baseUri + "/first"), URI.create(baseUri + "/last"), URI.create(baseUri + "/previous"), URI.create(baseUri + "/next") }; Feed feed = new Feed(); for (URI uri : expected) { String rel = uri.toString().substring(baseUri.length() + 1); //System.out.println(rel); feed.addLink(rel, uri); } PagedFeedIterator pagedFeedIterator = PagedFeedIterator.fromFeed(feed); URI[] actual = new URI[]{ pagedFeedIterator.firstHRef(), pagedFeedIterator.lastHRef(), pagedFeedIterator.previousHRef(), pagedFeedIterator.nextHRef(), }; assertEquals(actual, expected); assertTrue(pagedFeedIterator.hasNext()); assertTrue(pagedFeedIterator.hasFirst()); assertTrue(pagedFeedIterator.hasLast()); assertTrue(pagedFeedIterator.hasPrevious()); } }