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.service.SdcRepoService;
19 import org.testng.annotations.BeforeMethod;
20 import org.testng.annotations.Test;
22 public class SpringBeansMigrationResolverTest {
25 private SpringBeansMigrationResolver testInstance;
28 private SdcRepoService sdcRepoServiceMock;
30 private List<Migration> migrations = Arrays.asList(createMigration("1710.1"), createMigration("1710.22"), createMigration("1707.12"), createMigration("1710.3"));
34 public void setUp() throws Exception {
35 MockitoAnnotations.initMocks(this);
36 testInstance.setMigrations(migrations);
40 public void testResolveMigrations_getMigrationsWithVersionGreaterThanLatest() throws Exception {
41 when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.2"));
42 testInstance.setPostMigrations(Collections.emptyList());
43 List<IMigrationStage> resolvedMigrations = testInstance.resolveMigrations();
44 assertEquals(resolvedMigrations.size(), 2);
45 assertEquals(resolvedMigrations.get(0).getVersion(), DBVersion.fromString("1710.3"));
46 assertEquals(resolvedMigrations.get(1).getVersion(), DBVersion.fromString("1710.22"));
50 public void testResolveMigration_noLatestVersionForCurrentMajorVersion() throws Exception {
51 when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.-1"));
52 testInstance.setPostMigrations(Collections.emptyList());
53 List<IMigrationStage> resolvedMigrations = testInstance.resolveMigrations();
54 assertEquals(resolvedMigrations.size(), 3);
55 assertEquals(resolvedMigrations.get(0).getVersion(), DBVersion.fromString("1710.1"));
56 assertEquals(resolvedMigrations.get(1).getVersion(), DBVersion.fromString("1710.3"));
57 assertEquals(resolvedMigrations.get(2).getVersion(), DBVersion.fromString("1710.22"));
61 public void testResolveMigrations_emptyMigrationsList() throws Exception {
62 testInstance.setMigrations(Collections.emptyList());
63 testInstance.setPostMigrations(Collections.emptyList());
64 when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.-1"));
65 List<IMigrationStage> resolvedMigrations = testInstance.resolveMigrations();
66 assertTrue(resolvedMigrations.isEmpty());
69 private Migration createMigration(String version) {
70 return new Migration() {
72 public String description() {
77 public DBVersion getVersion() {
78 return DBVersion.fromString(version);
82 public MigrationResult migrate() {