1
2 package com.simpligility.maven.plugins.android.configuration;
3
4 import static org.junit.Assert.assertEquals;
5 import static org.junit.Assert.assertTrue;
6
7 import org.apache.maven.plugin.MojoExecutionException;
8 import org.junit.Test;
9
10 import com.simpligility.maven.plugins.android.configuration.VersionGenerator;
11
12 import static org.junit.Assert.*;
13
14
15
16
17 public class VersionGeneratorTest
18 {
19
20 @Test
21 public void generate() throws MojoExecutionException
22 {
23 assertEquals( 2147483647, new VersionGenerator( "1,2,3,4" ).generate( "2.14.748.3647" ) );
24 assertEquals( 2147483647, new VersionGenerator( "4,3,2,1" ).generate( "2147.483.64.7" ) );
25
26
27 assertEquals( 2147483647, new VersionGenerator( "1,1,1,1,1,1,1,1,1,1" ).generate( "2.1.4.7.4.8.3.6.4.7" ) );
28 }
29
30 @Test
31 public void generateRegex() throws MojoExecutionException
32 {
33 assertEquals( 2147483647, new VersionGenerator( "1,2,3,4", "^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)$" ).generate( "2.14.748.3647" ) );
34 assertEquals( 2147483647, new VersionGenerator( "4,3,2,1", "^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)$" ).generate( "2147.483.64.7" ) );
35 }
36
37 @Test
38 public void compare() throws MojoExecutionException {
39 VersionGenerator gen = new VersionGenerator( "3,3,3" );
40
41 assertTrue( gen.generate( "1.0" ) < gen.generate( "1.0.1" ) );
42 assertTrue( gen.generate( "2.0" ) > gen.generate( "1.0.1" ) );
43 }
44
45 @Test
46 public void realCase() throws MojoExecutionException
47 {
48 VersionGenerator gen = new VersionGenerator( "1,1,2,1,4" );
49
50 int v1 = gen.generate( "4.1.16.8-SNAPSHOT.1946" );
51 int v2 = gen.generate( "4.1.17.8-SNAPSHOT.1246" );
52
53 assertEquals(411681946, v1 );
54 assertEquals(411781246, v2 );
55
56 assertTrue( v1 < v2 );
57
58 }
59
60 @Test
61 public void realCaseRegex() throws MojoExecutionException
62 {
63 {
64 VersionGenerator gen = new VersionGenerator( "1,1,2,1,4", "^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)(?:-[A-Z]+\\.(\\d+))?$" );
65
66 int v1 = gen.generate( "4.1.16.8-SNAPSHOT.1946" );
67 int v2 = gen.generate( "4.1.17.8" );
68
69 assertEquals( 411681946, v1 );
70 assertEquals( 411780000, v2 );
71
72 assertTrue( v1 < v2 );
73 }
74
75 {
76 VersionGenerator gen = new VersionGenerator( "4,3,3", "^(\\d+)\\.(\\d+)(?:-(\\d+)-g[0-9a-f]+(?:-dirty)?)?$" );
77
78 int v1 = gen.generate( "0.0-38-g493f883" );
79 int v2 = gen.generate( "0.1" );
80
81 assertEquals( 38, v1 );
82 assertEquals( 1000, v2 );
83
84 assertTrue( v1 < v2 );
85 }
86
87 {
88 VersionGenerator gen = new VersionGenerator( "3,2,2,3", "^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)" );
89
90 int v1 = gen.generate( "6.1.0.66-r1062275" );
91 int v2 = gen.generate( "6.2.0.0-r1234567" );
92
93 assertEquals( 60100066, v1 );
94 assertEquals( 60200000, v2 );
95
96 assertTrue( v1 < v2 );
97 }
98 }
99
100 @Test
101 public void mixedCase() throws MojoExecutionException
102 {
103 VersionGenerator g1 = new VersionGenerator( "1,1,2,1,4" );
104 VersionGenerator g2 = new VersionGenerator( "1,1,2,5" );
105
106 int v1 = g1.generate( "1.2.15.8-SNAPSHOT.1946" );
107 int v2 = g2.generate( "2.1.6-SNAPSHOT.1246" );
108
109 assertEquals(121581946, v1 );
110 assertEquals(210601246, v2 );
111
112 assertTrue( v1 < v2 );
113
114 }
115
116 @Test
117 public void faulty() throws MojoExecutionException
118 {
119 try
120 {
121 new VersionGenerator( "4,4,4" );
122 fail( "Expecting IllegalArgumentException" );
123 }
124 catch ( IllegalArgumentException e )
125 {
126 System.err.println( "OK: " + e );
127 }
128 try
129 {
130 new VersionGenerator( "4,3,3" ).generate( "2200.999.999" );
131 fail( "Expecting MojoExecutionException" );
132 }
133 catch ( MojoExecutionException e )
134 {
135 System.err.println( "OK: " + e );
136 }
137
138 try
139 {
140 new VersionGenerator( "4,3,3" ).generate( "2200.999.999" );
141 fail( "Expecting MojoExecutionException" );
142 }
143 catch ( MojoExecutionException e )
144 {
145 System.err.println( "OK: " + e );
146 }
147
148 try
149 {
150 new VersionGenerator( "4,3,3" ).generate( "1.1000.999" );
151 fail( "Expecting MojoExecutionException" );
152 }
153 catch ( MojoExecutionException e )
154 {
155 System.err.println( "OK: " + e );
156 }
157 }
158 }