package gov.loc.repository.bagit.domain; import org.junit.Assert; import org.junit.Test; public class VersionTest extends Assert { @Test public void testToString(){ Version v = new Version(0, 0); String expectedString = "0.0"; assertEquals(expectedString, v.toString()); } @Test public void testHashCodeReturnsSameValueForEqualObjects(){ Version v1 = new Version(0, 0); Version v2 = new Version(0, 0); assertEquals(v1.hashCode(), v2.hashCode()); } @Test public void testHashCodeReturnsDifferentValueForDifferentObjects(){ Version v1 = new Version(0, 0); Version v2 = new Version(0, 1); assertNotEquals(v1.hashCode(), v2.hashCode()); } @Test public void testCompareToWithOnlyMinorVersions(){ Version smallest = new Version(0, 0); Version middle = new Version(0, 1); Version largest = new Version(0, 2); assertEquals(0, smallest.compareTo(smallest)); assertEquals(-1, smallest.compareTo(middle)); assertEquals(-1, smallest.compareTo(largest)); assertEquals(1, middle.compareTo(smallest)); assertEquals(0, middle.compareTo(middle)); assertEquals(-1, middle.compareTo(largest)); assertEquals(1, largest.compareTo(smallest)); assertEquals(1, largest.compareTo(middle)); assertEquals(0, largest.compareTo(largest)); } @Test public void testCompareToWithOnlyMajorVersions(){ Version smallest = new Version(0, 0); Version middle = new Version(1, 0); Version largest = new Version(2, 0); assertEquals(0, smallest.compareTo(smallest)); assertEquals(-1, smallest.compareTo(middle)); assertEquals(-1, smallest.compareTo(largest)); assertEquals(1, middle.compareTo(smallest)); assertEquals(0, middle.compareTo(middle)); assertEquals(-1, middle.compareTo(largest)); assertEquals(1, largest.compareTo(smallest)); assertEquals(1, largest.compareTo(middle)); assertEquals(0, largest.compareTo(largest)); } @Test public void testEqualsReturnsTrueWhenSameObject(){ Version v = new Version(0, 0); assertTrue(v.equals(v)); } @Test public void testEqualsReturnsFalseWhenNull(){ Version v = new Version(0, 0); assertFalse(v.equals(null)); } @Test public void testEqualsReturnsFalseWhenNotAVersion(){ Version v = new Version(0, 0); assertFalse(v.equals("foo")); } @Test public void testEqualsReturnsTrueWhenSameValues(){ Version v1 = new Version(0, 0); Version v2 = new Version(0, 0); assertTrue(v1.equals(v2)); } @Test public void testIsNewer(){ Version older = new Version(0, 0); Version newer = new Version(0, 1); assertTrue(newer.isNewer(older)); older = new Version(1, 0); newer = new Version(1, 1); assertTrue(newer.isNewer(older)); } @Test public void testIsSameOrNewer(){ Version same1 = new Version(0, 0); Version same2 = new Version(0, 0); assertTrue(same1.isSameOrNewer(same2)); } @Test public void testIsOlder(){ Version older = new Version(0, 0); Version newer = new Version(0, 1); assertTrue(older.isOlder(newer)); older = new Version(1, 0); newer = new Version(1, 1); assertTrue(older.isOlder(newer)); } @Test public void testIsSameOrOlder(){ Version same1 = new Version(0, 0); Version same2 = new Version(0, 0); assertTrue(same1.isSameOrOlder(same2)); } }