1 package com.atlassian.plugins.rest.module;
2
3 import org.junit.Test;
4
5 import static org.hamcrest.Matchers.is;
6 import static org.junit.Assert.*;
7
8 public class ApiVersionTest {
9 @Test
10 public void testUnparsableVersion() {
11 testInvalidVersion(null);
12 testInvalidVersion("");
13 testInvalidVersion("a");
14 testInvalidVersion("a.a");
15 testInvalidVersion("1.1.alpha&");
16 }
17
18 private void testInvalidVersion(String version) {
19 try {
20 new ApiVersion(version);
21 fail(version + " should not be a valid version");
22 } catch (InvalidVersionException e) {
23 assertEquals(version, e.getInvalidVersion());
24 }
25 }
26
27 @Test
28 public void testCanParseVersionWithMajorOnly() {
29 final ApiVersion version = new ApiVersion("2");
30 assertEquals(new Integer(2), version.getMajor());
31 assertNull(version.getMinor());
32 assertNull(version.getMicro());
33 assertNull(version.getClassifier());
34 assertEquals("2", version.toString());
35 }
36
37 @Test
38 public void testCanParseVersionWithMajorAndMinorOnly() {
39 final ApiVersion version = new ApiVersion("2.3");
40 assertEquals(new Integer(2), version.getMajor());
41 assertEquals(new Integer(3), version.getMinor());
42 assertNull(version.getMicro());
43 assertNull(version.getClassifier());
44 assertEquals("2.3", version.toString());
45 }
46
47 @Test
48 public void testCanParseVersionWithMajorAndMinorAndMicro() {
49 final ApiVersion version = new ApiVersion("2.3.4");
50 assertEquals(new Integer(2), version.getMajor());
51 assertEquals(new Integer(3), version.getMinor());
52 assertEquals(new Integer(4), version.getMicro());
53 assertNull(version.getClassifier());
54 assertEquals("2.3.4", version.toString());
55 }
56
57 @Test
58 public void testCanParseVersionWithMajorAndMinorAndMicroAndClassifier() {
59 final String versionString = "2.3.4.alpha1";
60 final ApiVersion version = new ApiVersion(versionString);
61 assertEquals(new Integer(2), version.getMajor());
62 assertEquals(new Integer(3), version.getMinor());
63 assertEquals(new Integer(4), version.getMicro());
64 assertEquals("alpha1", version.getClassifier());
65 assertEquals(versionString, version.toString());
66 }
67
68 @Test
69 public void testNoneVersionIsParsed() {
70 assertThat(new ApiVersion(ApiVersion.NONE_STRING).isNone(), is(true));
71 }
72
73 @Test
74 public void testThatDottedVersionCompareToItselfReturnsZero() {
75 assertThat(new ApiVersion("1.2.3").compareTo(new ApiVersion("1.2.3")), is(0));
76 }
77
78 @Test
79 public void testThatDottedVersionCompareToLesserVersionReturnsOne() {
80 assertThat(new ApiVersion("1.2").compareTo(new ApiVersion("1.1")), is(1));
81 }
82
83 @Test
84 public void testThatDottedVersionCompareToGreaterVersionReturnsNegativeOne() {
85 assertThat(new ApiVersion("1.1").compareTo(new ApiVersion("1.2")), is(-1));
86 }
87
88 @Test
89 public void testThatIntegerVersionCompareToItselfReturnsZero() {
90 assertThat(new ApiVersion("1").compareTo(new ApiVersion("1")), is(0));
91 }
92
93 @Test
94 public void testThatIntegerVersionCompareToLesserVersionReturnsOne() {
95 assertThat(new ApiVersion("2").compareTo(new ApiVersion("1")), is(1));
96 }
97
98 @Test
99 public void testThatIntegerVersionCompareToGreaterVersionReturnsNegativeOne() {
100 assertThat(new ApiVersion("1").compareTo(new ApiVersion("2")), is(-1));
101 }
102
103 @Test
104 public void testThatNoneVersionCompareToItselfReturnsZero() {
105 assertThat(new ApiVersion(ApiVersion.NONE_STRING).compareTo(new ApiVersion(ApiVersion.NONE_STRING)), is(0));
106 }
107 }