1 package org.openecomp.sdc.asdctool.migration.resolver;
3 import org.mockito.InjectMocks;
4 import org.mockito.Mock;
5 import org.mockito.MockitoAnnotations;
6 import org.openecomp.sdc.asdctool.migration.core.DBVersion;
7 import org.openecomp.sdc.asdctool.migration.core.task.Migration;
8 import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
9 import org.openecomp.sdc.asdctool.migration.service.SdcRepoService;
10 import org.testng.annotations.BeforeMethod;
11 import org.testng.annotations.Test;
13 import java.util.Arrays;
14 import java.util.Collections;
15 import java.util.List;
17 import static org.mockito.Mockito.when;
18 import static org.testng.Assert.assertEquals;
19 import static org.testng.Assert.assertTrue;
21 public class SpringBeansMigrationResolverTest {
24 private SpringBeansMigrationResolver testInstance;
27 private SdcRepoService sdcRepoServiceMock;
29 private List<Migration> migrations = Arrays.asList(createMigration("1710.1"), createMigration("1710.22"), createMigration("1707.12"), createMigration("1710.3"));
33 public void setUp() throws Exception {
34 MockitoAnnotations.initMocks(this);
35 testInstance.setMigrations(migrations);
39 public void testResolveMigrations_getMigrationsWithVersionGreaterThanLatest() throws Exception {
40 when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.2"));
41 List<Migration> resolvedMigrations = testInstance.resolveMigrations();
42 assertEquals(resolvedMigrations.size(), 2);
43 assertEquals(resolvedMigrations.get(0).getVersion(), DBVersion.fromString("1710.3"));
44 assertEquals(resolvedMigrations.get(1).getVersion(), DBVersion.fromString("1710.22"));
48 public void testResolveMigration_noLatestVersionForCurrentMajorVersion() throws Exception {
49 when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.-1"));
50 List<Migration> resolvedMigrations = testInstance.resolveMigrations();
51 assertEquals(resolvedMigrations.size(), 3);
52 assertEquals(resolvedMigrations.get(0).getVersion(), DBVersion.fromString("1710.1"));
53 assertEquals(resolvedMigrations.get(1).getVersion(), DBVersion.fromString("1710.3"));
54 assertEquals(resolvedMigrations.get(2).getVersion(), DBVersion.fromString("1710.22"));
58 public void testResolveMigrations_emptyMigrationsList() throws Exception {
59 testInstance.setMigrations(Collections.emptyList());
60 when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.-1"));
61 List<Migration> resolvedMigrations = testInstance.resolveMigrations();
62 assertTrue(resolvedMigrations.isEmpty());
65 private Migration createMigration(String version) {
66 return new Migration() {
68 public String description() {
73 public DBVersion getVersion() {
74 return DBVersion.fromString(version);
78 public MigrationResult migrate() {