2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.impl;
24 import org.mockito.InjectMocks;
25 import org.mockito.Mock;
26 import org.openecomp.sdc.vendorsoftwareproduct.questionnaire.QuestionnaireDataService;
28 public class TxtInformationArtifactGeneratorImplTest {
30 private static final String NETWORK_DESC = "\"network desc\"";
31 private static final String HYPERVIZOR_NAME = "\"hyper hyper hypervizor\"";
32 private static final String TOOLS ="all tools possible" ;
34 QuestionnaireDataService questionnaireDataServiceMock;
36 TxtInformationArtifactGeneratorImpl informationArtifactGenerator;
40 @BeforeMethod(alwaysRun = true)
41 public void injectDoubles() {
42 MockitoAnnotations.initMocks(this);
44 // InformationArtifactData returnedQuestionnaire = new InformationArtifactData();
45 // Mockito.when(questionnaireDataServiceMock.generateQuestionnaireDataForInformationArtifact
46 // (anyString(), anyObject()))
47 // .thenReturn(returnedQuestionnaire);
53 public void testRoundVersion(){
54 Version version = new Version(2,1);
55 String rounded = TxtInformationArtifactGeneratorImpl.roundVersionAsNeeded(version);
56 Assert.assertEquals("3.0",rounded);
58 version = Version.valueOf("2.0");
59 rounded = TxtInformationArtifactGeneratorImpl.roundVersionAsNeeded(version);
60 Assert.assertEquals("2.0",rounded);
65 public void testArtifactCreation() throws IOException {
66 InformationArtifactData informationArtifactData = initArtifactData();
67 Mockito.when(questionnaireDataServiceMock.generateQuestionnaireDataForInformationArtifact
68 (anyString(), anyObject()))
69 .thenReturn(informationArtifactData);
72 String result = informationArtifactGenerator.generate("vsp", new Version(0, 1));
73 System.out.println("result = \n" + result);
75 Assert.assertTrue(result.contains(HYPERVIZOR_NAME));
76 Assert.assertTrue(result.contains(HEADER));
77 Assert.assertTrue(result.contains(VFC_COMPUTE_CPU_OVER_SUBSCRIPTION));
78 Assert.assertTrue(result.contains(TOOLS));
79 Assert.assertTrue(result.contains(TxtInformationArtifactConstants.LICENSE_AGREEMENT_NAME));
80 Assert.assertTrue(result.contains(TxtInformationArtifactConstants.LIST_OF_FEATURE_GROUPS));
84 private InformationArtifactData initArtifactData() {
85 InformationArtifactData informationArtifactData = new InformationArtifactData();
87 informationArtifactData.setVspDetails(initVspDetails());
89 informationArtifactData.setVspQuestionnaire(initVspQuestionnaire());
90 informationArtifactData.setComponentQuestionnaires(initComponentQuestionnaires());
91 informationArtifactData.setNicQuestionnaires(initNicQuestionnaires());
92 return informationArtifactData;
95 private List<NicQuestionnaire> initNicQuestionnaires() {
96 List<NicQuestionnaire> nicQuestionnaires = new ArrayList<>();
97 NicQuestionnaire nic1 = new NicQuestionnaire();
98 NicQuestionnaire nic2 = new NicQuestionnaire();
99 nic1 = initNicQuestionnaire();
100 nic2 = initNicQuestionnaire();
101 nicQuestionnaires.add(nic1);
102 nicQuestionnaires.add(nic2);
103 return nicQuestionnaires;
107 private NicQuestionnaire initNicQuestionnaire() {
108 NicQuestionnaire nic = new NicQuestionnaire();
109 Network network = new Network();
110 network.setNetworkDescription(NETWORK_DESC);
111 nic.setNetwork(network);
113 IpConfiguration ipconfig = new IpConfiguration();
114 ipconfig.setIpv4Required(true);
115 ipconfig.setIpv6Required(false);
117 nic.setIpConfiguration(ipconfig);
119 Protocols protocols = new Protocols();
120 List<String> protocolsList = new ArrayList<>();
121 protocolsList.add("45");
122 protocolsList.add("55");
123 protocolsList.add("HTTP");
124 protocols.setProtocols(protocolsList);
126 nic.setProtocols(protocols);
131 private List<ComponentQuestionnaire> initComponentQuestionnaires() {
132 List<ComponentQuestionnaire> componentQuestionnaires = new ArrayList<>();
133 ComponentQuestionnaire componentQuestionnaire1 = new ComponentQuestionnaire();
134 ComponentQuestionnaire componentQuestionnaire2 = new ComponentQuestionnaire();
136 componentQuestionnaire1 = initComponent();
137 componentQuestionnaire2 = initComponent();
139 componentQuestionnaires.add(componentQuestionnaire1);
140 componentQuestionnaires.add(componentQuestionnaire2);
142 return componentQuestionnaires;
145 private ComponentQuestionnaire initComponent() {
146 ComponentQuestionnaire componentQuestionnaire = new ComponentQuestionnaire();
147 org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.general.General general =
148 new org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.general.General();
149 Hypervisor hypervisor = new Hypervisor();
150 hypervisor.setDrivers("driving drivers");
151 hypervisor.setHypervisor(HYPERVIZOR_NAME);
152 general.setHypervisor(hypervisor);
153 Recovery recovery = new Recovery();
154 recovery.setPointObjective(22);
155 recovery.setTimeObjective(33);
156 general.setRecovery(recovery);
157 componentQuestionnaire.setGeneral(
159 org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.network.Network net =
160 new org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.network.Network();
161 net.setNetworkCapacity(new NetworkCapacity());
162 componentQuestionnaire.setNetwork(net);
163 Compute compute = new Compute();
164 GuestOS guestOS = new GuestOS();
165 guestOS.setBitSize(32);
166 guestOS.setTools(TOOLS);
167 guestOS.setName("Ubuntu");
168 compute.setGuestOS(guestOS);
169 NumOfVMs numOfVMs = new NumOfVMs();
170 numOfVMs.setMaximum(256);
171 numOfVMs.setMinimum(2);
172 compute.setNumOfVMs(numOfVMs);
173 componentQuestionnaire.setCompute(compute);
175 return componentQuestionnaire;
178 private VspQuestionnaire initVspQuestionnaire() {
179 VspQuestionnaire vspQuestionnaire = new VspQuestionnaire();
180 Availability availability = new Availability();
181 availability.setUseAvailabilityZonesForHighAvailability(true);
182 General general = new General();
183 general.setAvailability(availability);
185 StorageDataReplication storageDataReplication = new StorageDataReplication();
186 storageDataReplication.setStorageReplicationAcrossRegion(true);
187 storageDataReplication.setStorageReplicationDestination("in a galaxy far, far away");
188 storageDataReplication.setStorageReplicationFrequency(6);
189 storageDataReplication.setStorageReplicationSize(128);
190 storageDataReplication.setStorageReplicationSource("here below");
191 general.setStorageDataReplication(storageDataReplication);
192 vspQuestionnaire.setGeneral(general);
193 return vspQuestionnaire;
196 private VspDetails initVspDetails() {
197 VspDetails vspDetails = new VspDetails();
198 vspDetails.setCategory("vspCategory");
199 vspDetails.setDescription("described");
200 vspDetails.setName("vsp named Alice");
201 vspDetails.setVendorName("Fortigate");
202 vspDetails.setVersion(new Version(0, 79));
203 vspDetails.setVlmVersion(new Version(0, 1));
204 vspDetails.setLicenseAgreement("the usual license agreement");
205 List<String> featureGroups = new ArrayList<>();
206 featureGroups.add("first feature group");
207 featureGroups.add("one too many feature group");
208 featureGroups.add("the very last feature group");
209 vspDetails.setFeatureGroups(featureGroups);
210 vspDetails.setOnboardingMethod("HEAT");