360b3aab404656e8bccb4b3799ace5b4b2bbe10c
[sdc.git] /
1 package org.openecomp.sdc.asdctool.migration.resolver;
2
3 import static org.mockito.Mockito.when;
4 import static org.testng.Assert.assertEquals;
5 import static org.testng.Assert.assertTrue;
6
7 import java.util.Arrays;
8 import java.util.Collections;
9 import java.util.List;
10
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;
21
22 public class SpringBeansMigrationResolverTest {
23
24     @InjectMocks
25     private SpringBeansMigrationResolver testInstance;
26
27     @Mock
28     private SdcRepoService sdcRepoServiceMock;
29
30     private List<Migration> migrations = Arrays.asList(createMigration("1710.1"), createMigration("1710.22"), createMigration("1707.12"), createMigration("1710.3"));
31
32
33     @BeforeMethod
34     public void setUp() throws Exception {
35         MockitoAnnotations.initMocks(this);
36         testInstance.setMigrations(migrations);
37     }
38
39     @Test
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"));
47     }
48
49     @Test
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"));
58     }
59
60     @Test
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());
67     }
68
69     private Migration createMigration(String version) {
70         return new Migration() {
71             @Override
72             public String description() {
73                 return null;
74             }
75
76             @Override
77             public DBVersion getVersion() {
78                 return DBVersion.fromString(version);
79             }
80
81             @Override
82             public MigrationResult migrate() {
83                 return null;
84             }
85         };
86     }
87
88 }