Add collaboration feature
[sdc.git] / openecomp-be / lib / openecomp-sdc-vendor-software-product-lib / openecomp-sdc-vendor-software-product-core / src / test / java / org / openecomp / sdc / vendorsoftwareproduct / informationArtifact / impl / TxtInformationArtifactGeneratorImplTest.java
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 org.mockito.InjectMocks;
25 import org.mockito.Mock;
26 import org.openecomp.sdc.vendorsoftwareproduct.questionnaire.QuestionnaireDataService;
27
28 public class TxtInformationArtifactGeneratorImplTest {
29
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" ;
33   @Mock
34   QuestionnaireDataService questionnaireDataServiceMock;
35   @InjectMocks
36   TxtInformationArtifactGeneratorImpl informationArtifactGenerator;
37
38   /*
39
40   @BeforeMethod(alwaysRun = true)
41   public void injectDoubles() {
42     MockitoAnnotations.initMocks(this);
43
44 //    InformationArtifactData returnedQuestionnaire = new InformationArtifactData();
45 //    Mockito.when(questionnaireDataServiceMock.generateQuestionnaireDataForInformationArtifact
46 //        (anyString(), anyObject()))
47 //        .thenReturn(returnedQuestionnaire);
48 //
49
50   }
51
52   @Test
53   public void testRoundVersion(){
54     Version version = new Version(2,1);
55     String rounded = TxtInformationArtifactGeneratorImpl.roundVersionAsNeeded(version);
56     Assert.assertEquals("3.0",rounded);
57
58     version = Version.valueOf("2.0");
59      rounded = TxtInformationArtifactGeneratorImpl.roundVersionAsNeeded(version);
60     Assert.assertEquals("2.0",rounded);
61
62   }
63
64   @Test
65   public void testArtifactCreation() throws IOException {
66     InformationArtifactData informationArtifactData = initArtifactData();
67     Mockito.when(questionnaireDataServiceMock.generateQuestionnaireDataForInformationArtifact
68         (anyString(), anyObject()))
69         .thenReturn(informationArtifactData);
70
71
72     String result = informationArtifactGenerator.generate("vsp", new Version(0, 1));
73     System.out.println("result = \n" + result);
74
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));
81
82   }
83
84   private InformationArtifactData initArtifactData() {
85     InformationArtifactData informationArtifactData = new InformationArtifactData();
86
87     informationArtifactData.setVspDetails(initVspDetails());
88
89     informationArtifactData.setVspQuestionnaire(initVspQuestionnaire());
90     informationArtifactData.setComponentQuestionnaires(initComponentQuestionnaires());
91     informationArtifactData.setNicQuestionnaires(initNicQuestionnaires());
92     return informationArtifactData;
93   }
94
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;
104
105   }
106
107   private NicQuestionnaire initNicQuestionnaire() {
108     NicQuestionnaire nic = new NicQuestionnaire();
109     Network network = new Network();
110     network.setNetworkDescription(NETWORK_DESC);
111     nic.setNetwork(network);
112
113     IpConfiguration ipconfig = new IpConfiguration();
114     ipconfig.setIpv4Required(true);
115     ipconfig.setIpv6Required(false);
116
117     nic.setIpConfiguration(ipconfig);
118
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);
125
126     nic.setProtocols(protocols);
127
128     return nic;
129   }
130
131   private List<ComponentQuestionnaire> initComponentQuestionnaires() {
132     List<ComponentQuestionnaire> componentQuestionnaires = new ArrayList<>();
133     ComponentQuestionnaire componentQuestionnaire1 = new ComponentQuestionnaire();
134     ComponentQuestionnaire componentQuestionnaire2 = new ComponentQuestionnaire();
135
136     componentQuestionnaire1 = initComponent();
137     componentQuestionnaire2 = initComponent();
138
139     componentQuestionnaires.add(componentQuestionnaire1);
140     componentQuestionnaires.add(componentQuestionnaire2);
141
142     return componentQuestionnaires;
143   }
144
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(
158         general);
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);
174
175     return componentQuestionnaire;
176   }
177
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);
184
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;
194   }
195
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");
211     return vspDetails;
212   }
213
214   */
215
216 }