5252import com .cloud .upgrade .dao .Upgrade42020to42030 ;
5353import com .cloud .upgrade .dao .Upgrade42030to42040 ;
5454import com .cloud .upgrade .dao .Upgrade42040to42100 ;
55+ import com .cloud .upgrade .dao .Upgrade42300to2400 ;
5556import com .cloud .upgrade .dao .Upgrade452to453 ;
5657import com .cloud .upgrade .dao .Upgrade453to460 ;
5758import com .cloud .upgrade .dao .Upgrade460to461 ;
@@ -79,6 +80,8 @@ public class DatabaseUpgradeCheckerTest {
7980 ResultSet resultSet ;
8081
8182 private DataSource backupDataSource ;
83+ private String previousCsMajorVersion ;
84+ private String previousCsTinyVersion ;
8285
8386 @ Before
8487 public void setup () throws Exception {
@@ -90,13 +93,19 @@ public void setup() throws Exception {
9093 Mockito .when (dataSource .getConnection ()).thenReturn (connection );
9194 Mockito .when (connection .prepareStatement (ArgumentMatchers .anyString ())).thenReturn (preparedStatement );
9295 Mockito .when (preparedStatement .executeQuery ()).thenReturn (resultSet );
96+
97+ previousCsMajorVersion = SystemVmTemplateRegistration .CS_MAJOR_VERSION ;
98+ previousCsTinyVersion = SystemVmTemplateRegistration .CS_TINY_VERSION ;
9399 }
94100
95101 @ After
96102 public void cleanup () throws Exception {
97103 Field dsField = TransactionLegacy .class .getDeclaredField ("s_ds" );
98104 dsField .setAccessible (true );
99105 dsField .set (null , backupDataSource );
106+
107+ SystemVmTemplateRegistration .CS_MAJOR_VERSION = previousCsMajorVersion ;
108+ SystemVmTemplateRegistration .CS_TINY_VERSION = previousCsTinyVersion ;
100109 }
101110
102111 @ Test
@@ -422,6 +431,26 @@ public void testCalculateUpgradePath42010to42100() {
422431 assertEquals (currentVersion .toString (), upgrades [2 ].getUpgradedVersion ());
423432 }
424433
434+ @ Test
435+ public void testCalculateUpgradePath42300to2400 () {
436+
437+ final CloudStackVersion dbVersion = CloudStackVersion .parse ("4.23.0.0" );
438+ assertNotNull (dbVersion );
439+
440+ final CloudStackVersion currentVersion = CloudStackVersion .parse ("24.0.0" );
441+ assertNotNull (currentVersion );
442+
443+ final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker ();
444+ final DbUpgrade [] upgrades = checker .calculateUpgradePath (dbVersion , currentVersion );
445+
446+ assertNotNull (upgrades );
447+ assertEquals (1 , upgrades .length );
448+ assertTrue (upgrades [0 ] instanceof Upgrade42300to2400 );
449+
450+ assertArrayEquals (new String []{"4.23.0.0" , "24.0.0" }, upgrades [0 ].getUpgradableVersionRange ());
451+ assertEquals (currentVersion .toString (), upgrades [0 ].getUpgradedVersion ());
452+ }
453+
425454 @ Test
426455 public void testUpdateSystemVmTemplateVersionBelowCutover () {
427456 DatabaseUpgradeChecker .updateSystemVmTemplateVersion (CloudStackVersion .parse ("4.22.1.0" ));
0 commit comments