629e98abb22b15426739b510ee191d007590d4c0
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / client / orchestration / NamingServiceResourcesTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.client.orchestration;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.mockito.ArgumentMatchers.any;
25 import static org.mockito.ArgumentMatchers.isA;
26 import static org.mockito.Mockito.doReturn;
27 import static org.mockito.Mockito.times;
28 import static org.mockito.Mockito.verify;
29
30 import java.util.List;
31
32 import org.junit.Before;
33 import org.junit.Test;
34 import org.junit.runner.RunWith;
35 import org.mockito.InjectMocks;
36 import org.mockito.Mock;
37 import org.mockito.junit.MockitoJUnitRunner;
38 import org.onap.so.bpmn.common.data.TestDataSetup;
39 import org.onap.namingservice.model.Deleteelement;
40 import org.onap.namingservice.model.Element;
41 import org.onap.namingservice.model.NameGenDeleteRequest;
42 import org.onap.namingservice.model.NameGenDeleteResponse;
43 import org.onap.namingservice.model.NameGenRequest;
44 import org.onap.namingservice.model.NameGenResponse;
45 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
46 import org.onap.so.client.namingservice.NamingClient;
47 import org.onap.so.client.namingservice.NamingRequestObjectBuilder;
48 import org.springframework.http.HttpStatus;
49 import org.springframework.http.ResponseEntity;
50
51 @RunWith(MockitoJUnitRunner.Silent.class)
52 public class NamingServiceResourcesTest extends TestDataSetup{
53         @InjectMocks
54         private NamingServiceResources namingServiceResources = new NamingServiceResources();   
55         
56         private InstanceGroup instanceGroup;
57         
58         @Mock
59         protected NamingRequestObjectBuilder MOCK_namingRequestObjectBuilder;   
60         
61         @Mock
62         protected NamingClient MOCK_namingClient;       
63
64         @Before
65         public void before() {          
66                 instanceGroup = buildInstanceGroup();
67         }       
68
69         @Test
70         public void generateInstanceGroupNameTest() throws Exception {
71                 NameGenResponse name = new NameGenResponse();
72                 ResponseEntity<NameGenResponse> resp = new ResponseEntity<>(name, null, HttpStatus.OK);
73                 Element element = new Element();
74                 
75                 NameGenRequest req = new NameGenRequest();
76                 doReturn(element).when(MOCK_namingRequestObjectBuilder).elementMapper(isA(String.class), isA(String.class),
77                                 isA(String.class), isA(String.class), isA(String.class));
78                 doReturn("generatedInstanceGroupName").when(MOCK_namingClient).postNameGenRequest(isA(NameGenRequest.class));           
79                 doReturn(req).when(MOCK_namingRequestObjectBuilder).nameGenRequestMapper(isA(List.class));
80
81                 String generatedName = namingServiceResources.generateInstanceGroupName(instanceGroup, "policyInstanceName", "nfNamingCode");
82
83                 verify(MOCK_namingClient, times(1)).postNameGenRequest(any(NameGenRequest.class));
84                 assertEquals(generatedName, "generatedInstanceGroupName");
85         }
86
87         @Test
88         public void deleteInstanceGroupNameTest() throws Exception {            
89                 NameGenDeleteResponse name = new NameGenDeleteResponse();
90                 ResponseEntity<NameGenDeleteResponse> resp = new ResponseEntity<>(name, null, HttpStatus.OK);
91                 Deleteelement deleteElement = new Deleteelement();
92                 deleteElement.setExternalKey(instanceGroup.getId());
93                 NameGenDeleteRequest req = new NameGenDeleteRequest();
94                 doReturn(deleteElement).when(MOCK_namingRequestObjectBuilder).deleteElementMapper(isA(String.class));
95                 doReturn("").when(MOCK_namingClient).deleteNameGenRequest(isA(NameGenDeleteRequest.class));             
96                 doReturn(req).when(MOCK_namingRequestObjectBuilder).nameGenDeleteRequestMapper(isA(List.class));
97
98                 namingServiceResources.deleteInstanceGroupName(instanceGroup);
99
100                 verify(MOCK_namingClient, times(1)).deleteNameGenRequest(any(NameGenDeleteRequest.class));
101                 
102         }
103
104         
105 }