Replaced all tabs with spaces in java and pom.xml
[so.git] / mso-catalog-db / src / test / java / org / onap / so / db / catalog / MavenVersioningTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.db.catalog;
22
23
24 import static org.junit.Assert.*;
25 import java.util.Collections;
26 import java.util.LinkedList;
27 import java.util.List;
28 import org.junit.Test;
29 import org.onap.so.db.catalog.utils.MavenLikeVersioningComparator;
30 import org.onap.so.db.catalog.utils.MavenLikeVersioning;
31
32
33 public class MavenVersioningTest {
34
35     @Test
36     public final void testVersion() {
37         MavenLikeVersioning mavenVersioning = new MavenLikeVersioning();
38         assertFalse(mavenVersioning.isMoreRecentThan("0.0.0"));
39         assertFalse(mavenVersioning.isMoreRecentThan(null));
40         mavenVersioning.setVersion("0.0.1");
41
42         assertFalse(mavenVersioning.isMoreRecentThan(null));
43         assertTrue(mavenVersioning.isMoreRecentThan("0.0.0"));
44         assertTrue(mavenVersioning.isMoreRecentThan("0.0.0.1"));
45
46         assertFalse(mavenVersioning.isMoreRecentThan("0.0.2"));
47         assertFalse(mavenVersioning.isMoreRecentThan("0.0.1"));
48         assertFalse(mavenVersioning.isMoreRecentThan("00.00.01"));
49
50         assertFalse(mavenVersioning.isMoreRecentThan("0.1"));
51         assertFalse(mavenVersioning.isMoreRecentThan("1"));
52         assertFalse(mavenVersioning.isMoreRecentThan("0.1.0.2"));
53
54         assertFalse(mavenVersioning.isMoreRecentThan("0.1.1"));
55         assertFalse(mavenVersioning.isMoreRecentThan("2.1.1"));
56
57         mavenVersioning.setVersion("1.0.1");
58         assertTrue(mavenVersioning.isMoreRecentThan("0.0.0"));
59         assertTrue(mavenVersioning.isMoreRecentThan("0.5.2"));
60         assertTrue(mavenVersioning.isMoreRecentThan("1.0.0"));
61
62         assertFalse(mavenVersioning.isMoreRecentThan("2.1.1"));
63         assertFalse(mavenVersioning.isMoreRecentThan("02.001.0001"));
64         assertFalse(mavenVersioning.isMoreRecentThan("1.0.1"));
65         assertFalse(mavenVersioning.isMoreRecentThan("1.0.2"));
66         assertFalse(mavenVersioning.isMoreRecentThan("1.1.1"));
67         assertFalse(mavenVersioning.isMoreRecentThan("1.0.10"));
68
69
70         mavenVersioning.setVersion("100.0.1");
71         assertTrue(mavenVersioning.isMoreRecentThan("0.0.0"));
72         assertTrue(mavenVersioning.isMoreRecentThan("0.5.2"));
73         assertTrue(mavenVersioning.isMoreRecentThan("1.0.0"));
74
75         assertFalse(mavenVersioning.isMoreRecentThan("101.1.1"));
76         assertFalse(mavenVersioning.isMoreRecentThan("100.0.1"));
77         assertFalse(mavenVersioning.isMoreRecentThan("100.0.2"));
78         assertFalse(mavenVersioning.isMoreRecentThan("100.1.1"));
79
80         assertFalse(mavenVersioning.isMoreRecentThan("100.0.1.4"));
81     }
82
83     @Test
84     public final void testOneDigitVersion() {
85         MavenLikeVersioning oneDigit = new MavenLikeVersioning();
86         oneDigit.setVersion("1");
87         assertFalse(oneDigit.isMoreRecentThan("2"));
88         assertFalse(oneDigit.isMoreRecentThan("2.0"));
89         assertFalse(oneDigit.isMoreRecentThan("1.0"));
90
91         oneDigit.setVersion("1.0");
92         assertTrue(oneDigit.isMoreRecentThan("1"));
93
94         oneDigit.setVersion("1");
95         assertFalse(oneDigit.isTheSameVersion("1.1"));
96         assertFalse(oneDigit.isTheSameVersion("1.0"));
97         assertFalse(oneDigit.isTheSameVersion("1.0.0"));
98
99         oneDigit.setVersion("2");
100         assertTrue(oneDigit.isMoreRecentThan("1"));
101         assertTrue(oneDigit.isMoreRecentThan("1.0"));
102         assertTrue(oneDigit.isMoreRecentThan("1.1"));
103         assertTrue(oneDigit.isMoreRecentThan("0.1"));
104         assertFalse(oneDigit.isMoreRecentThan("2.0"));
105
106     }
107
108     @Test
109     public final void testVersionEquals() {
110
111         MavenLikeVersioning heatTemplate = new MavenLikeVersioning();
112         assertFalse(heatTemplate.isTheSameVersion("100.0"));
113         assertTrue(heatTemplate.isTheSameVersion(null));
114         heatTemplate.setVersion("100.0.1");
115         assertFalse(heatTemplate.isTheSameVersion(null));
116         assertFalse(heatTemplate.isTheSameVersion("100.0"));
117         assertFalse(heatTemplate.isTheSameVersion("100"));
118         assertFalse(heatTemplate.isTheSameVersion("100.0.1.1"));
119         assertTrue(heatTemplate.isTheSameVersion("100.0.1"));
120         assertTrue(heatTemplate.isTheSameVersion("00100.000.0001"));
121         assertFalse(heatTemplate.isTheSameVersion("0.0.1"));
122         assertTrue(heatTemplate.isTheSameVersion("100.0.01"));
123
124     }
125
126     @Test
127     public final void testListSort() {
128         MavenLikeVersioning test1 = new MavenLikeVersioning();
129         test1.setVersion("1.1");
130         MavenLikeVersioning test2 = new MavenLikeVersioning();
131         test2.setVersion("1.10");
132         MavenLikeVersioning test3 = new MavenLikeVersioning();
133         test3.setVersion("1.2");
134         MavenLikeVersioning test4 = new MavenLikeVersioning();
135         test4.setVersion("1.20");
136         MavenLikeVersioning test5 = new MavenLikeVersioning();
137         test5.setVersion("1.02");
138         MavenLikeVersioning test6 = new MavenLikeVersioning();
139         test6.setVersion("2.02");
140         MavenLikeVersioning test7 = new MavenLikeVersioning();
141         test7.setVersion("0.02");
142         MavenLikeVersioning test8 = new MavenLikeVersioning();
143         test8.setVersion("2.02");
144         MavenLikeVersioning test9 = new MavenLikeVersioning();
145         test9.setVersion("10.2004");
146         MavenLikeVersioning test10 = new MavenLikeVersioning();
147         test10.setVersion("2");
148         MavenLikeVersioning test11 = new MavenLikeVersioning();
149         test11.setVersion("12");
150         MavenLikeVersioning test12 = new MavenLikeVersioning();
151         test12.setVersion("2.0");
152
153         List<MavenLikeVersioning> list = new LinkedList<MavenLikeVersioning>();
154         list.add(test1);
155         list.add(test2);
156         list.add(test3);
157         list.add(test4);
158         list.add(test5);
159         list.add(test6);
160         list.add(test7);
161         list.add(test8);
162         list.add(test9);
163         list.add(test10);
164         list.add(test11);
165         list.add(test12);
166
167         Collections.sort(list, new MavenLikeVersioningComparator());
168         // Collections.reverse(list);
169         assertTrue(list.get(0).getVersion().equals("0.02"));
170         assertTrue(list.get(1).getVersion().equals("1.1"));
171         assertTrue(list.get(2).getVersion().equals("1.02") || list.get(3).getVersion().equals("1.02"));
172         assertTrue(list.get(3).getVersion().equals("1.2") || list.get(2).getVersion().equals("1.2"));
173         assertTrue(list.get(4).getVersion().equals("1.10"));
174         assertTrue(list.get(5).getVersion().equals("1.20"));
175         assertTrue(list.get(6).getVersion().equals("2"));
176         assertTrue(list.get(7).getVersion().equals("2.0"));
177         assertTrue(list.get(8).getVersion().equals("2.02"));
178         assertTrue(list.get(9).getVersion().equals("2.02"));
179         assertTrue(list.get(10).getVersion().equals("10.2004"));
180         assertTrue(list.get(11).getVersion().equals("12"));
181
182     }
183 }
184