2f24a4cb1bed55c193fda91cd4a56d2b1a6708ea
[so.git] / mso-catalog-db / src / test / java / org / openecomp / mso / db / catalog / test / MavenVersioningTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * OPENECOMP - MSO
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.openecomp.mso.db.catalog.test;
22
23
24 import static org.junit.Assert.*;
25
26 import java.util.Collections;
27 import java.util.LinkedList;
28 import java.util.List;
29
30 import org.junit.Test;
31
32 import org.openecomp.mso.db.catalog.utils.MavenLikeVersioningComparator;
33 import org.openecomp.mso.db.catalog.utils.MavenLikeVersioning;
34
35
36 public class MavenVersioningTest {
37
38         @Test
39         public final void testVersion () {
40                 MavenLikeVersioning mavenVersioning = new MavenLikeVersioning ();
41                 assertFalse(mavenVersioning.isMoreRecentThan("0.0.0"));
42                 assertFalse(mavenVersioning.isMoreRecentThan(null));
43                 mavenVersioning.setVersion("0.0.1");
44                 
45                 assertFalse(mavenVersioning.isMoreRecentThan(null));
46                 assertTrue(mavenVersioning.isMoreRecentThan("0.0.0"));
47                 assertTrue(mavenVersioning.isMoreRecentThan("0.0.0.1"));
48                 
49                 assertFalse(mavenVersioning.isMoreRecentThan("0.0.2"));
50                 assertFalse(mavenVersioning.isMoreRecentThan("0.0.1"));
51                 assertFalse(mavenVersioning.isMoreRecentThan("00.00.01"));
52                 
53                 assertFalse(mavenVersioning.isMoreRecentThan("0.1"));
54                 assertFalse(mavenVersioning.isMoreRecentThan("1"));
55                 assertFalse(mavenVersioning.isMoreRecentThan("0.1.0.2"));
56                 
57                 assertFalse(mavenVersioning.isMoreRecentThan("0.1.1"));
58                 assertFalse(mavenVersioning.isMoreRecentThan("2.1.1"));
59                 
60                 mavenVersioning.setVersion("1.0.1");
61                 assertTrue(mavenVersioning.isMoreRecentThan("0.0.0"));
62                 assertTrue(mavenVersioning.isMoreRecentThan("0.5.2"));
63                 assertTrue(mavenVersioning.isMoreRecentThan("1.0.0"));
64                 
65                 assertFalse(mavenVersioning.isMoreRecentThan("2.1.1"));
66                 assertFalse(mavenVersioning.isMoreRecentThan("02.001.0001"));
67                 assertFalse(mavenVersioning.isMoreRecentThan("1.0.1"));
68                 assertFalse(mavenVersioning.isMoreRecentThan("1.0.2"));
69                 assertFalse(mavenVersioning.isMoreRecentThan("1.1.1"));
70                 assertFalse(mavenVersioning.isMoreRecentThan("1.0.10"));
71                 
72                 
73                 mavenVersioning.setVersion("100.0.1");
74                 assertTrue(mavenVersioning.isMoreRecentThan("0.0.0"));
75                 assertTrue(mavenVersioning.isMoreRecentThan("0.5.2"));
76                 assertTrue(mavenVersioning.isMoreRecentThan("1.0.0"));
77                 
78                 assertFalse(mavenVersioning.isMoreRecentThan("101.1.1"));
79                 assertFalse(mavenVersioning.isMoreRecentThan("100.0.1"));
80                 assertFalse(mavenVersioning.isMoreRecentThan("100.0.2"));
81                 assertFalse(mavenVersioning.isMoreRecentThan("100.1.1"));
82                 
83                 assertFalse(mavenVersioning.isMoreRecentThan("100.0.1.4"));
84         }
85         
86         @Test
87         public final void testOneDigitVersion() {
88                 MavenLikeVersioning oneDigit = new MavenLikeVersioning();
89                 oneDigit.setVersion("1");
90                 assertFalse(oneDigit.isMoreRecentThan("2"));
91                 assertFalse(oneDigit.isMoreRecentThan("2.0"));
92                 assertFalse(oneDigit.isMoreRecentThan("1.0"));
93                 
94                 oneDigit.setVersion("1.0");
95                 assertTrue(oneDigit.isMoreRecentThan("1"));
96                 
97                 oneDigit.setVersion("1");
98                 assertFalse(oneDigit.isTheSameVersion("1.1"));
99                 assertFalse(oneDigit.isTheSameVersion("1.0"));
100                 assertFalse(oneDigit.isTheSameVersion("1.0.0"));
101                                 
102                 oneDigit.setVersion("2");
103                 assertTrue(oneDigit.isMoreRecentThan("1"));
104                 assertTrue(oneDigit.isMoreRecentThan("1.0"));
105                 assertTrue(oneDigit.isMoreRecentThan("1.1"));
106                 assertTrue(oneDigit.isMoreRecentThan("0.1"));
107                 assertFalse(oneDigit.isMoreRecentThan("2.0"));
108                 
109         }
110         
111         @Test
112         public final void testVersionEquals () {
113                 
114                 MavenLikeVersioning heatTemplate = new MavenLikeVersioning();
115                 assertFalse(heatTemplate.isTheSameVersion("100.0"));
116                 assertTrue(heatTemplate.isTheSameVersion(null));
117                 heatTemplate.setVersion("100.0.1");
118                 assertFalse(heatTemplate.isTheSameVersion(null));
119                 assertFalse(heatTemplate.isTheSameVersion("100.0"));
120                 assertFalse(heatTemplate.isTheSameVersion("100"));
121                 assertFalse(heatTemplate.isTheSameVersion("100.0.1.1"));
122                 assertTrue(heatTemplate.isTheSameVersion("100.0.1"));
123                 assertTrue(heatTemplate.isTheSameVersion("00100.000.0001"));
124                 assertFalse(heatTemplate.isTheSameVersion("0.0.1"));
125                 assertTrue(heatTemplate.isTheSameVersion("100.0.01"));
126                 
127         }
128         
129         @Test
130         public final void testListSort () {
131                 MavenLikeVersioning test1 = new MavenLikeVersioning();
132                 test1.setVersion("1.1");
133                 MavenLikeVersioning test2 = new MavenLikeVersioning();
134                 test2.setVersion("1.10");
135                 MavenLikeVersioning test3 = new MavenLikeVersioning();
136                 test3.setVersion("1.2");
137                 MavenLikeVersioning test4 = new MavenLikeVersioning();
138                 test4.setVersion("1.20");
139                 MavenLikeVersioning test5 = new MavenLikeVersioning();
140                 test5.setVersion("1.02");
141                 MavenLikeVersioning test6 = new MavenLikeVersioning();
142                 test6.setVersion("2.02");
143                 MavenLikeVersioning test7 = new MavenLikeVersioning();
144                 test7.setVersion("0.02");
145                 MavenLikeVersioning test8 = new MavenLikeVersioning();
146                 test8.setVersion("2.02");
147                 MavenLikeVersioning test9 = new MavenLikeVersioning();
148                 test9.setVersion("10.2004");
149                 MavenLikeVersioning test10 = new MavenLikeVersioning();
150                 test10.setVersion("2");
151                 MavenLikeVersioning test11 = new MavenLikeVersioning();
152                 test11.setVersion("12");
153                 MavenLikeVersioning test12 = new MavenLikeVersioning();
154                 test12.setVersion("2.0");
155                 
156                 List<MavenLikeVersioning> list= new LinkedList<MavenLikeVersioning>();
157                 list.add(test1);
158                 list.add(test2);
159                 list.add(test3);
160                 list.add(test4);
161                 list.add(test5);
162                 list.add(test6);
163                 list.add(test7);
164                 list.add(test8);
165                 list.add(test9);
166                 list.add(test10);
167                 list.add(test11);
168                 list.add(test12);
169                 
170                 Collections.sort(list,new MavenLikeVersioningComparator());
171                 //Collections.reverse(list);
172                 assertTrue(list.get(0).getVersion().equals("0.02"));
173                 assertTrue(list.get(1).getVersion().equals("1.1"));
174                 assertTrue(list.get(2).getVersion().equals("1.02") || list.get(3).getVersion().equals("1.02"));
175                 assertTrue(list.get(3).getVersion().equals("1.2") || list.get(2).getVersion().equals("1.2"));
176                 assertTrue(list.get(4).getVersion().equals("1.10"));
177                 assertTrue(list.get(5).getVersion().equals("1.20"));
178                 assertTrue(list.get(6).getVersion().equals("2"));
179                 assertTrue(list.get(7).getVersion().equals("2.0"));
180                 assertTrue(list.get(8).getVersion().equals("2.02"));
181                 assertTrue(list.get(9).getVersion().equals("2.02"));
182                 assertTrue(list.get(10).getVersion().equals("10.2004"));
183                 assertTrue(list.get(11).getVersion().equals("12"));
184                                 
185         }
186 }
187