1 package be
.nikiroo
.utils
.test
;
3 import be
.nikiroo
.utils
.Version
;
5 class VersionTest
extends TestLauncher
{
6 public VersionTest(String
[] args
) {
7 super("Version test", args
);
9 addTest(new TestCase("String <-> int") {
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());
15 "Cannot parse major version \"1.2.3\" from String to int",
16 1, new Version("1.2.3").getMajor());
18 "Cannot parse minor version \"1.2.3\" from String to int",
19 2, new Version("1.2.3").getMinor());
21 "Cannot parse patch version \"1.2.3\" from String to int",
22 3, new Version("1.2.3").getPatch());
26 addTest(new TestCase("Bad input") {
28 public void test() throws Exception
{
30 "Bad input should return an empty version",
33 "Doors 98 SE Special Deluxe Edition Pro++ Not-Home")
37 "Bad input should return [unknown]",
40 "Doors 98 SE Special Deluxe Edition Pro++ Not-Home")
45 addTest(new TestCase("Read current version") {
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());
55 addTest(new TestCase("Tag version") {
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());
71 // tag with no tag version
72 version
= new Version("1.0.0-dev");
73 assertEquals(1, version
.getMajor());
74 assertEquals(0, version
.getMinor());
75 assertEquals(0, version
.getPatch());
76 assertEquals("dev", version
.getTag());
77 assertEquals(-1, version
.getTagVersion());
81 addTest(new TestCase("Comparing versions") {
83 public void test() throws Exception
{
85 new Version(1, 1, 1).isNewerThan(new Version(1, 1, 0)));
87 new Version(2, 0, 0).isNewerThan(new Version(1, 1, 1)));
89 new Version(10, 7, 8).isNewerThan(new Version(9, 9, 9)));
91 new Version(0, 0, 0).isOlderThan(new Version(0, 0, 1)));
93 new Version(1, 1, 1).compareTo(new Version(0, 1, 1)));
95 new Version(0, 0, 1).compareTo(new Version(0, 1, 1)));
97 new Version(0, 0, 1).compareTo(new Version(0, 0, 1)));
99 new Version(0, 0, 1).equals(new Version(0, 0, 1)));
101 new Version(0, 2, 1).equals(new Version(0, 0, 1)));
104 new Version(1, 0, 1, "my.tag.", 2).equals(new Version(
105 1, 0, 1, "my.tag.", 2)));
107 new Version(1, 0, 1, "my.tag.", 2).equals(new Version(
108 1, 0, 0, "my.tag.", 2)));
110 new Version(1, 0, 1, "my.tag.", 2).equals(new Version(
111 1, 0, 1, "not-my.tag.", 2)));
115 addTest(new TestCase("toString") {
117 public void test() throws Exception
{
119 Version version
= new Version("01.002.4");
120 assertEquals("Leading 0s not working", "1.2.4",
124 version
= new Version("1 . 2.4 ");
125 assertEquals("Additional spaces not working", "1.2.4",
128 String
[] tests
= new String
[] { "1.0.0", "1.2.3", "1.0.0-dev",
130 for (String test
: tests
) {
131 version
= new Version(test
);
132 assertEquals("toString and back conversion failed", test
,