Raise JUnit coverage asdctool
[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 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.dao.MigrationTasksDao;
19 import org.openecomp.sdc.asdctool.migration.service.SdcRepoService;
20 import org.testng.annotations.BeforeMethod;
21 import org.testng.annotations.Test;
22
23 public class SpringBeansMigrationResolverTest {
24
25         @InjectMocks
26         private SpringBeansMigrationResolver testInstance;
27
28         @Mock
29         private SdcRepoService sdcRepoServiceMock;
30
31         private List<Migration> migrations = Arrays.asList(createMigration("1710.1"), createMigration("1710.22"),
32                         createMigration("1707.12"), createMigration("1710.3"));
33
34         @BeforeMethod
35     public void setUp() {
36                 MockitoAnnotations.initMocks(this);
37                 testInstance.setMigrations(migrations);
38         }
39
40         @Test
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"));
48         }
49
50         @Test
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"));
59         }
60
61         @Test
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());
68         }
69
70         private Migration createMigration(String version) {
71                 return new Migration() {
72                         @Override
73                         public String description() {
74                                 return null;
75                         }
76
77                         @Override
78                         public DBVersion getVersion() {
79                                 return DBVersion.fromString(version);
80                         }
81
82                         @Override
83                         public MigrationResult migrate() {
84                                 return null;
85                         }
86                 };
87         }
88
89         private SpringBeansMigrationResolver createTestSubject() {
90                 return new SpringBeansMigrationResolver(null, null, new SdcRepoService(new MigrationTasksDao()));
91         }
92 }