aeee279002bd3a1356862c85527bc3a1a019b0b9
[so.git] / adapters / mso-catalog-db-adapter / src / test / java / org / onap / so / adapters / catalogdb / catalogrest / CvnfcCatalogDbQueryTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 - 2018 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.adapters.catalogdb.catalogrest;
22
23 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
24 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
25 import static org.junit.Assert.assertNotNull;
26 import static org.junit.Assert.assertTrue;
27
28 import java.util.HashSet;
29 import java.util.List;
30 import java.util.Set;
31
32 import org.junit.Assert;
33 import org.junit.Before;
34 import org.junit.Test;
35 import org.junit.runner.RunWith;
36 import org.onap.so.adapters.catalogdb.CatalogDBApplication;
37 import org.onap.so.db.catalog.beans.ConfigurationResource;
38 import org.onap.so.db.catalog.beans.CvnfcCustomization;
39 import org.onap.so.db.catalog.beans.VfModule;
40 import org.onap.so.db.catalog.beans.VfModuleCustomization;
41 import org.onap.so.db.catalog.beans.VnfResource;
42 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
43 import org.onap.so.db.catalog.beans.VnfVfmoduleCvnfcConfigurationCustomization;
44 import org.onap.so.db.catalog.beans.VnfcCustomization;
45 import org.onap.so.db.catalog.client.CatalogDbClientPortChanger;
46 import org.onap.so.db.catalog.data.repository.CvnfcCustomizationRepository;
47 import org.onap.so.logger.MsoLogger;
48 import org.springframework.beans.factory.annotation.Autowired;
49 import org.springframework.boot.web.server.LocalServerPort;
50 import org.springframework.boot.test.context.SpringBootTest;
51 import org.springframework.test.context.ActiveProfiles;
52 import org.springframework.test.context.junit4.SpringRunner;
53
54 import org.springframework.beans.BeanUtils;
55
56 @RunWith(SpringRunner.class)
57 @SpringBootTest(classes = CatalogDBApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
58 @ActiveProfiles("test")
59 public class CvnfcCatalogDbQueryTest {
60
61     @Autowired
62     private CvnfcCustomizationRepository cvnfcCustomizationRepository;
63     
64         private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, CvnfcCatalogDbQueryTest.class);
65
66         @LocalServerPort
67         private int port;
68         boolean isInitialized;
69
70         @Autowired
71         CatalogDbClientPortChanger client;
72
73         @Before
74         public void initialize(){
75                 client.wiremockPort= String.valueOf(port);
76         }
77         
78         @Test
79         public void cVnfcTest() {
80                 
81         CvnfcCustomization cvnfcCustomization = setUpCvnfcCustomization("dadc2c8c-2bab-11e9-b210-d663bd873d93");
82         
83                 List<CvnfcCustomization> foundCvnfcCustomization = client.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("68dc9a92-214c-11e7-93ae-92361f002671","cb82ffd8-252a-11e7-93ae-92361f002671");
84                 assertNotNull(foundCvnfcCustomization);
85                 assertTrue(foundCvnfcCustomization.size() > 0);
86                 CvnfcCustomization found = foundCvnfcCustomization.get(0);
87                 
88                 CvnfcCustomization templateCvnfcCustomization = new CvnfcCustomization();
89                 BeanUtils.copyProperties(found, templateCvnfcCustomization, "vnfVfmoduleCvnfcConfigurationCustomization");
90                 
91         assertThat(cvnfcCustomization, sameBeanAs(templateCvnfcCustomization)
92                         .ignoring("id")
93                         .ignoring("created")
94                         .ignoring("vnfVfmoduleCvnfcConfigurationCustomization")
95                         .ignoring("vnfResourceCusteModelCustomizationUUID"));
96         }
97         
98         @Test
99         public void getLinkedVnfVfmoduleCvnfcConfigurationCustomizationTest() {
100                 
101         CvnfcCustomization cvnfcCustomization = setUpCvnfcCustomization("0c042562-2bac-11e9-b210-d663bd873d93");
102         
103         VnfcCustomization vnfcCustomization = setUpVnfcCustomization();
104         vnfcCustomization.setModelCustomizationUUID("d95d704a-9ff2-11e8-98d0-529269fb1459");
105         cvnfcCustomization.setVnfcCustomization(vnfcCustomization);
106         
107                 ConfigurationResource configurationResource = new ConfigurationResource();
108                 configurationResource.setToscaNodeType("FabricConfiguration");
109                 configurationResource.setModelInvariantUUID("modelInvariantUUID");
110                 configurationResource.setModelUUID("modelUUID");
111                 configurationResource.setModelName("modelName");
112                 configurationResource.setModelVersion("modelVersion");
113                 configurationResource.setDescription("description");
114                 configurationResource.setToscaNodeType("toscaNodeTypeFC");
115                 
116                 VnfResource vnfResource = new VnfResource();
117                 vnfResource.setModelUUID("6f19c5fa-2b19-11e9-b210-d663bd873d93");
118                 vnfResource.setModelVersion("modelVersion");
119                 vnfResource.setOrchestrationMode("orchestrationMode");
120                 
121                 VfModule vfModule = new VfModule();
122                 vfModule.setModelUUID("98aa2a6e-2b18-11e9-b210-d663bd873d93");
123                 vfModule.setModelInvariantUUID("9fe57860-2b18-11e9-b210-d663bd873d93");
124                 vfModule.setIsBase(true);
125                 vfModule.setModelName("modelName");
126                 vfModule.setModelVersion("modelVersion");
127                 vfModule.setVnfResources(vnfResource);
128                 
129         VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
130         vfModuleCustomization.setModelCustomizationUUID("bdbf984a-2b16-11e9-b210-d663bd873d93");
131         vfModuleCustomization.setVfModule(vfModule);
132         cvnfcCustomization.setVfModuleCustomization(vfModuleCustomization);
133         
134         VnfResourceCustomization vnfResourceCustomization = new VnfResourceCustomization();
135         vnfResourceCustomization.setModelCustomizationUUID("6912dd02-2b16-11e9-b210-d663bd873d93"); 
136         vnfResourceCustomization.setModelInstanceName("testModelInstanceName");
137         vnfResourceCustomization.setVnfResources(vnfResource);
138         cvnfcCustomization.setVnfResourceCustomization(vnfResourceCustomization);
139         
140         VnfVfmoduleCvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization = new VnfVfmoduleCvnfcConfigurationCustomization();
141         vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationFunction("configurationFunction");
142         vnfVfmoduleCvnfcConfigurationCustomization.setModelCustomizationUUID("64627fec-2b1b-11e9-b210-d663bd873d93");
143         vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
144         vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
145         vnfVfmoduleCvnfcConfigurationCustomization.setModelInstanceName("modelInstanceName");
146         vnfVfmoduleCvnfcConfigurationCustomization.setVfModuleCustomization(vfModuleCustomization);
147         vnfVfmoduleCvnfcConfigurationCustomization.setVnfResourceCustomization(vnfResourceCustomization);
148         
149         Set<VnfVfmoduleCvnfcConfigurationCustomization> vnfVfmoduleCvnfcConfigurationCustomizationSet = new HashSet<VnfVfmoduleCvnfcConfigurationCustomization>();
150         vnfVfmoduleCvnfcConfigurationCustomizationSet.add(vnfVfmoduleCvnfcConfigurationCustomization);
151         cvnfcCustomization.setVnfVfmoduleCvnfcConfigurationCustomization(vnfVfmoduleCvnfcConfigurationCustomizationSet);
152         
153         vnfVfmoduleCvnfcConfigurationCustomization.setCvnfcCustomization(cvnfcCustomization);
154         
155         cvnfcCustomizationRepository.save(cvnfcCustomization);
156         
157                 List<CvnfcCustomization> foundCvnfcCustomization = client.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID("6912dd02-2b16-11e9-b210-d663bd873d93","bdbf984a-2b16-11e9-b210-d663bd873d93");
158                 assertNotNull(foundCvnfcCustomization);
159                 assertTrue(foundCvnfcCustomization.size() > 0);
160                 CvnfcCustomization found = foundCvnfcCustomization.get(0);
161
162         Set<VnfVfmoduleCvnfcConfigurationCustomization>  vnfVfmoduleCvnfcConfigurationCustomizations =  found.getVnfVfmoduleCvnfcConfigurationCustomization();
163         if (vnfVfmoduleCvnfcConfigurationCustomizations.size() > 0){
164                 for(VnfVfmoduleCvnfcConfigurationCustomization customization : vnfVfmoduleCvnfcConfigurationCustomizations) {
165                         Assert.assertTrue(customization.getConfigurationResource().getToscaNodeType().equalsIgnoreCase("toscaNodeTypeFC"));
166                 }
167         } else {
168                 Assert.fail("No linked VnfVfmoduleCvnfcConfigurationCustomization found for CvnfcCustomization");
169         }
170         }
171         
172     protected CvnfcCustomization setUpCvnfcCustomization(String id){
173         CvnfcCustomization cvnfcCustomization = new CvnfcCustomization();
174         cvnfcCustomization.setModelCustomizationUUID(id);
175         cvnfcCustomization.setModelInstanceName("testModelInstanceName");
176         cvnfcCustomization.setModelUUID("b25735fe-9b37-11e8-98d0-529269fb1459");
177         cvnfcCustomization.setModelInvariantUUID("ba7e6ef0-9b37-11e8-98d0-529269fb1459");
178         cvnfcCustomization.setModelVersion("testModelVersion");
179         cvnfcCustomization.setModelName("testModelName");
180         cvnfcCustomization.setToscaNodeType("testToscaNodeType");
181         cvnfcCustomization.setDescription("testCvnfcCustomzationDescription");
182         cvnfcCustomization.setNfcFunction("testNfcFunction");
183         cvnfcCustomization.setNfcNamingCode("testNfcNamingCode");
184         return cvnfcCustomization;
185     }
186     
187     protected VnfcCustomization setUpVnfcCustomization(){
188         VnfcCustomization vnfcCustomization = new VnfcCustomization();
189         vnfcCustomization.setModelInstanceName("testVnfcCustomizationModelInstanceName");
190         vnfcCustomization.setModelUUID("321228a4-9f15-11e8-98d0-529269fb1459");
191         vnfcCustomization.setModelInvariantUUID("c0659136-9f15-11e8-98d0-529269fb1459");
192         vnfcCustomization.setModelVersion("testModelVersion");
193         vnfcCustomization.setModelName("testModelName");
194         vnfcCustomization.setToscaNodeType("testToscaModelType");
195         vnfcCustomization.setDescription("testVnfcCustomizationDescription");
196         return vnfcCustomization;
197     }
198 }