@@ -223,4 +223,87 @@ public void testCalculateUpgradePathFromLatestDbVersion() {
223
223
assertEquals ("We should have 1 upgrade step" , 1 , upgrades .length );
224
224
assertTrue (upgrades [0 ] instanceof NoopDbUpgrade );
225
225
}
226
+
227
+ @ Test
228
+ public void testCalculateUpgradePathFrom41800toNextSecurityRelease () {
229
+
230
+ final CloudStackVersion dbVersion = CloudStackVersion .parse ("4.18.0.0" );
231
+ assertNotNull (dbVersion );
232
+
233
+ final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker ();
234
+ final CloudStackVersion currentVersion = checker .getLatestVersion ();
235
+ assertNotNull (currentVersion );
236
+
237
+ final DbUpgrade [] upgrades = checker .calculateUpgradePath (dbVersion , currentVersion );
238
+ assertNotNull (upgrades );
239
+
240
+ final CloudStackVersion nextSecurityRelease = CloudStackVersion .parse (currentVersion .getMajorRelease () + "."
241
+ + currentVersion .getMinorRelease () + "."
242
+ + currentVersion .getPatchRelease () + "."
243
+ + (currentVersion .getSecurityRelease () + 1 ));
244
+ assertNotNull (nextSecurityRelease );
245
+
246
+ final DbUpgrade [] upgradesToNext = checker .calculateUpgradePath (dbVersion , nextSecurityRelease );
247
+ assertNotNull (upgradesToNext );
248
+
249
+ assertEquals (upgrades .length + 1 , upgradesToNext .length );
250
+ assertTrue (upgradesToNext [upgradesToNext .length - 1 ] instanceof NoopDbUpgrade );
251
+ }
252
+
253
+ @ Test
254
+ public void testCalculateUpgradePathFromSecurityReleaseToLatest () {
255
+
256
+ final CloudStackVersion dbVersion = CloudStackVersion .parse ("4.17.2.0" ); // a EOL version
257
+ assertNotNull (dbVersion );
258
+
259
+ final CloudStackVersion oldSecurityRelease = CloudStackVersion .parse (dbVersion .getMajorRelease () + "."
260
+ + dbVersion .getMinorRelease () + "."
261
+ + dbVersion .getPatchRelease () + "."
262
+ + (dbVersion .getSecurityRelease () + 100 ));
263
+ assertNotNull (oldSecurityRelease ); // fake security release 4.17.2.100
264
+
265
+ final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker ();
266
+ final CloudStackVersion currentVersion = checker .getLatestVersion ();
267
+ assertNotNull (currentVersion );
268
+
269
+ final DbUpgrade [] upgrades = checker .calculateUpgradePath (dbVersion , currentVersion );
270
+ assertNotNull (upgrades );
271
+
272
+ final DbUpgrade [] upgradesFromSecurityRelease = checker .calculateUpgradePath (oldSecurityRelease , currentVersion );
273
+ assertNotNull (upgradesFromSecurityRelease );
274
+
275
+ assertEquals ("The upgrade paths should be the same" , upgrades .length , upgradesFromSecurityRelease .length );
276
+ }
277
+
278
+ @ Test
279
+ public void testCalculateUpgradePathFromSecurityReleaseToNextSecurityRelease () {
280
+
281
+ final CloudStackVersion dbVersion = CloudStackVersion .parse ("4.17.2.0" ); // a EOL version
282
+ assertNotNull (dbVersion );
283
+
284
+ final CloudStackVersion oldSecurityRelease = CloudStackVersion .parse (dbVersion .getMajorRelease () + "."
285
+ + dbVersion .getMinorRelease () + "."
286
+ + dbVersion .getPatchRelease () + "."
287
+ + (dbVersion .getSecurityRelease () + 100 ));
288
+ assertNotNull (oldSecurityRelease ); // fake security release 4.17.2.100
289
+
290
+ final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker ();
291
+ final CloudStackVersion currentVersion = checker .getLatestVersion ();
292
+ assertNotNull (currentVersion );
293
+
294
+ final CloudStackVersion nextSecurityRelease = CloudStackVersion .parse (currentVersion .getMajorRelease () + "."
295
+ + currentVersion .getMinorRelease () + "."
296
+ + currentVersion .getPatchRelease () + "."
297
+ + (currentVersion .getSecurityRelease () + 1 ));
298
+ assertNotNull (nextSecurityRelease ); // fake security release
299
+
300
+ final DbUpgrade [] upgrades = checker .calculateUpgradePath (dbVersion , currentVersion );
301
+ assertNotNull (upgrades );
302
+
303
+ final DbUpgrade [] upgradesFromSecurityReleaseToNext = checker .calculateUpgradePath (oldSecurityRelease , nextSecurityRelease );
304
+ assertNotNull (upgradesFromSecurityReleaseToNext );
305
+
306
+ assertEquals (upgrades .length + 1 , upgradesFromSecurityReleaseToNext .length );
307
+ assertTrue (upgradesFromSecurityReleaseToNext [upgradesFromSecurityReleaseToNext .length - 1 ] instanceof NoopDbUpgrade );
308
+ }
226
309
}
0 commit comments