9f2f733a647a8b52d295fbda36678fd472a21354
[sdc.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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.openecomp.sdc.vendorsoftwareproduct.informationArtifact.impl;
22
23
24 import static org.mockito.Matchers.anyObject;
25 import static org.mockito.Matchers.anyString;
26 import static org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.impl.TxtInformationArtifactConstants.HEADER;
27 import static org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.impl.TxtInformationArtifactConstants.VFC_COMPUTE_CPU_OVER_SUBSCRIPTION;
28
29 import org.junit.Assert;
30 import org.mockito.InjectMocks;
31 import org.mockito.Mock;
32 import org.mockito.Mockito;
33 import org.mockito.MockitoAnnotations;
34 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
35 import org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.InformationArtifactData;
36 import org.openecomp.sdc.vendorsoftwareproduct.questionnaire.QuestionnaireDataService;
37 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.ComponentQuestionnaire;
38 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.compute.Compute;
39 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.compute.GuestOS;
40 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.compute.NumOfVMs;
41 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.general.Hypervisor;
42 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.general.Recovery;
43 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.network.NetworkCapacity;
44 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.nic.IpConfiguration;
45 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.nic.Network;
46 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.nic.NicQuestionnaire;
47 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.nic.Protocols;
48 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.vsp.VspQuestionnaire;
49 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.vsp.general.Availability;
50 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.vsp.general.General;
51 import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.vsp.general.StorageDataReplication;
52 import org.openecomp.sdc.versioning.dao.types.Version;
53 import org.testng.annotations.BeforeMethod;
54 import org.testng.annotations.Test;
55
56 import java.io.IOException;
57 import java.util.ArrayList;
58 import java.util.List;
59
60 public class TxtInformationArtifactGeneratorImplTest {
61
62   private static final String NETWORK_DESC = "\"network desc\"";
63   private static final String HYPERVIZOR_NAME = "\"hyper hyper hypervizor\"";
64   private static final String TOOLS ="all tools possible" ;
65   @Mock
66   QuestionnaireDataService questionnaireDataServiceMock;
67   @InjectMocks
68   TxtInformationArtifactGeneratorImpl informationArtifactGenerator;
69
70   /*
71
72   @BeforeMethod(alwaysRun = true)
73   public void injectDoubles() {
74     MockitoAnnotations.initMocks(this);
75
76 //    InformationArtifactData returnedQuestionnaire = new InformationArtifactData();
77 //    Mockito.when(questionnaireDataServiceMock.generateQuestionnaireDataForInformationArtifact
78 //        (anyString(), anyObject()))
79 //        .thenReturn(returnedQuestionnaire);
80 //
81
82   }
83
84   @Test
85   public void testRoundVersion(){
86     Version version = new Version(2,1);
87     String rounded = TxtInformationArtifactGeneratorImpl.roundVersionAsNeeded(version);
88     Assert.assertEquals("3.0",rounded);
89
90     version = Version.valueOf("2.0");
91      rounded = TxtInformationArtifactGeneratorImpl.roundVersionAsNeeded(version);
92     Assert.assertEquals("2.0",rounded);
93
94   }
95
96   @Test
97   public void testArtifactCreation() throws IOException {
98     InformationArtifactData informationArtifactData = initArtifactData();
99     Mockito.when(questionnaireDataServiceMock.generateQuestionnaireDataForInformationArtifact
100         (anyString(), anyObject()))
101         .thenReturn(informationArtifactData);
102
103
104     String result = informationArtifactGenerator.generate("vsp", new Version(0, 1));
105     System.out.println("result = \n" + result);
106
107     Assert.assertTrue(result.contains(HYPERVIZOR_NAME));
108     Assert.assertTrue(result.contains(HEADER));
109     Assert.assertTrue(result.contains(VFC_COMPUTE_CPU_OVER_SUBSCRIPTION));
110     Assert.assertTrue(result.contains(TOOLS));
111     Assert.assertTrue(result.contains(TxtInformationArtifactConstants.LICENSE_AGREEMENT_NAME));
112     Assert.assertTrue(result.contains(TxtInformationArtifactConstants.LIST_OF_FEATURE_GROUPS));
113
114   }
115
116   private InformationArtifactData initArtifactData() {
117     InformationArtifactData informationArtifactData = new InformationArtifactData();
118
119     informationArtifactData.setVspDetails(initVspDetails());
120
121     informationArtifactData.setVspQuestionnaire(initVspQuestionnaire());
122     informationArtifactData.setComponentQuestionnaires(initComponentQuestionnaires());
123     informationArtifactData.setNicQuestionnaires(initNicQuestionnaires());
124     return informationArtifactData;
125   }
126
127   private List<NicQuestionnaire> initNicQuestionnaires() {
128     List<NicQuestionnaire> nicQuestionnaires = new ArrayList<>();
129     NicQuestionnaire nic1 = new NicQuestionnaire();
130     NicQuestionnaire nic2 = new NicQuestionnaire();
131     nic1 = initNicQuestionnaire();
132     nic2 = initNicQuestionnaire();
133     nicQuestionnaires.add(nic1);
134     nicQuestionnaires.add(nic2);
135     return nicQuestionnaires;
136
137   }
138
139   private NicQuestionnaire initNicQuestionnaire() {
140     NicQuestionnaire nic = new NicQuestionnaire();
141     Network network = new Network();
142     network.setNetworkDescription(NETWORK_DESC);
143     nic.setNetwork(network);
144
145     IpConfiguration ipconfig = new IpConfiguration();
146     ipconfig.setIpv4Required(true);
147     ipconfig.setIpv6Required(false);
148
149     nic.setIpConfiguration(ipconfig);
150
151     Protocols protocols = new Protocols();
152     List<String> protocolsList = new ArrayList<>();
153     protocolsList.add("45");
154     protocolsList.add("55");
155     protocolsList.add("HTTP");
156     protocols.setProtocols(protocolsList);
157
158     nic.setProtocols(protocols);
159
160     return nic;
161   }
162
163   private List<ComponentQuestionnaire> initComponentQuestionnaires() {
164     List<ComponentQuestionnaire> componentQuestionnaires = new ArrayList<>();
165     ComponentQuestionnaire componentQuestionnaire1 = new ComponentQuestionnaire();
166     ComponentQuestionnaire componentQuestionnaire2 = new ComponentQuestionnaire();
167
168     componentQuestionnaire1 = initComponent();
169     componentQuestionnaire2 = initComponent();
170
171     componentQuestionnaires.add(componentQuestionnaire1);
172     componentQuestionnaires.add(componentQuestionnaire2);
173
174     return componentQuestionnaires;
175   }
176
177   private ComponentQuestionnaire initComponent() {
178     ComponentQuestionnaire componentQuestionnaire = new ComponentQuestionnaire();
179     org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.general.General general =
180         new org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.general.General();
181     Hypervisor hypervisor = new Hypervisor();
182     hypervisor.setDrivers("driving drivers");
183     hypervisor.setHypervisor(HYPERVIZOR_NAME);
184     general.setHypervisor(hypervisor);
185     Recovery recovery = new Recovery();
186     recovery.setPointObjective(22);
187     recovery.setTimeObjective(33);
188     general.setRecovery(recovery);
189     componentQuestionnaire.setGeneral(
190         general);
191     org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.network.Network net =
192         new org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.network.Network();
193     net.setNetworkCapacity(new NetworkCapacity());
194     componentQuestionnaire.setNetwork(net);
195     Compute compute = new Compute();
196     GuestOS guestOS = new GuestOS();
197     guestOS.setBitSize(32);
198     guestOS.setTools(TOOLS);
199     guestOS.setName("Ubuntu");
200     compute.setGuestOS(guestOS);
201     NumOfVMs numOfVMs = new NumOfVMs();
202     numOfVMs.setMaximum(256);
203     numOfVMs.setMinimum(2);
204     compute.setNumOfVMs(numOfVMs);
205     componentQuestionnaire.setCompute(compute);
206
207     return componentQuestionnaire;
208   }
209
210   private VspQuestionnaire initVspQuestionnaire() {
211     VspQuestionnaire vspQuestionnaire = new VspQuestionnaire();
212     Availability availability = new Availability();
213     availability.setUseAvailabilityZonesForHighAvailability(true);
214     General general = new General();
215     general.setAvailability(availability);
216
217     StorageDataReplication storageDataReplication = new StorageDataReplication();
218     storageDataReplication.setStorageReplicationAcrossRegion(true);
219     storageDataReplication.setStorageReplicationDestination("in a galaxy far, far away");
220     storageDataReplication.setStorageReplicationFrequency(6);
221     storageDataReplication.setStorageReplicationSize(128);
222     storageDataReplication.setStorageReplicationSource("here below");
223     general.setStorageDataReplication(storageDataReplication);
224     vspQuestionnaire.setGeneral(general);
225     return vspQuestionnaire;
226   }
227
228   private VspDetails initVspDetails() {
229     VspDetails vspDetails = new VspDetails();
230     vspDetails.setCategory("vspCategory");
231     vspDetails.setDescription("described");
232     vspDetails.setName("vsp named Alice");
233     vspDetails.setVendorName("Fortigate");
234     vspDetails.setVersion(new Version(0, 79));
235     vspDetails.setVlmVersion(new Version(0, 1));
236     vspDetails.setLicenseAgreement("the usual license agreement");
237     List<String> featureGroups = new ArrayList<>();
238     featureGroups.add("first feature group");
239     featureGroups.add("one too many feature group");
240     featureGroups.add("the very last feature group");
241     vspDetails.setFeatureGroups(featureGroups);
242     vspDetails.setOnboardingMethod("HEAT");
243     return vspDetails;
244   }
245
246   */
247
248 }