Skip to content

Commit

Permalink
Add more ContextList tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ksclarke committed Sep 3, 2024
1 parent 8113bd4 commit f9bbebb
Show file tree
Hide file tree
Showing 2 changed files with 151 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -118,16 +118,14 @@ public boolean addAll(final Collection<? extends URI> aUriCollection) {
* context list.
*
* @param aIndex An index position at which to add the URIs in the supplied collection
* @param aUriCollection A collection of URIs to add at the supplied index position
* @param aCollection A collection of URIs to add at the supplied index position
* @return If all the supplied URIs were successfully added
*/
@Override
public boolean addAll(final int aIndex, final Collection<? extends URI> aUriCollection) {
if (aUriCollection.contains(PRESENTATION_CONTEXT_URI)) {
aUriCollection.remove(PRESENTATION_CONTEXT_URI);
}

return super.addAll(aIndex, aUriCollection);
public boolean addAll(final int aIndex, final Collection<? extends URI> aCollection) {
final List<? extends URI> uris =
aCollection.stream().filter(uri -> !PRESENTATION_CONTEXT_URI.equals(uri)).toList();
return super.addAll(aIndex, uris);
}

/**
Expand Down Expand Up @@ -226,12 +224,7 @@ public boolean remove(final Object aObj) {
*/
@Override
public boolean removeAll(final Collection<?> aCollection) {
if (aCollection.contains(PRESENTATION_CONTEXT_URI)) {
final List<?> list = aCollection.stream().filter(uri -> !PRESENTATION_CONTEXT_URI.equals(uri)).toList();
return super.removeAll(list);
}

return super.removeAll(aCollection);
return super.removeAll(aCollection.stream().filter(uri -> !PRESENTATION_CONTEXT_URI.equals(uri)).toList());
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,12 @@
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
Expand All @@ -16,11 +21,19 @@

import org.junit.Test;

import info.freelibrary.util.Logger;
import info.freelibrary.util.LoggerFactory;

import info.freelibrary.iiif.presentation.v3.utils.MessageCodes;

/**
* Tests of {@link ContextList}.
*/
public class ContextListTest extends AbstractTest {

/** A test logger. */
private static final Logger LOGGER = LoggerFactory.getLogger(ContextListTest.class, MessageCodes.BUNDLE);

/** A list of test contexts. */
private final List<URI> myContexts = Arrays.asList(URI.create(getURL()), URI.create(getURL()), URI.create(getURL()),
URI.create(getURL()), URI.create(getURL()), URI.create(getURL()), URI.create(getURL()),
Expand All @@ -39,6 +52,32 @@ public final void testAddAllCollectionOfQextendsURI() {
assertEquals(12, contexts.size());
}

/**
* Test method for {@link ContextList#addAll(int, Collection)}.
*/
@Test
public final void testAddAllCollectionWithDefaultURI() {
final ContextList contexts = new ContextList();
final ContextList adds = new ContextList();

assertEquals(1, contexts.size());
contexts.addAll(0, adds);
assertEquals(1, contexts.size());
}

/**
* Test method for {@link ContextList#addAll(int, Collection)}.
*/
@Test
public final void testAddAllCollectionWithoutDefaultURI() {
final ContextList contexts = new ContextList();
final List<URI> list = new ArrayList<>(List.of(URI.create(getURL()), URI.create(getURL())));

assertEquals(1, contexts.size());
contexts.addAll(0, list);
assertEquals(3, contexts.size());
}

/**
* Test method for {@link ContextList#addAll(int, Collection)}.
*/
Expand All @@ -56,6 +95,30 @@ public final void testAddAllIntCollectionOfQextendsURI() {
assertEquals(newURI1, contexts.get(8));
}

/**
* Test method for {@link ContextList#add(URI)}.
*/
@Test
public final void testAddFalse() {
final ContextList contexts = new ContextList();

assertEquals(1, contexts.size());
assertFalse(contexts.add(ContextList.PRESENTATION_CONTEXT_URI));
}

/**
* Test method for {@link ContextList#addFirst(URI)}.
*/
@Test
public final void testAddFirstDefaultURI() {
final ContextList contexts = new ContextList();

assertEquals(1, contexts.size());
contexts.addFirst(ContextList.PRESENTATION_CONTEXT_URI);
assertEquals(1, contexts.size());
assertEquals(ContextList.PRESENTATION_CONTEXT_URI, contexts.get(0));
}

/**
* Test method for {@link ContextList#addFirst(URI)}.
*/
Expand All @@ -79,13 +142,50 @@ public final void testAddIntURI() {
final ContextList contexts = new ContextList();
final URI uri = URI.create(getURL());

assertEquals(1, contexts.size());
contexts.add(1, uri);
assertEquals(2, contexts.size());
assertEquals(uri, contexts.get(1));
assertEquals(ContextList.PRESENTATION_CONTEXT_URI, contexts.get(0));
}

/**
* Test method for {@link ContextList#add(int, URI)}.
*/
@Test
public final void testAddIntUriZeroIndex() {
final ContextList contexts = new ContextList();
final URI uri = URI.create(getURL());

assertEquals(1, contexts.size());
contexts.add(0, uri);
assertEquals(2, contexts.size());
assertEquals(uri, contexts.get(1));
assertEquals(ContextList.PRESENTATION_CONTEXT_URI, contexts.get(0));
}

/**
* Test method for {@link ContextList#addLast(URI)}.
*/
@Test
public final void testAddLastDefaultURI() throws IOException {
final ByteArrayOutputStream out = new ByteArrayOutputStream();
final PrintStream current = new PrintStream(out, true, StandardCharsets.UTF_8);
final PrintStream previous = System.out;
final ContextList contexts = new ContextList();

System.setOut(current);

assertEquals(1, contexts.size());
contexts.addLast(ContextList.PRESENTATION_CONTEXT_URI);
assertEquals(1, contexts.size());
assertEquals(ContextList.PRESENTATION_CONTEXT_URI, contexts.get(0));

System.setOut(previous);

assertTrue(out.toString().contains(LOGGER.getMessage(MessageCodes.JPA_149)));
}

/**
* Test method for {@link ContextList#addLast(URI)}.
*/
Expand All @@ -101,6 +201,19 @@ public final void testAddLastURI() {
assertEquals(ContextList.PRESENTATION_CONTEXT_URI, contexts.get(0));
}

/**
* Test method for {@link ContextList#add(int, URI)}.
*/
@Test
public final void testAddPresURI() {
final ContextList contexts = new ContextList();

assertEquals(1, contexts.size());
contexts.add(0, ContextList.PRESENTATION_CONTEXT_URI);
assertEquals(1, contexts.size());
assertEquals(ContextList.PRESENTATION_CONTEXT_URI, contexts.get(0));
}

/**
* Test method for {@link ContextList#add(URI)}.
*/
Expand Down Expand Up @@ -150,6 +263,14 @@ public final void testContextListListOfURI() {
assertEquals(ContextList.PRESENTATION_CONTEXT_URI, contexts.get(0));
}

/**
* Test method for {@link ContextList#equals(Object)}.
*/
@Test
public final void testEqualsNull() {
assertNotEquals(new ContextList(myContexts), null);
}

/**
* Test method for {@link ContextList#equals(Object)}.
*/
Expand All @@ -161,6 +282,14 @@ public final void testEqualsObject() {
assertEquals(contexts1, contexts2);
}

/**
* Test method for {@link ContextList#equals(Object)}.
*/
@Test
public final void testEqualsString() {
assertNotEquals(new ContextList(myContexts), "asdf");
}

/**
* Test method for {@link ContextList#hashCode()}.
*/
Expand Down Expand Up @@ -188,6 +317,14 @@ public final void testRemoveAllCollectionOfQ() {
assertEquals(9, contexts.size());
}

/**
* Test method for {@link ContextList#remove(Object)}.
*/
@Test
public final void testRemoveDefContextObject() {
new ContextList().remove(ContextList.PRESENTATION_CONTEXT_URI);
}

/**
* Test method for {@link ContextList#removeIf(Predicate)}.
*/
Expand Down Expand Up @@ -242,6 +379,14 @@ public final void testRemoveObject() {
assertFalse(contexts.contains(uri));
}

/**
* Test method for {@link ContextList#remove(int)}.
*/
@Test(expected = IndexOutOfBoundsException.class)
public final void testRemoveZeroIndex() {
new ContextList().remove(0);
}

/**
* Test method for {@link ContextList#replaceAll(UnaryOperator)}.
*/
Expand Down

0 comments on commit f9bbebb

Please sign in to comment.