package gov.loc.repository.bagit.domain;
import org.junit.Assert;
import org.junit.Test;
import gov.loc.repository.bagit.hash.StandardSupportedAlgorithms;
public class ManifestTest extends Assert {
@Test
public void testToString(){
String expected = "Manifest [algorithm=MD5, fileToChecksumMap={}]";
assertEquals(expected, new Manifest(StandardSupportedAlgorithms.MD5).toString());
}
@Test
public void testHashCodeReturnsSameValueForEqualObjects(){
Manifest m1 = new Manifest(StandardSupportedAlgorithms.MD5);
Manifest m2 = new Manifest(StandardSupportedAlgorithms.MD5);
assertEquals(m1.hashCode(), m2.hashCode());
}
@Test
public void testHashCodeReturnsDifferentValueForDifferentObjects(){
Manifest m1 = new Manifest(StandardSupportedAlgorithms.MD5);
Manifest m2 = new Manifest(StandardSupportedAlgorithms.SHA1);
assertNotEquals(m1.hashCode(), m2.hashCode());
}
@Test
public void testEqualsReturnsTrueWhenSameObject(){
Manifest m1 = new Manifest(StandardSupportedAlgorithms.MD5);
assertTrue(m1.equals(m1));
}
@Test
public void testEqualsReturnsFalseWhenNull(){
Manifest m1 = new Manifest(StandardSupportedAlgorithms.MD5);
assertFalse(m1.equals(null));
}
@Test
public void testEqualsReturnsFalseWhenDifferentType(){
Manifest m1 = new Manifest(StandardSupportedAlgorithms.MD5);
assertFalse(m1.equals("Foo"));
}
@Test
public void testEqualsReturnsTrueWhenSameValues(){
Manifest m1 = new Manifest(StandardSupportedAlgorithms.MD5);
Manifest m2 = new Manifest(StandardSupportedAlgorithms.MD5);
assertTrue(m1.equals(m2));
}
@Test
public void testEqualsReturnsFalseWhenDifferentValues(){
Manifest m1 = new Manifest(StandardSupportedAlgorithms.MD5);
Manifest m2 = new Manifest(StandardSupportedAlgorithms.SHA1);
assertFalse(m1.equals(m2));
}
}