2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.onap.so.db.catalog;
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;
33 public class MavenVersioningTest {
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");
42 assertFalse(mavenVersioning.isMoreRecentThan(null));
43 assertTrue(mavenVersioning.isMoreRecentThan("0.0.0"));
44 assertTrue(mavenVersioning.isMoreRecentThan("0.0.0.1"));
46 assertFalse(mavenVersioning.isMoreRecentThan("0.0.2"));
47 assertFalse(mavenVersioning.isMoreRecentThan("0.0.1"));
48 assertFalse(mavenVersioning.isMoreRecentThan("00.00.01"));
50 assertFalse(mavenVersioning.isMoreRecentThan("0.1"));
51 assertFalse(mavenVersioning.isMoreRecentThan("1"));
52 assertFalse(mavenVersioning.isMoreRecentThan("0.1.0.2"));
54 assertFalse(mavenVersioning.isMoreRecentThan("0.1.1"));
55 assertFalse(mavenVersioning.isMoreRecentThan("2.1.1"));
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"));
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"));
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"));
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"));
80 assertFalse(mavenVersioning.isMoreRecentThan("100.0.1.4"));
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"));
91 oneDigit.setVersion("1.0");
92 assertTrue(oneDigit.isMoreRecentThan("1"));
94 oneDigit.setVersion("1");
95 assertFalse(oneDigit.isTheSameVersion("1.1"));
96 assertFalse(oneDigit.isTheSameVersion("1.0"));
97 assertFalse(oneDigit.isTheSameVersion("1.0.0"));
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"));
109 public final void testVersionEquals() {
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"));
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");
153 List<MavenLikeVersioning> list = new LinkedList<MavenLikeVersioning>();
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"));