package gov.loc.repository.bagit.domain;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.Paths;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class FetchItemTest extends Assert {
private URL url;
@Before
public void setup() throws MalformedURLException{
url = new URL("https://github.com/LibraryOfCongress/bagit-java");
}
@Test
public void testToString(){
FetchItem item = new FetchItem(url, 1l, Paths.get("/foo"));
String expected = "https://github.com/LibraryOfCongress/bagit-java 1 " + File.separator + "foo";
assertEquals("expected [" + expected + "] but got [" + item.toString() + "]", expected, item.toString());
}
@Test
public void testHashCodeReturnsSameValueForEqualObjects(){
FetchItem item1 = new FetchItem(url, 1l, Paths.get("/foo"));
FetchItem item2 = new FetchItem(url, 1l, Paths.get("/foo"));
assertEquals(item1.hashCode(), item2.hashCode());
}
@Test
public void testHashCodeReturnsDifferentValueForDifferentObjects(){
FetchItem item1 = new FetchItem(url, 1l, Paths.get("/foo"));
FetchItem item2 = new FetchItem(url, 1l, Paths.get("/bar"));
assertNotEquals(item1.hashCode(), item2.hashCode());
}
@Test
public void testEqualsReturnsTrueWhenSameObject(){
FetchItem item = new FetchItem(url, 1l, Paths.get("/foo"));
assertTrue(item.equals(item));
}
@Test
public void testEqualsReturnsFalseWhenNull(){
FetchItem item = new FetchItem(url, 1l, Paths.get("/foo"));
assertFalse(item.equals(null));
}
@Test
public void testEqualsReturnsFalseWhenDifferentTypes(){
FetchItem item = new FetchItem(url, 1l, Paths.get("/foo"));
assertFalse(item.equals("foo"));
}
@Test
public void testEqualsReturnsTrueWhenSameValues(){
FetchItem item1 = new FetchItem(url, 1l, Paths.get("/foo"));
FetchItem item2 = new FetchItem(url, 1l, Paths.get("/foo"));
assertTrue(item1.equals(item2));
}
@Test
public void testEqualsReturnsFalseWhenDifferentValues(){
FetchItem item1 = new FetchItem(url, 1l, Paths.get("/foo"));
FetchItem item2 = new FetchItem(url, 1l, Paths.get("/bar"));
assertFalse(item1.equals(item2));
}
}