1 package org.openecomp.sdc.asdctool.migration.resolver;
3 import static org.mockito.Mockito.when;
4 import static org.testng.Assert.assertEquals;
5 import static org.testng.Assert.assertTrue;
7 import java.util.Arrays;
8 import java.util.Collections;
11 import org.mockito.InjectMocks;
12 import org.mockito.Mock;
13 import org.mockito.MockitoAnnotations;
14 import org.openecomp.sdc.asdctool.migration.core.DBVersion;
15 import org.openecomp.sdc.asdctool.migration.core.task.IMigrationStage;
16 import org.openecomp.sdc.asdctool.migration.core.task.Migration;
17 import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
18 import org.openecomp.sdc.asdctool.migration.dao.MigrationTasksDao;
19 import org.openecomp.sdc.asdctool.migration.service.SdcRepoService;
20 import org.testng.annotations.BeforeMethod;
21 import org.testng.annotations.Test;
23 public class SpringBeansMigrationResolverTest {
26 private SpringBeansMigrationResolver testInstance;
29 private SdcRepoService sdcRepoServiceMock;
31 private List<Migration> migrations = Arrays.asList(createMigration("1710.1"), createMigration("1710.22"),
32 createMigration("1707.12"), createMigration("1710.3"));
36 MockitoAnnotations.initMocks(this);
37 testInstance.setMigrations(migrations);
41 public void testResolveMigrations_getMigrationsWithVersionGreaterThanLatest() {
42 when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.2"));
43 testInstance.setPostMigrations(Collections.emptyList());
44 List<IMigrationStage> resolvedMigrations = testInstance.resolveMigrations();
45 assertEquals(resolvedMigrations.size(), 2);
46 assertEquals(resolvedMigrations.get(0).getVersion(), DBVersion.fromString("1710.3"));
47 assertEquals(resolvedMigrations.get(1).getVersion(), DBVersion.fromString("1710.22"));
51 public void testResolveMigration_noLatestVersionForCurrentMajorVersion() {
52 when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.-1"));
53 testInstance.setPostMigrations(Collections.emptyList());
54 List<IMigrationStage> resolvedMigrations = testInstance.resolveMigrations();
55 assertEquals(resolvedMigrations.size(), 3);
56 assertEquals(resolvedMigrations.get(0).getVersion(), DBVersion.fromString("1710.1"));
57 assertEquals(resolvedMigrations.get(1).getVersion(), DBVersion.fromString("1710.3"));
58 assertEquals(resolvedMigrations.get(2).getVersion(), DBVersion.fromString("1710.22"));
62 public void testResolveMigrations_emptyMigrationsList() {
63 testInstance.setMigrations(Collections.emptyList());
64 testInstance.setPostMigrations(Collections.emptyList());
65 when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.-1"));
66 List<IMigrationStage> resolvedMigrations = testInstance.resolveMigrations();
67 assertTrue(resolvedMigrations.isEmpty());
70 private Migration createMigration(String version) {
71 return new Migration() {
73 public String description() {
78 public DBVersion getVersion() {
79 return DBVersion.fromString(version);
83 public MigrationResult migrate() {
89 private SpringBeansMigrationResolver createTestSubject() {
90 return new SpringBeansMigrationResolver(null, null, new SdcRepoService(new MigrationTasksDao()));