f6f71322f51cbb535cee0954112f964444f89cbd
[nikiroo-utils.git] / src / be / nikiroo / utils / test / VersionTest.java
1 package be.nikiroo.utils.test;
2
3 import be.nikiroo.utils.Version;
4
5 class VersionTest extends TestLauncher {
6 public VersionTest(String[] args) {
7 super("Version test", args);
8
9 addTest(new TestCase("String <-> int") {
10 @Override
11 public void test() throws Exception {
12 assertEquals("Cannot parse version 1.2.3 from int to String",
13 "1.2.3", new Version(1, 2, 3).toString());
14 assertEquals(
15 "Cannot parse major version \"1.2.3\" from String to int",
16 1, new Version("1.2.3").getMajor());
17 assertEquals(
18 "Cannot parse minor version \"1.2.3\" from String to int",
19 2, new Version("1.2.3").getMinor());
20 assertEquals(
21 "Cannot parse patch version \"1.2.3\" from String to int",
22 3, new Version("1.2.3").getPatch());
23 }
24 });
25
26 addTest(new TestCase("Bad input") {
27 @Override
28 public void test() throws Exception {
29 assertEquals(
30 "Bad input should return an empty version",
31 true,
32 new Version(
33 "Doors 98 SE Special Deluxe Edition Pro++ Not-Home")
34 .isEmpty());
35
36 assertEquals(
37 "Bad input should return [unknown]",
38 "[unknown]",
39 new Version(
40 "Doors 98 SE Special Deluxe Edition Pro++ Not-Home")
41 .toString());
42 }
43 });
44
45 addTest(new TestCase("Read current version") {
46 @Override
47 public void test() throws Exception {
48 assertNotNull("The version should not be NULL (in any case!)",
49 Version.getCurrentVersion());
50 assertEquals("The current version should not be empty", false,
51 Version.getCurrentVersion().isEmpty());
52 }
53 });
54
55 addTest(new TestCase("Tag version") {
56 @Override
57 public void test() throws Exception {
58 Version version = new Version("1.0.0-debian0");
59 assertEquals("debian", version.getTag());
60 assertEquals(0, version.getTagVersion());
61 version = new Version("1.0.0-debian.0");
62 assertEquals("debian.", version.getTag());
63 assertEquals(0, version.getTagVersion());
64 version = new Version("1.0.0-debian-0");
65 assertEquals("debian-", version.getTag());
66 assertEquals(0, version.getTagVersion());
67 version = new Version("1.0.0-debian-12");
68 assertEquals("debian-", version.getTag());
69 assertEquals(12, version.getTagVersion());
70 }
71 });
72
73 addTest(new TestCase("Comparing versions") {
74 @Override
75 public void test() throws Exception {
76 assertEquals(true,
77 new Version(1, 1, 1).isNewerThan(new Version(1, 1, 0)));
78 assertEquals(true,
79 new Version(2, 0, 0).isNewerThan(new Version(1, 1, 1)));
80 assertEquals(true,
81 new Version(10, 7, 8).isNewerThan(new Version(9, 9, 9)));
82 assertEquals(true,
83 new Version(0, 0, 0).isOlderThan(new Version(0, 0, 1)));
84 assertEquals(1,
85 new Version(1, 1, 1).compareTo(new Version(0, 1, 1)));
86 assertEquals(-1,
87 new Version(0, 0, 1).compareTo(new Version(0, 1, 1)));
88 assertEquals(0,
89 new Version(0, 0, 1).compareTo(new Version(0, 0, 1)));
90 assertEquals(true,
91 new Version(0, 0, 1).equals(new Version(0, 0, 1)));
92 assertEquals(false,
93 new Version(0, 2, 1).equals(new Version(0, 0, 1)));
94
95 assertEquals(true,
96 new Version(1, 0, 1, "my.tag.", 2).equals(new Version(
97 1, 0, 1, "my.tag.", 2)));
98 assertEquals(false,
99 new Version(1, 0, 1, "my.tag.", 2).equals(new Version(
100 1, 0, 0, "my.tag.", 2)));
101 assertEquals(false,
102 new Version(1, 0, 1, "my.tag.", 2).equals(new Version(
103 1, 0, 1, "not-my.tag.", 2)));
104 }
105 });
106 }
107 }