Add collaboration feature
[sdc.git] / openecomp-be / lib / openecomp-healing-lib / openecomp-sdc-healing-impl / src / test / java / org / openecomp / sdc / healing / healers / VspOnboardingMethodHealerTest.java
1 package org.openecomp.sdc.healing.healers;
2
3 import org.junit.Before;
4 import org.junit.Test;
5 import org.mockito.InjectMocks;
6 import org.mockito.Mock;
7 import org.mockito.Mockito;
8 import org.mockito.MockitoAnnotations;
9 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDao;
10 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
11 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
12 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData;
13 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity;
14 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
15 import org.openecomp.sdc.versioning.dao.types.Version;
16
17 import static org.junit.Assert.assertEquals;
18 import static org.mockito.Matchers.any;
19
20 public class VspOnboardingMethodHealerTest {
21   private static final String vspId = "1";
22   private static final Version version = new Version(1, 1);
23
24   @Mock
25   private VendorSoftwareProductInfoDao vendorSoftwareProductInfoDao;
26   @Mock
27   private OrchestrationTemplateDao orchestrationTemplateDao;
28   @Mock
29   private OrchestrationTemplateCandidateDao candidateDao;
30   @InjectMocks
31   private VspOnboardingMethodHealer vspOnboardingMethodHealer;
32
33   private OrchestrationTemplateEntity orchestrationTemplateEntity = new OrchestrationTemplateEntity();
34   private OrchestrationTemplateCandidateData candidateData = new OrchestrationTemplateCandidateData();
35   private static final String NETWORK_PACKAGE = "NetworkPackage";
36   private static final String HEAT = "HEAT";
37   private static final String MANUAL = "Manual";
38
39   @Before
40   public void setUp() throws Exception {
41     MockitoAnnotations.initMocks(VspOnboardingMethodHealerTest.this);
42   }
43
44   @Test
45   public void checkHealingWithNullOnboarding() throws Exception {
46     VspDetails vspDetails = initAndExecuteHealer(null);
47     assertEquals(vspDetails.getOnboardingMethod(), NETWORK_PACKAGE);
48   }
49
50   @Test
51   public void checkHealingWithHEATOnboarding() throws Exception {
52     VspDetails vspDetails = initAndExecuteHealer(HEAT);
53     assertEquals(vspDetails.getOnboardingMethod(), NETWORK_PACKAGE);
54   }
55
56   @Test
57   public void checkHealingWithManualOnboarding() throws Exception {
58     VspDetails vspDetails = initAndExecuteHealer(MANUAL);
59     assertEquals(vspDetails.getOnboardingMethod(), MANUAL);
60   }
61
62   private VspDetails initAndExecuteHealer(String onboardingMethod) throws Exception {
63     VspDetails vspDetails = new VspDetails();
64     vspDetails.setOnboardingMethod(onboardingMethod);
65
66     setMockActions(vspDetails);
67     vspOnboardingMethodHealer.heal(vspId, version);
68     return vspDetails;
69   }
70
71   private void setMockActions(VspDetails vspDetails) {
72     Mockito.doReturn(vspDetails).when(vendorSoftwareProductInfoDao).get(any());
73     Mockito.doReturn(orchestrationTemplateEntity).when(orchestrationTemplateDao).get(any(), any());
74     Mockito.doNothing().when(orchestrationTemplateDao).update(any(), any(), any());
75     Mockito.doReturn(candidateData).when(candidateDao).get(any(), any());
76     Mockito.doNothing().when(candidateDao).update(any(), any(), any());
77   }
78 }