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.IMigrationStage;
8 import org.openecomp.sdc.asdctool.migration.core.task.Migration;
9 import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
10 import org.openecomp.sdc.asdctool.migration.dao.MigrationTasksDao;
11 import org.openecomp.sdc.asdctool.migration.service.SdcRepoService;
12 import org.openecomp.sdc.be.dao.cassandra.CassandraClient;
13 import org.testng.annotations.BeforeMethod;
14 import org.testng.annotations.Test;
16 import java.util.Arrays;
17 import java.util.Collections;
18 import java.util.List;
20 import static org.mockito.Mockito.mock;
21 import static org.mockito.Mockito.when;
22 import static org.testng.Assert.assertEquals;
23 import static org.testng.Assert.assertTrue;
25 public class SpringBeansMigrationResolverTest {
28 private SpringBeansMigrationResolver testInstance;
31 private SdcRepoService sdcRepoServiceMock;
33 private List<Migration> migrations = Arrays.asList(createMigration("1710.1"), createMigration("1710.22"),
34 createMigration("1707.12"), createMigration("1710.3"));
38 MockitoAnnotations.initMocks(this);
39 testInstance.setMigrations(migrations);
43 public void testResolveMigrations_getMigrationsWithVersionGreaterThanLatest() {
44 when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.2"));
45 testInstance.setPostMigrations(Collections.emptyList());
46 List<IMigrationStage> resolvedMigrations = testInstance.resolveMigrations();
47 assertEquals(resolvedMigrations.size(), 2);
48 assertEquals(resolvedMigrations.get(0).getVersion(), DBVersion.fromString("1710.3"));
49 assertEquals(resolvedMigrations.get(1).getVersion(), DBVersion.fromString("1710.22"));
53 public void testResolveMigration_noLatestVersionForCurrentMajorVersion() {
54 when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.-1"));
55 testInstance.setPostMigrations(Collections.emptyList());
56 List<IMigrationStage> resolvedMigrations = testInstance.resolveMigrations();
57 assertEquals(resolvedMigrations.size(), 3);
58 assertEquals(resolvedMigrations.get(0).getVersion(), DBVersion.fromString("1710.1"));
59 assertEquals(resolvedMigrations.get(1).getVersion(), DBVersion.fromString("1710.3"));
60 assertEquals(resolvedMigrations.get(2).getVersion(), DBVersion.fromString("1710.22"));
64 public void testResolveMigrations_emptyMigrationsList() {
65 testInstance.setMigrations(Collections.emptyList());
66 testInstance.setPostMigrations(Collections.emptyList());
67 when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.-1"));
68 List<IMigrationStage> resolvedMigrations = testInstance.resolveMigrations();
69 assertTrue(resolvedMigrations.isEmpty());
72 private Migration createMigration(String version) {
73 return new Migration() {
75 public String description() {
80 public DBVersion getVersion() {
81 return DBVersion.fromString(version);
85 public MigrationResult migrate() {
91 private SpringBeansMigrationResolver createTestSubject() {
92 return new SpringBeansMigrationResolver(null, null, new SdcRepoService(new MigrationTasksDao(mock(CassandraClient.class))));