summaryrefslogtreecommitdiffstats
path: root/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImplTest.java
blob: 2dc6cd737c659ce3d6b1b205066ed7c1004ac008 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package org.openecomp.sdcrests.vsp.rest.services;

import org.apache.cxf.jaxrs.ext.multipart.Attachment;
import org.apache.cxf.jaxrs.ext.multipart.ContentDisposition;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
import org.openecomp.sdc.activitylog.ActivityLogManager;
import org.openecomp.sdc.activitylog.ActivityLogManagerFactory;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateManager;
import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateManagerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
import org.openecomp.sdc.vendorsoftwareproduct.VspManagerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.security.SecurityManagerException;
import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.UploadFileResponseDto;
import org.openecomp.sdcrests.vsp.rest.data.PackageArchive;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import javax.ws.rs.core.Response;

import java.util.Optional;

import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertFalse;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.MockitoAnnotations.initMocks;
import static org.powermock.api.mockito.PowerMockito.mock;
import static org.powermock.api.mockito.PowerMockito.mockStatic;
import static org.powermock.api.mockito.PowerMockito.when;
import static org.powermock.api.mockito.PowerMockito.whenNew;

@RunWith(PowerMockRunner.class)
@PrepareForTest({VspManagerFactory.class, ActivityLogManagerFactory.class,
        OrchestrationTemplateCandidateManagerFactory.class, OrchestrationTemplateCandidateImpl.class})
public class OrchestrationTemplateCandidateImplTest {

    Logger logger = LoggerFactory.getLogger(OrchestrationTemplateCandidateImplTest.class);
    @Mock
    private OrchestrationTemplateCandidateManager candidateManager;
    @Mock
    private VendorSoftwareProductManager vendorSoftwareProductManager;
    @Mock
    private PackageArchive packageArchive;
    @Mock
    private VspManagerFactory vspManagerFactory;
    @Mock
    private ActivityLogManager activityLogManager;
    @Mock
    private ActivityLogManagerFactory activityLogManagerFactory;
    @Mock
    OrchestrationTemplateCandidateManagerFactory orchestrationTemplateCandidateManagerFactory;

    private OrchestrationTemplateCandidateImpl orchestrationTemplateCandidate;

    @Before
    public void setUp(){
        try {
            initMocks(this);
            packageArchive = mock(PackageArchive.class);
            mockStatic(VspManagerFactory.class);
            when(VspManagerFactory.getInstance()).thenReturn(vspManagerFactory);
            when(vspManagerFactory.createInterface()).thenReturn(vendorSoftwareProductManager);
            mockStatic(ActivityLogManagerFactory.class);
            when(ActivityLogManagerFactory.getInstance()).thenReturn(activityLogManagerFactory);
            when(activityLogManagerFactory.createInterface()).thenReturn(activityLogManager);
            whenNew(PackageArchive.class).withAnyArguments().thenReturn(packageArchive);
            mockStatic(OrchestrationTemplateCandidateManagerFactory.class);
            when(OrchestrationTemplateCandidateManagerFactory.getInstance()).thenReturn(orchestrationTemplateCandidateManagerFactory);
            when(orchestrationTemplateCandidateManagerFactory.createInterface()).thenReturn(candidateManager);
            when(packageArchive.getArchiveFileName()).thenReturn(Optional.of("test"));
            when(packageArchive.getPackageFileContents()).thenReturn(new byte[0]);
            UploadFileResponse uploadFileResponse = new UploadFileResponse();
            uploadFileResponse.setOnboardingType(OnboardingTypesEnum.ZIP);
            uploadFileResponse.setNetworkPackageName("test");
            when(candidateManager.upload(any(), any(), any(), any(), any())).thenReturn(uploadFileResponse);
        }catch (Exception e){
           logger.error(e.getMessage(), e);
        }
    }

    @Test
    public void uploadSignedTest() throws SecurityManagerException {
        when(packageArchive.isSigned()).thenReturn(true);
        when(packageArchive.isSignatureValid()).thenReturn(true);
        orchestrationTemplateCandidate = new OrchestrationTemplateCandidateImpl();
        Attachment attachment = mock(Attachment.class);
        when(attachment.getContentDisposition()).thenReturn(new ContentDisposition("test"));
        Response response = orchestrationTemplateCandidate.upload("1", "1", attachment, "1");
        assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());

    }

    @Test
    public void uploadNotSignedTest(){
        when(packageArchive.isSigned()).thenReturn(false);
        orchestrationTemplateCandidate = new OrchestrationTemplateCandidateImpl();
        Attachment attachment = mock(Attachment.class);
        when(attachment.getContentDisposition()).thenReturn(new ContentDisposition("test"));
        Response response = orchestrationTemplateCandidate.upload("1", "1", attachment, "1");
        assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());

    }

    @Test
    public void uploadSignNotValidTest() throws SecurityManagerException {
        when(packageArchive.isSigned()).thenReturn(true);
        when(packageArchive.isSignatureValid()).thenReturn(false);
        orchestrationTemplateCandidate = new OrchestrationTemplateCandidateImpl();
        Attachment attachment = mock(Attachment.class);
        when(attachment.getContentDisposition()).thenReturn(new ContentDisposition("test"));
        Response response = orchestrationTemplateCandidate.upload("1", "1", attachment, "1");
        assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
        assertFalse(((UploadFileResponseDto)response.getEntity()).getErrors().isEmpty());

    }
}