View Javadoc
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   * @author Pappy STĂNESCU - pappy.stanescu@gmail.com
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          // that's weird versioning scheme :)
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 }