Raise JUnit coverage asdctool
[sdc.git] / asdctool / src / test / java / org / openecomp / sdc / asdctool / migration / core / SdcMigrationToolTest.java
1 package org.openecomp.sdc.asdctool.migration.core;
2
3 import static org.mockito.Mockito.spy;
4 import static org.mockito.Mockito.verify;
5 import static org.mockito.Mockito.when;
6
7 import java.util.Arrays;
8 import java.util.Collections;
9
10 import org.mockito.InjectMocks;
11 import org.mockito.Mock;
12 import org.mockito.Mockito;
13 import org.mockito.MockitoAnnotations;
14 import org.mockito.internal.verification.Times;
15 import org.openecomp.sdc.asdctool.migration.core.task.Migration;
16 import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
17 import org.openecomp.sdc.asdctool.migration.resolver.MigrationResolver;
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 SdcMigrationToolTest {
23
24         @InjectMocks
25         private SdcMigrationTool testInstance = spy(SdcMigrationTool.class);
26
27         @Mock
28         private MigrationResolver migrationResolverMock;
29
30         @Mock
31         private SdcRepoService sdcRepoServiceMock;
32
33         @BeforeMethod
34     public void setUp() {
35                 MockitoAnnotations.initMocks(this);
36         }
37
38         @Test
39     public void testMigrate_noMigrations() {
40                 when(migrationResolverMock.resolveMigrations()).thenReturn(Collections.emptyList());
41                 testInstance.migrate(false);
42                 verify(sdcRepoServiceMock, new Times(0)).clearTasksForCurrentMajor();
43                 verify(sdcRepoServiceMock, new Times(0)).createMigrationTask(Mockito.any());
44         }
45
46         @Test
47     public void testMigrate_enforceFlag_removeAllMigrationTasksForCurrentVersion() {
48                 when(migrationResolverMock.resolveMigrations()).thenReturn(Collections.emptyList());
49                 testInstance.migrate(true);
50                 verify(sdcRepoServiceMock, new Times(1)).clearTasksForCurrentMajor();
51         }
52
53         @Test
54     public void testMigrate_stopAfterFirstFailure() {
55                 when(migrationResolverMock.resolveMigrations())
56                                 .thenReturn(Arrays.asList(new SuccessfulMigration(), new FailedMigration(), new SuccessfulMigration()));
57                 testInstance.migrate(false);
58                 verify(sdcRepoServiceMock, new Times(0)).clearTasksForCurrentMajor();
59                 verify(sdcRepoServiceMock, new Times(1)).createMigrationTask(Mockito.any());
60
61         }
62
63         private class FailedMigration implements Migration {
64
65                 @Override
66                 public String description() {
67                         return null;
68                 }
69
70                 @Override
71                 public DBVersion getVersion() {
72                         return DBVersion.fromString("1710.22");
73                 }
74
75                 @Override
76                 public MigrationResult migrate() {
77                         MigrationResult migrationResult = new MigrationResult();
78                         migrationResult.setMigrationStatus(MigrationResult.MigrationStatus.FAILED);
79                         return migrationResult;
80                 }
81         }
82
83         private class SuccessfulMigration implements Migration {
84
85                 @Override
86                 public String description() {
87                         return null;
88                 }
89
90                 @Override
91                 public DBVersion getVersion() {
92                         return DBVersion.fromString("1710.22");
93                 }
94
95                 @Override
96                 public MigrationResult migrate() {
97                         MigrationResult migrationResult = new MigrationResult();
98                         migrationResult.setMigrationStatus(MigrationResult.MigrationStatus.COMPLETED);
99                         return migrationResult;
100                 }
101         }
102 }