package gov.loc.repository.bagit.domain; import java.net.MalformedURLException; import java.net.URL; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.AbstractMap.SimpleImmutableEntry; import org.junit.Assert; import org.junit.Test; import gov.loc.repository.bagit.hash.StandardSupportedAlgorithms; public class BagTest extends Assert { @Test public void testToString() throws MalformedURLException{ String expectedToString = "Bag [version=-1.-1, fileEncoding=UTF-8, payLoadManifests=[Manifest [algorithm=MD5, fileToChecksumMap={}] ], tagManifests=[Manifest [algorithm=MD5, fileToChecksumMap={}] ], itemsToFetch=[http://www.wiki.com - foo], metadata=[]]"; Bag bag = new Bag(); bag.getPayLoadManifests().add(new Manifest(StandardSupportedAlgorithms.MD5)); bag.getTagManifests().add(new Manifest(StandardSupportedAlgorithms.MD5)); bag.getItemsToFetch().add(new FetchItem(new URL("http://www.wiki.com"), -1l, Paths.get("foo"))); assertEquals(expectedToString, bag.toString()); } @Test public void testHashCodeAreSameForNewBags(){ Bag bag1 = new Bag(); Bag bag2 = new Bag(); assertEquals(bag1.hashCode(), bag2.hashCode()); } @Test public void testEqualsShouldReturnTrueWhenBothAreNew(){ Bag bag1 = new Bag(); Bag bag2 = new Bag(); assertTrue(bag1.equals(bag2)); } @Test public void testEqualsShouldReturnTrueWhenUsingConstructor(){ Bag bag1 = new Bag(); bag1.setVersion(new Version(99, 99)); Bag bag2 = new Bag(bag1); assertTrue(bag1.equals(bag2)); } @Test public void testEqualsShouldReturnTrueWhenSameObject(){ Bag bag1 = new Bag(); assertTrue(bag1.equals(bag1)); } @Test public void testEqualsShouldReturnFalseWhenNull(){ Bag bag1 = new Bag(); assertFalse(bag1.equals(null)); } @Test public void testEqualsShouldReturnFalseWhenNotABag(){ Bag bag1 = new Bag(); assertFalse(bag1.equals("foo")); } @Test public void foo(){ List<SimpleImmutableEntry<String, String>> list = new ArrayList<>(); list.add(new SimpleImmutableEntry<>("foo", "bar")); list.add(new SimpleImmutableEntry<>("bar", "ham")); list.add(new SimpleImmutableEntry<>("ham", "hungry")); SimpleImmutableEntry<String, String> entryToRemove = null; for(final SimpleImmutableEntry<String, String> entry : list){ if(!"ham".equals(entry.getKey())){ entryToRemove = entry; continue; } } if(entryToRemove != null){ list.remove(entryToRemove); } System.err.println(list); } }