[SDC] rebase 1710 code
[sdc.git] / asdctool / src / test / java / org / openecomp / sdc / asdctool / migration / resolver / SpringBeansMigrationResolverTest.java
1 package org.openecomp.sdc.asdctool.migration.resolver;
2
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;
12
13 import java.util.Arrays;
14 import java.util.Collections;
15 import java.util.List;
16
17 import static org.mockito.Mockito.when;
18 import static org.testng.Assert.assertEquals;
19 import static org.testng.Assert.assertTrue;
20
21 public class SpringBeansMigrationResolverTest {
22
23     @InjectMocks
24     private SpringBeansMigrationResolver testInstance;
25
26     @Mock
27     private SdcRepoService sdcRepoServiceMock;
28
29     private List<Migration> migrations = Arrays.asList(createMigration("1710.1"), createMigration("1710.22"), createMigration("1707.12"), createMigration("1710.3"));
30
31
32     @BeforeMethod
33     public void setUp() throws Exception {
34         MockitoAnnotations.initMocks(this);
35         testInstance.setMigrations(migrations);
36     }
37
38     @Test
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"));
45     }
46
47     @Test
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"));
55     }
56
57     @Test
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());
63     }
64
65     private Migration createMigration(String version) {
66         return new Migration() {
67             @Override
68             public String description() {
69                 return null;
70             }
71
72             @Override
73             public DBVersion getVersion() {
74                 return DBVersion.fromString(version);
75             }
76
77             @Override
78             public MigrationResult migrate() {
79                 return null;
80             }
81         };
82     }
83
84 }