File size: 2,159 Bytes
9438a57
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import org.junit.Test;
import static org.junit.Assert.*;

public class SemVerTest {
    @Test public void parseAndToString() {
        assertEquals("1.2.3", SemVer.parse("1.2.3").toString());
        assertEquals("1.0.0-rc.1", SemVer.parse(" 1.0.0-rc.1 ").toString());
    }
    @Test public void parseRejectsBadInput() {
        assertThrows(IllegalArgumentException.class, () -> SemVer.parse(""));
        assertThrows(IllegalArgumentException.class, () -> SemVer.parse(null));
        assertThrows(IllegalArgumentException.class, () -> SemVer.parse("1.2"));
        assertThrows(IllegalArgumentException.class, () -> SemVer.parse("1.2.3.4"));
        assertThrows(IllegalArgumentException.class, () -> SemVer.parse("1.x.3"));
    }
    @Test public void negativeRejected() {
        assertThrows(IllegalArgumentException.class, () -> new SemVer(1, -1, 0, null));
    }
    @Test public void bumps() {
        SemVer v = SemVer.parse("1.4.7-beta");
        assertEquals("2.0.0", v.bumpMajor().toString());
        assertEquals("1.5.0", v.bumpMinor().toString());
        assertEquals("1.4.8", v.bumpPatch().toString());
    }
    @Test public void numericOrdering() {
        assertTrue(SemVer.parse("1.10.0").compareTo(SemVer.parse("1.9.9")) > 0);
        assertTrue(SemVer.parse("2.0.0").compareTo(SemVer.parse("10.0.0")) < 0);
        assertTrue(SemVer.parse("1.0.1").compareTo(SemVer.parse("1.0.0")) > 0);
    }
    @Test public void preReleaseComesBeforeRelease() {
        assertTrue(SemVer.parse("1.0.0-rc.1").compareTo(SemVer.parse("1.0.0")) < 0);
        assertTrue(SemVer.parse("1.0.0").compareTo(SemVer.parse("1.0.0-alpha")) > 0);
        assertTrue(SemVer.parse("1.0.0-alpha").compareTo(SemVer.parse("1.0.0-beta")) < 0);
    }
    @Test public void equalityAndPreReleaseFlag() {
        assertEquals(SemVer.parse("1.2.3"), new SemVer(1, 2, 3, ""));
        assertNotEquals(SemVer.parse("1.2.3"), SemVer.parse("1.2.3-rc"));
        assertEquals(SemVer.parse("1.2.3").hashCode(), new SemVer(1, 2, 3, null).hashCode());
        assertTrue(SemVer.parse("1.0.0-rc").isPreRelease());
        assertFalse(SemVer.parse("1.0.0").isPreRelease());
    }
}