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.onap.so.apihandlerinfra;
 
  23 import static org.junit.Assert.assertEquals;
 
  24 import static org.junit.Assert.assertNotNull;
 
  25 import static org.mockito.Mockito.doReturn;
 
  26 import java.io.IOException;
 
  27 import java.io.StringReader;
 
  28 import java.nio.file.Files;
 
  29 import java.nio.file.Paths;
 
  30 import java.util.Arrays;
 
  31 import java.util.Collection;
 
  32 import java.util.HashMap;
 
  33 import javax.ws.rs.core.HttpHeaders;
 
  34 import javax.ws.rs.core.Response;
 
  35 import javax.xml.parsers.DocumentBuilder;
 
  36 import javax.xml.parsers.DocumentBuilderFactory;
 
  37 import org.apache.http.HttpStatus;
 
  38 import org.junit.Before;
 
  39 import org.junit.ClassRule;
 
  40 import org.junit.Rule;
 
  41 import org.junit.Test;
 
  42 import org.junit.rules.ExpectedException;
 
  43 import org.junit.runner.RunWith;
 
  44 import org.mockito.InjectMocks;
 
  45 import org.mockito.Mock;
 
  46 import org.mockito.MockitoAnnotations;
 
  47 import org.onap.aai.domain.yang.Service;
 
  48 import org.onap.aai.domain.yang.Tenant;
 
  49 import org.onap.so.apihandler.common.ErrorNumbers;
 
  50 import org.onap.so.apihandlerinfra.infra.rest.AAIDataRetrieval;
 
  51 import org.onap.so.exceptions.ValidationException;
 
  52 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
 
  53 import org.springframework.test.context.junit4.rules.SpringClassRule;
 
  54 import org.springframework.test.context.junit4.rules.SpringMethodRule;
 
  55 import org.w3c.dom.Document;
 
  56 import org.xml.sax.InputSource;
 
  57 import com.fasterxml.jackson.databind.JsonMappingException;
 
  58 import com.fasterxml.jackson.databind.ObjectMapper;
 
  59 import junitparams.JUnitParamsRunner;
 
  60 import junitparams.Parameters;
 
  62 @RunWith(JUnitParamsRunner.class)
 
  63 public class MsoRequestTest extends BaseTest {
 
  64     private ObjectMapper mapper = new ObjectMapper();
 
  65     private HashMap<String, String> instanceIdMapTest = new HashMap<String, String>();
 
  66     private ServiceInstancesRequest sir;
 
  67     private MsoRequest msoRequest;
 
  68     private Action action;
 
  69     private String version;
 
  70     private int reqVersion;
 
  71     private String originalRequestJSON;
 
  72     private String requestJSON;
 
  73     private boolean expected;
 
  74     private String expectedException;
 
  77     public static final SpringClassRule SPRING_CLASS_RULE = new SpringClassRule();
 
  80     public final SpringMethodRule springMethodRule = new SpringMethodRule();
 
  83     public ExpectedException thrown = ExpectedException.none();
 
  86     private AAIDataRetrieval aaiDataRet;
 
  89     private MsoRequest msoRequestMock;
 
  93         MockitoAnnotations.openMocks(this);
 
  96     public String inputStream(String JsonInput) throws IOException {
 
  97         JsonInput = "src/test/resources/MsoRequestTest" + JsonInput;
 
  98         String input = new String(Files.readAllBytes(Paths.get(JsonInput)));
 
 102     public String inputStreamVpnBonding(String JsonInput) throws IOException {
 
 103         JsonInput = "src/test/resources/Validation" + JsonInput;
 
 104         String input = new String(Files.readAllBytes(Paths.get(JsonInput)));
 
 108     // Tests for successful validation of incoming JSON requests through the parse method
 
 110     @Parameters(method = "successParameters")
 
 111     public void successTest(ServiceInstancesRequest sir, HashMap<String, String> instanceIdMapTest, Action action,
 
 112             int reqVersion) throws ValidationException, IOException {
 
 114         this.instanceIdMapTest = instanceIdMapTest;
 
 115         this.action = action;
 
 116         this.reqVersion = reqVersion;
 
 117         this.version = "v" + reqVersion;
 
 118         this.instanceIdMapTest.put("serviceInstanceId", "ff305d54-75b4-431b-adb2-eb6b9e5ff000");
 
 119         this.instanceIdMapTest.put("vnfInstanceId", "ff305d54-75b4-431b-adb2-eb6b9e5ff000");
 
 120         this.instanceIdMapTest.put("vfModuleInstanceId", "ff305d54-75b4-431b-adb2-eb6b9e5ff000");
 
 121         this.instanceIdMapTest.put("volumeGroupInstanceId", "ff305d54-75b4-431b-adb2-eb6b9e5ff000");
 
 122         this.instanceIdMapTest.put("networkInstanceId", "ff305d54-75b4-431b-adb2-eb6b9e5ff000");
 
 123         this.instanceIdMapTest.put("configurationInstanceId", "ff305d54-75b4-431b-adb2-eb6b9e5ff000");
 
 124         this.msoRequest = new MsoRequest();
 
 125         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
 129     private Collection<Object[]> successParameters() throws JsonMappingException, IOException {
 
 130         return Arrays.asList(new Object[][] {
 
 131                 {mapper.readValue(inputStream("/CloudConfiguration/EmptyCloudConfiguration.json"),
 
 132                         ServiceInstancesRequest.class), instanceIdMapTest, Action.updateInstance, "3"},
 
 133                 {mapper.readValue(inputStream("/ProjectAndOwningEntity/EmptyOwningEntityName.json"),
 
 134                         ServiceInstancesRequest.class), instanceIdMapTest, Action.createInstance, "5"},
 
 135                 {mapper.readValue(inputStream("/PlatformAndLineOfBusiness/OptionalLineOfBusiness.json"),
 
 136                         ServiceInstancesRequest.class), instanceIdMapTest, Action.createInstance, "6"},
 
 137                 {mapper.readValue(inputStream("/ProjectAndOwningEntity/OptionalProject.json"),
 
 138                         ServiceInstancesRequest.class), instanceIdMapTest, Action.createInstance, "6"},
 
 139                 {mapper.readValue(inputStream("/PlatformAndLineOfBusiness/PlatformTest.json"),
 
 140                         ServiceInstancesRequest.class), instanceIdMapTest, Action.updateInstance, "5"},
 
 141                 {mapper.readValue(inputStream("/RequestInfo/EmptyRequestorId.json"), ServiceInstancesRequest.class),
 
 142                         instanceIdMapTest, Action.createInstance, "3"},
 
 143                 {mapper.readValue(inputStream("/RequestInfo/ServiceProductFamilyIdFlag.json"),
 
 144                         ServiceInstancesRequest.class), instanceIdMapTest, Action.updateInstance, "5"},
 
 145                 {mapper.readValue(inputStream("/RequestInfo/ServiceProductFamilyIdUpdate.json"),
 
 146                         ServiceInstancesRequest.class), instanceIdMapTest, Action.updateInstance, "5"},
 
 147                 {mapper.readValue(inputStream("/ModelInfo/ModelCustomizationIdUsingPreload.json"),
 
 148                         ServiceInstancesRequest.class), instanceIdMapTest, Action.replaceInstance, "5"},
 
 149                 {mapper.readValue(inputStream("/ModelInfo/ModelInvariantIdConfigurationDelete.json"),
 
 150                         ServiceInstancesRequest.class), instanceIdMapTest, Action.deleteInstance, "3"},
 
 151                 {mapper.readValue(inputStream("/ModelInfo/ModelInvariantIdService.json"),
 
 152                         ServiceInstancesRequest.class), instanceIdMapTest, Action.deactivateInstance, "4"},
 
 153                 {mapper.readValue(inputStream("/ModelInfo/ModelVersionNetwork.json"), ServiceInstancesRequest.class),
 
 154                         instanceIdMapTest, Action.deleteInstance, "3"},
 
 155                 {mapper.readValue(inputStream("/ModelInfo/VnfModelCustomizationIdEmpty.json"),
 
 156                         ServiceInstancesRequest.class), instanceIdMapTest, Action.deleteInstance, "5"},
 
 157                 {mapper.readValue(inputStream("/ModelInfo/VnfModelCustomizationNameNull.json"),
 
 158                         ServiceInstancesRequest.class), instanceIdMapTest, Action.replaceInstance, "5"},
 
 159                 {mapper.readValue(inputStream("/ModelInfo/VnfModelCustomizationTest.json"),
 
 160                         ServiceInstancesRequest.class), instanceIdMapTest, Action.replaceInstance, "5"},
 
 161                 {mapper.readValue(inputStream("/ModelInfo/ServiceModelNameEmptyOnActivate.json"),
 
 162                         ServiceInstancesRequest.class), instanceIdMapTest, Action.activateInstance, "2"},
 
 163                 {mapper.readValue(inputStream("/ModelInfo/ServiceModelNameEmptyOnDelete.json"),
 
 164                         ServiceInstancesRequest.class), instanceIdMapTest, Action.deleteInstance, "2"},
 
 165                 {mapper.readValue(inputStream("/ModelInfo/ValidModelCustomizationId.json"),
 
 166                         ServiceInstancesRequest.class), instanceIdMapTest, Action.createInstance, "4"},
 
 167                 {mapper.readValue(inputStream("/ModelInfo/ValidModelCustomizationId.json"),
 
 168                         ServiceInstancesRequest.class), instanceIdMapTest, Action.replaceInstance, "5"},
 
 169                 {mapper.readValue(inputStream("/ModelInfo/ValidModelCustomizationIdService.json"),
 
 170                         ServiceInstancesRequest.class), instanceIdMapTest, Action.replaceInstance, "5"},
 
 171                 {mapper.readValue(inputStream("/RelatedInstances/RelatedInstances.json"),
 
 172                         ServiceInstancesRequest.class), instanceIdMapTest, Action.activateInstance, "5"},
 
 173                 {mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesModelInvariantId.json"),
 
 174                         ServiceInstancesRequest.class), instanceIdMapTest, Action.deleteInstance, "5"},
 
 175                 {mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesVfModule.json"),
 
 176                         ServiceInstancesRequest.class), instanceIdMapTest, Action.activateInstance, "5"},
 
 177                 {mapper.readValue(inputStream("/SuccessfulValidation/ServiceInPlaceSoftwareUpdate.json"),
 
 178                         ServiceInstancesRequest.class), instanceIdMapTest, Action.inPlaceSoftwareUpdate, "6"},
 
 179                 {mapper.readValue(inputStream("/SuccessfulValidation/ServiceInPlaceSoftwareUpdate.json"),
 
 180                         ServiceInstancesRequest.class), instanceIdMapTest, Action.applyUpdatedConfig, "6"},
 
 181                 {mapper.readValue(inputStream("/SuccessfulValidation/v5EnableService.json"),
 
 182                         ServiceInstancesRequest.class), instanceIdMapTest, Action.enablePort, "5"},
 
 183                 {mapper.readValue(inputStream("/SuccessfulValidation/VnfActivate.json"), ServiceInstancesRequest.class),
 
 184                         instanceIdMapTest, Action.activateInstance, "6"},
 
 185                 {mapper.readValue(inputStream("/RequestParameters/VnfRequestParameters.json"),
 
 186                         ServiceInstancesRequest.class), instanceIdMapTest, Action.deleteInstance, "6"},
 
 187                 {mapper.readValue(inputStream("/SuccessfulValidation/v3DeleteNetwork.json"),
 
 188                         ServiceInstancesRequest.class), instanceIdMapTest, Action.deleteInstance, "3"},
 
 189                 {mapper.readValue(inputStream("/SuccessfulValidation/v3UpdateNetwork.json"),
 
 190                         ServiceInstancesRequest.class), instanceIdMapTest, Action.updateInstance, "3"},
 
 191                 {mapper.readValue(inputStream("/SuccessfulValidation/v5CreateConfiguration.json"),
 
 192                         ServiceInstancesRequest.class), instanceIdMapTest, Action.createInstance, "5"},
 
 193                 {mapper.readValue(inputStream("/SuccessfulValidation/v6CreateConfiguration.json"),
 
 194                         ServiceInstancesRequest.class), instanceIdMapTest, Action.createInstance, "6"},
 
 195                 {mapper.readValue(inputStream("/SuccessfulValidation/v5EnableConfiguration.json"),
 
 196                         ServiceInstancesRequest.class), instanceIdMapTest, Action.enablePort, "5"},
 
 197                 {mapper.readValue(inputStream("/SuccessfulValidation/v5EnableConfiguration.json"),
 
 198                         ServiceInstancesRequest.class), instanceIdMapTest, Action.disablePort, "5"},
 
 199                 {mapper.readValue(inputStream("/SuccessfulValidation/v5ActivateConfiguration.json"),
 
 200                         ServiceInstancesRequest.class), instanceIdMapTest, Action.activateInstance, "5"},
 
 201                 {mapper.readValue(inputStream("/RelatedInstances/v5ActivateNoRelatedInstance.json"),
 
 202                         ServiceInstancesRequest.class), instanceIdMapTest, Action.activateInstance, "5"},
 
 203                 {mapper.readValue(inputStream("/SuccessfulValidation/v5DeactivateConfiguration.json"),
 
 204                         ServiceInstancesRequest.class), instanceIdMapTest, Action.deactivateInstance, "5"},
 
 205                 {mapper.readValue(inputStream("/RelatedInstances/v5DeactivateNoRelatedInstance.json"),
 
 206                         ServiceInstancesRequest.class), instanceIdMapTest, Action.deactivateInstance, "5"},
 
 207                 {mapper.readValue(inputStream("/SuccessfulValidation/v6AddRelationships.json"),
 
 208                         ServiceInstancesRequest.class), instanceIdMapTest, Action.addRelationships, "6"},
 
 209                 {mapper.readValue(inputStream("/SuccessfulValidation/UserParams.json"), ServiceInstancesRequest.class),
 
 210                         instanceIdMapTest, Action.addRelationships, "5"},
 
 211                 {mapper.readValue(inputStream("/SuccessfulValidation/ServiceAssign.json"),
 
 212                         ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, "7"},
 
 213                 {mapper.readValue(inputStream("/RelatedInstances/ServiceInstanceVpnBondingService.json"),
 
 214                         ServiceInstancesRequest.class), instanceIdMapTest, Action.createInstance, "7"},
 
 215                 {mapper.readValue(inputStream("/SuccessfulValidation/ServiceUnassign.json"),
 
 216                         ServiceInstancesRequest.class), instanceIdMapTest, Action.unassignInstance, "7"}});
 
 220     @Parameters(method = "customWorkflowSuccessParameters")
 
 221     public void customWorkflowSuccessTest(ServiceInstancesRequest sir, HashMap<String, String> instanceIdMapTest,
 
 222             Action action, int reqVersion) throws ValidationException, IOException {
 
 224         this.instanceIdMapTest = instanceIdMapTest;
 
 225         this.action = action;
 
 226         this.reqVersion = reqVersion;
 
 227         this.version = "v" + reqVersion;
 
 228         this.instanceIdMapTest.put("serviceInstanceId", "ff305d54-75b4-431b-adb2-eb6b9e5ff000");
 
 229         this.instanceIdMapTest.put("vnfInstanceId", "ff305d54-75b4-431b-adb2-eb6b9e5ff000");
 
 230         this.instanceIdMapTest.put("workflowUuid", "ff305d54-75b4-431b-adb2-eb6b9e5ff000");
 
 231         this.msoRequest = new MsoRequest();
 
 232         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
 236     private Collection<Object[]> customWorkflowSuccessParameters() throws JsonMappingException, IOException {
 
 237         return Arrays.asList(
 
 238                 new Object[][] {{mapper.readValue(inputStream("/SuccessfulValidation/v1ExecuteCustomWorkflow.json"),
 
 239                         ServiceInstancesRequest.class), instanceIdMapTest, Action.inPlaceSoftwareUpdate, "1"}
 
 245     @Parameters(method = "aLaCarteParameters")
 
 246     public void aLaCarteFlagTest(boolean expected, ServiceInstancesRequest sir) {
 
 247         this.expected = expected;
 
 249         this.msoRequest = new MsoRequest();
 
 250         assertEquals(expected, msoRequest.getAlacarteFlag(sir));
 
 254     private Collection<Object[]> aLaCarteParameters() throws IOException {
 
 255         return Arrays.asList(new Object[][] {
 
 256                 {false, mapper.readValue(inputStream("/RequestParameters/RequestParametersNull.json"),
 
 257                         ServiceInstancesRequest.class)},
 
 258                 {true, mapper.readValue(inputStream("/RequestParameters/RequestParametersALaCarteTrue.json"),
 
 259                         ServiceInstancesRequest.class)}});
 
 262     // Tests various scenarios ensuring that requests containing missing or invalid information will throw a
 
 263     // ValidationException
 
 265     @Parameters(method = "validationParameters")
 
 266     public void validationFailureTest(String expectedException, ServiceInstancesRequest sir,
 
 267             HashMap<String, String> instanceIdMapTest, Action action, int reqVersion)
 
 268             throws IOException, ValidationException {
 
 269         this.expectedException = expectedException;
 
 271         this.instanceIdMapTest = instanceIdMapTest;
 
 272         this.action = action;
 
 273         this.reqVersion = reqVersion;
 
 274         this.version = "v" + reqVersion;
 
 275         this.instanceIdMapTest.put("serviceInstanceId", "ff305d54-75b4-431b-adb2-eb6b9e5ff000");
 
 276         this.instanceIdMapTest.put("vnfInstanceId", "ff305d54-75b4-431b-adb2-eb6b9e5ff000");
 
 277         this.instanceIdMapTest.put("instanceGroupId", "ff305d54-75b4-431b-adb2-eb6b9e5ff000");
 
 278         thrown.expect(ValidationException.class);
 
 279         thrown.expectMessage(expectedException);
 
 280         this.msoRequest = new MsoRequest();
 
 281         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
 285     private Collection<Object[]> validationParameters() throws IOException {
 
 286         return Arrays.asList(new Object[][] {
 
 287                 // ValidationException for CloudConfiguration
 
 288                 {"No valid cloudConfiguration is specified",
 
 289                         mapper.readValue(inputStream("/CloudConfiguration/CloudConfiguration.json"),
 
 290                                 ServiceInstancesRequest.class),
 
 291                         instanceIdMapTest, Action.createInstance, 4},
 
 292                 {"No valid cloudConfiguration is specified",
 
 293                         mapper.readValue(inputStream("/CloudConfiguration/CloudConfigurationNetwork.json"),
 
 294                                 ServiceInstancesRequest.class),
 
 295                         instanceIdMapTest, Action.createInstance, 5},
 
 296                 {"No valid cloudConfiguration is specified",
 
 297                         mapper.readValue(inputStream("/CloudConfiguration/CloudConfigurationConfig.json"),
 
 298                                 ServiceInstancesRequest.class),
 
 299                         instanceIdMapTest, Action.enablePort, 5},
 
 300                 {"No valid cloudConfiguration is specified",
 
 302                                 inputStream("/CloudConfiguration/InPlaceSoftwareUpdateCloudConfiguration.json"),
 
 303                                 ServiceInstancesRequest.class),
 
 304                         instanceIdMapTest, Action.inPlaceSoftwareUpdate, 6},
 
 305                 {"No valid cloudConfiguration is specified",
 
 307                                 inputStream("/CloudConfiguration/DeactivateAndCloudDeleteCloudConfiguration.json"),
 
 308                                 ServiceInstancesRequest.class),
 
 309                         instanceIdMapTest, Action.deactivateAndCloudDelete, 7},
 
 310                 {"No valid cloudConfiguration is specified",
 
 311                         mapper.readValue(inputStream("/CloudConfiguration/ScaleOutNoCloudConfig.json"),
 
 312                                 ServiceInstancesRequest.class),
 
 313                         instanceIdMapTest, Action.scaleOut, 7},
 
 314                 {"No valid cloudConfiguration is specified",
 
 315                         mapper.readValue(inputStream("/CloudConfiguration/VnfRecreateCloudConfig.json"),
 
 316                                 ServiceInstancesRequest.class),
 
 317                         instanceIdMapTest, Action.recreateInstance, 7},
 
 318                 {"No valid lcpCloudRegionId is specified",
 
 319                         mapper.readValue(inputStream("/CloudConfiguration/EmptyLcpCloudConfiguration.json"),
 
 320                                 ServiceInstancesRequest.class),
 
 321                         instanceIdMapTest, Action.createInstance, 5},
 
 322                 {"No valid lcpCloudRegionId is specified",
 
 323                         mapper.readValue(inputStream("/CloudConfiguration/InPlaceSoftwareUpdateCloudRegionId.json"),
 
 324                                 ServiceInstancesRequest.class),
 
 325                         instanceIdMapTest, Action.inPlaceSoftwareUpdate, 6},
 
 326                 {"No valid tenantId is specified",
 
 327                         mapper.readValue(inputStream("/CloudConfiguration/EmptyTenantId.json"),
 
 328                                 ServiceInstancesRequest.class),
 
 329                         instanceIdMapTest, Action.createInstance, 5},
 
 330                 {"No valid tenantId is specified",
 
 331                         mapper.readValue(inputStream("/CloudConfiguration/InPlaceSoftwareUpdateTenantId.json"),
 
 332                                 ServiceInstancesRequest.class),
 
 333                         instanceIdMapTest, Action.inPlaceSoftwareUpdate, 6},
 
 334                 // ValidationException for ModelInfo
 
 335                 {"No valid modelCustomizationId is specified",
 
 336                         mapper.readValue(inputStream("/ModelInfo/ModelCustomizationId.json"),
 
 337                                 ServiceInstancesRequest.class),
 
 338                         instanceIdMapTest, Action.replaceInstance, 5},
 
 339                 {"No valid modelCustomizationId is specified",
 
 340                         mapper.readValue(inputStream("/ModelInfo/v5CreateConfigurationModelCustomizationId.json"),
 
 341                                 ServiceInstancesRequest.class),
 
 342                         instanceIdMapTest, Action.createInstance, 5},
 
 343                 {"No valid modelCustomizationId is specified",
 
 344                         mapper.readValue(inputStream("/ModelInfo/v4CreateVfModuleMissingModelCustomizationId.json"),
 
 345                                 ServiceInstancesRequest.class),
 
 346                         instanceIdMapTest, Action.createInstance, 4},
 
 347                 {"No valid modelCustomizationId or modelCustomizationName is specified",
 
 348                         mapper.readValue(inputStream("/ModelInfo/VnfModelCustomizationId.json"),
 
 349                                 ServiceInstancesRequest.class),
 
 350                         instanceIdMapTest, Action.createInstance, 5},
 
 351                 {"No valid modelCustomizationId or modelCustomizationName is specified",
 
 352                         mapper.readValue(inputStream("/ModelInfo/VnfModelCustomizationIdPreload.json"),
 
 353                                 ServiceInstancesRequest.class),
 
 354                         instanceIdMapTest, Action.replaceInstance, 5},
 
 355                 {"No valid modelCustomizationId or modelCustomizationName is specified",
 
 356                         mapper.readValue(inputStream("/ModelInfo/ModelCustomizationName.json"),
 
 357                                 ServiceInstancesRequest.class),
 
 358                         instanceIdMapTest, Action.activateInstance, 5},
 
 359                 {"No valid modelCustomizationId or modelCustomizationName is specified",
 
 360                         mapper.readValue(inputStream("/ModelInfo/ModelCustomization.json"),
 
 361                                 ServiceInstancesRequest.class),
 
 362                         instanceIdMapTest, Action.replaceInstance, 6},
 
 363                 {"No valid modelCustomizationId or modelCustomizationName is specified",
 
 364                         mapper.readValue(inputStream("/ModelInfo/ModelCustomization.json"),
 
 365                                 ServiceInstancesRequest.class),
 
 366                         instanceIdMapTest, Action.updateInstance, 6},
 
 367                 {"No valid modelCustomizationId or modelCustomizationName is specified",
 
 368                         mapper.readValue(inputStream("/ModelInfo/VnfModelCustomizationId.json"),
 
 369                                 ServiceInstancesRequest.class),
 
 370                         instanceIdMapTest, Action.replaceInstance, 5},
 
 371                 {"No valid modelCustomizationId or modelCustomizationName is specified",
 
 372                         mapper.readValue(inputStream("/ModelInfo/VnfRecreateNoModelCustomizationId.json"),
 
 373                                 ServiceInstancesRequest.class),
 
 374                         instanceIdMapTest, Action.recreateInstance, 7},
 
 375                 {"No valid modelCustomizationId is specified",
 
 376                         mapper.readValue(inputStream("/ModelInfo/ScaleOutNoModelCustomizationId.json"),
 
 377                                 ServiceInstancesRequest.class),
 
 378                         instanceIdMapTest, Action.scaleOut, 7},
 
 379                 {"No valid model-info is specified",
 
 380                         mapper.readValue(inputStream("/ModelInfo/ModelInfoNull.json"), ServiceInstancesRequest.class),
 
 381                         instanceIdMapTest, Action.createInstance, 5},
 
 382                 {"No valid modelInvariantId format is specified",
 
 383                         mapper.readValue(inputStream("/ModelInfo/InvalidModelInvariantId.json"),
 
 384                                 ServiceInstancesRequest.class),
 
 385                         instanceIdMapTest, Action.createInstance, 2},
 
 386                 {"No valid modelInvariantId is specified",
 
 387                         mapper.readValue(inputStream("/ModelInfo/ModelInvariantId.json"),
 
 388                                 ServiceInstancesRequest.class),
 
 389                         instanceIdMapTest, Action.deactivateInstance, 4},
 
 390                 {"No valid modelInvariantId is specified",
 
 391                         mapper.readValue(inputStream("/ModelInfo/v5ModelInvariantIdNetwork.json"),
 
 392                                 ServiceInstancesRequest.class),
 
 393                         instanceIdMapTest, Action.enablePort, 5},
 
 394                 {"No valid modelInvariantId is specified",
 
 395                         mapper.readValue(inputStream("/ModelInfo/v5ModelInvariantIdDisablePort.json"),
 
 396                                 ServiceInstancesRequest.class),
 
 397                         instanceIdMapTest, Action.disablePort, 5},
 
 398                 {"No valid modelInvariantId is specified",
 
 399                         mapper.readValue(inputStream("/ModelInfo/ModelInvariantIdVnf.json"),
 
 400                                 ServiceInstancesRequest.class),
 
 401                         instanceIdMapTest, Action.updateInstance, 3},
 
 402                 {"No valid modelInvariantId is specified",
 
 403                         mapper.readValue(inputStream("/ModelInfo/ModelInvariantIdConfiguration.json"),
 
 404                                 ServiceInstancesRequest.class),
 
 405                         instanceIdMapTest, Action.activateInstance, 3},
 
 406                 {"No valid modelInvariantId is specified",
 
 407                         mapper.readValue(inputStream("/ModelInfo/v5DeactivateModelInvariantId.json"),
 
 408                                 ServiceInstancesRequest.class),
 
 409                         instanceIdMapTest, Action.deactivateInstance, 5},
 
 410                 {"No valid modelInvariantId is specified",
 
 411                         mapper.readValue(inputStream("/ModelInfo/v3UpdateNetworkBad.json"),
 
 412                                 ServiceInstancesRequest.class),
 
 413                         instanceIdMapTest, Action.updateInstance, 4},
 
 414                 {"No valid modelInvariantId is specified",
 
 415                         mapper.readValue(inputStream("/ModelInfo/ScaleOutNoModelInvariantId.json"),
 
 416                                 ServiceInstancesRequest.class),
 
 417                         instanceIdMapTest, Action.scaleOut, 7},
 
 418                 {"No valid modelInvariantId is specified",
 
 419                         mapper.readValue(inputStream("/ModelInfo/VnfRecreateModelInvariantId.json"),
 
 420                                 ServiceInstancesRequest.class),
 
 421                         instanceIdMapTest, Action.recreateInstance, 7},
 
 422                 {"No valid modelName is specified",
 
 423                         mapper.readValue(inputStream("/ModelInfo/VfModuleModelName.json"),
 
 424                                 ServiceInstancesRequest.class),
 
 425                         instanceIdMapTest, Action.deleteInstance, 4},
 
 426                 {"No valid modelName is specified",
 
 427                         mapper.readValue(inputStream("/ModelInfo/ScaleOutNoModelName.json"),
 
 428                                 ServiceInstancesRequest.class),
 
 429                         instanceIdMapTest, Action.scaleOut, 7},
 
 430                 {"No valid modelName is specified",
 
 431                         mapper.readValue(inputStream("/ModelInfo/VnfRecreateModelName.json"),
 
 432                                 ServiceInstancesRequest.class),
 
 433                         instanceIdMapTest, Action.recreateInstance, 7},
 
 434                 {"No valid modelType is specified",
 
 435                         mapper.readValue(inputStream("/ModelInfo/ModelTypeNull.json"), ServiceInstancesRequest.class),
 
 436                         instanceIdMapTest, Action.createInstance, 5},
 
 437                 {"No valid modelVersion is specified",
 
 438                         mapper.readValue(inputStream("/ModelInfo/ModelVersionService.json"),
 
 439                                 ServiceInstancesRequest.class),
 
 440                         instanceIdMapTest, Action.updateInstance, 3},
 
 441                 {"No valid modelVersion is specified",
 
 442                         mapper.readValue(inputStream("/ModelInfo/ModelVersionVfModule.json"),
 
 443                                 ServiceInstancesRequest.class),
 
 444                         instanceIdMapTest, Action.createInstance, 3},
 
 445                 {"No valid modelVersion is specified",
 
 446                         mapper.readValue(inputStream("/ModelInfo/ModelVersionServiceCreate.json"),
 
 447                                 ServiceInstancesRequest.class),
 
 448                         instanceIdMapTest, Action.createInstance, 3},
 
 449                 {"No valid modelVersion is specified",
 
 450                         mapper.readValue(inputStream("/ModelInfo/ScaleOutNoModelVersion.json"),
 
 451                                 ServiceInstancesRequest.class),
 
 452                         instanceIdMapTest, Action.scaleOut, 7},
 
 453                 {"No valid modelVersion is specified",
 
 454                         mapper.readValue(inputStream("/ModelInfo/VnfRecreateModelVersion.json"),
 
 455                                 ServiceInstancesRequest.class),
 
 456                         instanceIdMapTest, Action.recreateInstance, 7},
 
 457                 {"No valid modelVersionId is specified",
 
 458                         mapper.readValue(inputStream("/ModelInfo/ModelVersionId.json"), ServiceInstancesRequest.class),
 
 459                         instanceIdMapTest, Action.createInstance, 5},
 
 460                 {"No valid modelVersionId is specified",
 
 461                         mapper.readValue(inputStream("/ModelInfo/ConfigurationModelVersionId.json"),
 
 462                                 ServiceInstancesRequest.class),
 
 463                         instanceIdMapTest, Action.activateInstance, 5},
 
 464                 {"No valid modelVersionId is specified",
 
 465                         mapper.readValue(inputStream("/ModelInfo/v2ModelVersionId.json"),
 
 466                                 ServiceInstancesRequest.class),
 
 467                         instanceIdMapTest, Action.activateInstance, 4},
 
 468                 {"No valid modelVersionId is specified",
 
 469                         mapper.readValue(inputStream("/ModelInfo/v2ModelVersionId.json"),
 
 470                                 ServiceInstancesRequest.class),
 
 471                         instanceIdMapTest, Action.deactivateInstance, 4},
 
 472                 {"No valid modelVersionId is specified",
 
 473                         mapper.readValue(inputStream("/ModelInfo/v2ModelVersionId.json"),
 
 474                                 ServiceInstancesRequest.class),
 
 475                         instanceIdMapTest, Action.updateInstance, 5},
 
 476                 {"No valid modelVersionId is specified",
 
 477                         mapper.readValue(inputStream("/ModelInfo/v2ModelVersionId.json"),
 
 478                                 ServiceInstancesRequest.class),
 
 479                         instanceIdMapTest, Action.enablePort, 5},
 
 480                 {"No valid modelVersionId is specified",
 
 481                         mapper.readValue(inputStream("/ModelInfo/v2ModelVersionId.json"),
 
 482                                 ServiceInstancesRequest.class),
 
 483                         instanceIdMapTest, Action.disablePort, 5},
 
 484                 {"No valid modelVersionId is specified",
 
 485                         mapper.readValue(inputStream("/ModelInfo/ModelVersionIdCreate.json"),
 
 486                                 ServiceInstancesRequest.class),
 
 487                         instanceIdMapTest, Action.createInstance, 5},
 
 488                 {"No valid modelVersionId is specified",
 
 489                         mapper.readValue(inputStream("/ModelInfo/v5ActivateModelVersionId.json"),
 
 490                                 ServiceInstancesRequest.class),
 
 491                         instanceIdMapTest, Action.activateInstance, 5},
 
 492                 {"No valid modelVersionId is specified",
 
 493                         mapper.readValue(inputStream("/ModelInfo/ScaleOutNoModelVersionId.json"),
 
 494                                 ServiceInstancesRequest.class),
 
 495                         instanceIdMapTest, Action.scaleOut, 7},
 
 496                 {"No valid modelVersionId is specified",
 
 497                         mapper.readValue(inputStream("/ModelInfo/VnfRecreateModelVersionId.json"),
 
 498                                 ServiceInstancesRequest.class),
 
 499                         instanceIdMapTest, Action.recreateInstance, 7},
 
 500                 {"No valid modelVersionId is specified",
 
 501                         mapper.readValue(inputStream("/ModelInfo/CreateInstanceGroupNoModelVersionId.json"),
 
 502                                 ServiceInstancesRequest.class),
 
 503                         instanceIdMapTest, Action.createInstance, 7},
 
 504                 // ValidationException for Platform and LineOfBusiness
 
 505                 {"No valid lineOfBusinessName is specified",
 
 506                         mapper.readValue(inputStream("/PlatformAndLineOfBusiness/EmptyLineOfBusiness.json"),
 
 507                                 ServiceInstancesRequest.class),
 
 508                         instanceIdMapTest, Action.createInstance, 5},
 
 509                 {"No valid platform is specified",
 
 510                         mapper.readValue(inputStream("/PlatformAndLineOfBusiness/Platform.json"),
 
 511                                 ServiceInstancesRequest.class),
 
 512                         instanceIdMapTest, Action.createInstance, 6},
 
 513                 {"No valid platformName is specified",
 
 514                         mapper.readValue(inputStream("/PlatformAndLineOfBusiness/EmptyPlatformName.json"),
 
 515                                 ServiceInstancesRequest.class),
 
 516                         instanceIdMapTest, Action.createInstance, 5},
 
 517                 // ValidationException for Project and OwningEntity
 
 518                 {"No valid owningEntity is specified",
 
 519                         mapper.readValue(inputStream("/ProjectAndOwningEntity/OwningEntity.json"),
 
 520                                 ServiceInstancesRequest.class),
 
 521                         instanceIdMapTest, Action.createInstance, 6},
 
 522                 {"No valid owningEntityId is specified",
 
 523                         mapper.readValue(inputStream("/ProjectAndOwningEntity/EmptyOwningEntityId.json"),
 
 524                                 ServiceInstancesRequest.class),
 
 525                         instanceIdMapTest, Action.createInstance, 5},
 
 526                 {"No valid projectName is specified",
 
 527                         mapper.readValue(inputStream("/ProjectAndOwningEntity/EmptyProjectName.json"),
 
 528                                 ServiceInstancesRequest.class),
 
 529                         instanceIdMapTest, Action.createInstance, 5},
 
 530                 {"No valid owningEntity is specified",
 
 531                         mapper.readValue(inputStream("/ProjectAndOwningEntity/ServiceAssignNoOE.json"),
 
 532                                 ServiceInstancesRequest.class),
 
 533                         instanceIdMapTest, Action.assignInstance, 7},
 
 534                 // ValidationException for RelatedInstances
 
 535                 {"No valid connectionPoint relatedInstance for Port Configuration is specified",
 
 536                         mapper.readValue(inputStream("/RelatedInstances/v5EnablePortNoConnectionPoint.json"),
 
 537                                 ServiceInstancesRequest.class),
 
 538                         instanceIdMapTest, Action.disablePort, 5},
 
 539                 {"No valid connectionPoint relatedInstance for Port Configuration is specified",
 
 540                         mapper.readValue(inputStream("/RelatedInstances/v5EnablePortNoConnectionPoint.json"),
 
 541                                 ServiceInstancesRequest.class),
 
 542                         instanceIdMapTest, Action.enablePort, 5},
 
 543                 {"No valid destination vnf relatedInstance for Port Configuration is specified",
 
 544                         mapper.readValue(inputStream("/RelatedInstances/v5CreateNoDestinationRelatedInstance.json"),
 
 545                                 ServiceInstancesRequest.class),
 
 546                         instanceIdMapTest, Action.createInstance, 5},
 
 547                 {"No valid instanceId format in relatedInstance is specified",
 
 548                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesIdFormat.json"),
 
 549                                 ServiceInstancesRequest.class),
 
 550                         instanceIdMapTest, Action.createInstance, 5},
 
 551                 {"No valid instanceId in relatedInstance is specified",
 
 552                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesId.json"),
 
 553                                 ServiceInstancesRequest.class),
 
 554                         instanceIdMapTest, Action.createInstance, 5},
 
 555                 {"No valid instanceName format in relatedInstance is specified",
 
 556                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesNameFormat.json"),
 
 557                                 ServiceInstancesRequest.class),
 
 558                         instanceIdMapTest, Action.createInstance, 5},
 
 559                 {"No valid instanceName in relatedInstance for pnf modelType is specified",
 
 560                         mapper.readValue(inputStream("/RelatedInstances/v6AddRelationshipsInstanceName.json"),
 
 561                                 ServiceInstancesRequest.class),
 
 562                         instanceIdMapTest, Action.removeRelationships, 6},
 
 563                 {"No valid instanceName in relatedInstance for pnf modelType is specified",
 
 564                         mapper.readValue(inputStream("/RelatedInstances/v6AddRelationshipsInstanceName.json"),
 
 565                                 ServiceInstancesRequest.class),
 
 566                         instanceIdMapTest, Action.addRelationships, 6},
 
 567                 {"No valid modelType in relatedInstance is specified",
 
 568                         mapper.readValue(inputStreamVpnBonding("/VpnBondingValidation/NoModelType.json"),
 
 569                                 ServiceInstancesRequest.class),
 
 570                         instanceIdMapTest, Action.createInstance, 7},
 
 571                 {"No valid instanceId in relatedInstance is specified",
 
 572                         mapper.readValue(inputStreamVpnBonding("/VpnBondingValidation/NoInstanceId.json"),
 
 573                                 ServiceInstancesRequest.class),
 
 574                         instanceIdMapTest, Action.createInstance, 7},
 
 575                 {"No valid instanceName in relatedInstance for vpnBinding modelType is specified",
 
 576                         mapper.readValue(inputStreamVpnBonding("/VpnBondingValidation/NoInstanceNameVpnBinding.json"),
 
 577                                 ServiceInstancesRequest.class),
 
 578                         instanceIdMapTest, Action.createInstance, 7},
 
 579                 {"No valid instanceName in relatedInstance for network modelType is specified",
 
 580                         mapper.readValue(inputStreamVpnBonding("/VpnBondingValidation/NoInstanceNameNetwork.json"),
 
 581                                 ServiceInstancesRequest.class),
 
 582                         instanceIdMapTest, Action.createInstance, 7},
 
 583                 {"No valid modelCustomizationName or modelCustomizationId in relatedInstance of vnf is specified",
 
 584                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesModelCustomizationId.json"),
 
 585                                 ServiceInstancesRequest.class),
 
 586                         instanceIdMapTest, Action.activateInstance, 5},
 
 587                 {"No valid modelInfo in relatedInstance is specified",
 
 588                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesModelInfo.json"),
 
 589                                 ServiceInstancesRequest.class),
 
 590                         instanceIdMapTest, Action.createInstance, 5},
 
 591                 {"No valid modelInvariantId format in relatedInstance is specified",
 
 592                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesModelInvariantIdFormat.json"),
 
 593                                 ServiceInstancesRequest.class),
 
 594                         instanceIdMapTest, Action.createInstance, 5},
 
 595                 {"No valid modelInvariantId in relatedInstance is specified",
 
 596                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesModelInvariantId.json"),
 
 597                                 ServiceInstancesRequest.class),
 
 598                         instanceIdMapTest, Action.createInstance, 5},
 
 599                 {"No valid modelName in relatedInstance is specified",
 
 600                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesModelName.json"),
 
 601                                 ServiceInstancesRequest.class),
 
 602                         instanceIdMapTest, Action.createInstance, 5},
 
 603                 {"No valid modelType in relatedInstance is specified",
 
 604                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesModelType.json"),
 
 605                                 ServiceInstancesRequest.class),
 
 606                         instanceIdMapTest, Action.createInstance, 5},
 
 607                 {"No valid modelVersion in relatedInstance is specified",
 
 608                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesModelVersion.json"),
 
 609                                 ServiceInstancesRequest.class),
 
 610                         instanceIdMapTest, Action.createInstance, 5},
 
 611                 {"No valid modelVersionId in relatedInstance is specified",
 
 612                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesModelVersionId.json"),
 
 613                                 ServiceInstancesRequest.class),
 
 614                         instanceIdMapTest, Action.createInstance, 5},
 
 615                 {"No valid related instances is specified",
 
 616                         mapper.readValue(inputStream("/RelatedInstances/ServiceNoRelatedInstance.json"),
 
 617                                 ServiceInstancesRequest.class),
 
 618                         instanceIdMapTest, Action.addRelationships, 2},
 
 619                 {"No valid related instances is specified",
 
 620                         mapper.readValue(inputStream("/RelatedInstances/ServiceNoRelatedInstance.json"),
 
 621                                 ServiceInstancesRequest.class),
 
 622                         instanceIdMapTest, Action.removeRelationships, 2},
 
 623                 {"No valid related instances is specified",
 
 624                         mapper.readValue(inputStream("/RelatedInstances/v5EnablePortNoRelatedInstance.json"),
 
 625                                 ServiceInstancesRequest.class),
 
 626                         instanceIdMapTest, Action.disablePort, 2},
 
 627                 {"No valid related instances is specified",
 
 628                         mapper.readValue(inputStream("/RelatedInstances/v5EnablePortNoRelatedInstance.json"),
 
 629                                 ServiceInstancesRequest.class),
 
 630                         instanceIdMapTest, Action.enablePort, 5},
 
 631                 {"No valid related instances is specified",
 
 632                         mapper.readValue(inputStream("/RelatedInstances/v5CreateNoRelatedInstances.json"),
 
 633                                 ServiceInstancesRequest.class),
 
 634                         instanceIdMapTest, Action.createInstance, 5},
 
 635                 {"No valid related instances is specified",
 
 636                         mapper.readValue(inputStream("/RelatedInstances/v4RelatedInstancesNull.json"),
 
 637                                 ServiceInstancesRequest.class),
 
 638                         instanceIdMapTest, Action.updateInstance, 4},
 
 639                 {"No valid related instances is specified",
 
 640                         mapper.readValue(inputStream("/RelatedInstances/ScaleOutNoRelatedInstances.json"),
 
 641                                 ServiceInstancesRequest.class),
 
 642                         instanceIdMapTest, Action.scaleOut, 7},
 
 643                 {"No valid related service instance for vfModule request is specified",
 
 644                         mapper.readValue(inputStream("/RelatedInstances/VfModuleRelatedInstancesService.json"),
 
 645                                 ServiceInstancesRequest.class),
 
 646                         instanceIdMapTest, Action.activateInstance, 5},
 
 647                 {"No valid related service instance for vnf request is specified",
 
 648                         mapper.readValue(inputStream("/RelatedInstances/VnfRelatedInstancesService.json"),
 
 649                                 ServiceInstancesRequest.class),
 
 650                         instanceIdMapTest, Action.activateInstance, 5},
 
 651                 {"No valid related service instance for volumeGroup request is specified",
 
 652                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesServiceInstance.json"),
 
 653                                 ServiceInstancesRequest.class),
 
 654                         instanceIdMapTest, Action.activateInstance, 5},
 
 655                 {"No valid related vnf instance for vfModule request is specified",
 
 656                         mapper.readValue(inputStream("/RelatedInstances/VfModuleRelatedInstancesVnf.json"),
 
 657                                 ServiceInstancesRequest.class),
 
 658                         instanceIdMapTest, Action.activateInstance, 5},
 
 659                 {"No valid related vnf instance for volumeGroup request is specified",
 
 660                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesVnfInstance.json"),
 
 661                                 ServiceInstancesRequest.class),
 
 662                         instanceIdMapTest, Action.activateInstance, 5},
 
 663                 {"No valid serviceInstanceId matching the serviceInstanceId in request URI is specified",
 
 664                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesInstanceId.json"),
 
 665                                 ServiceInstancesRequest.class),
 
 666                         instanceIdMapTest, Action.activateInstance, 5},
 
 667                 {"No valid serviceInstanceId matching the serviceInstanceId in request URI is specified",
 
 668                         mapper.readValue(inputStream("/RelatedInstances/v6VnfDeleteInstance.json"),
 
 669                                 ServiceInstancesRequest.class),
 
 670                         instanceIdMapTest, Action.deleteInstance, 6},
 
 671                 {"No valid source vnf relatedInstance for Port Configuration is specified",
 
 672                         mapper.readValue(inputStream("/RelatedInstances/v5CreateNoSourceRelatedInstance.json"),
 
 673                                 ServiceInstancesRequest.class),
 
 674                         instanceIdMapTest, Action.createInstance, 5},
 
 675                 {"No valid vnfInstanceId matching the vnfInstanceId in request URI is specified",
 
 676                         mapper.readValue(inputStream("/RelatedInstances/RelatedInstancesVnfInstanceId.json"),
 
 677                                 ServiceInstancesRequest.class),
 
 678                         instanceIdMapTest, Action.activateInstance, 5},
 
 679                 {"No valid instanceName format is specified",
 
 680                         mapper.readValue(inputStream("/RelatedInstances/InvalidInstanceName.json"),
 
 681                                 ServiceInstancesRequest.class),
 
 682                         instanceIdMapTest, Action.createInstance, 2},
 
 683                 {"No valid relatedInstanceList is specified",
 
 684                         mapper.readValue(inputStream("/RelatedInstances/CreateInstanceGroupNoRelatedInstances.json"),
 
 685                                 ServiceInstancesRequest.class),
 
 686                         instanceIdMapTest, Action.createInstance, 7},
 
 687                 {"No valid related service instance for instanceGroup request is specified",
 
 688                         mapper.readValue(inputStream("/RelatedInstances/CreateInstanceGroupService.json"),
 
 689                                 ServiceInstancesRequest.class),
 
 690                         instanceIdMapTest, Action.createInstance, 7},
 
 691                 {"No valid modelVersionId in relatedInstance is specified",
 
 693                                 inputStream("/RelatedInstances/CreateInstanceGroupRelatedInstanceModelVersionId.json"),
 
 694                                 ServiceInstancesRequest.class),
 
 695                         instanceIdMapTest, Action.createInstance, 7},
 
 696                 // ValidationException for RequestInfo
 
 697                 {"No valid requestInfo is specified",
 
 698                         mapper.readValue(inputStream("/RequestInfo/RequestInfoNull.json"),
 
 699                                 ServiceInstancesRequest.class),
 
 700                         instanceIdMapTest, Action.createInstance, 5},
 
 701                 {"No valid requestInfo is specified",
 
 702                         mapper.readValue(inputStream("/RequestInfo/RequestInfo.json"), ServiceInstancesRequest.class),
 
 703                         instanceIdMapTest, Action.applyUpdatedConfig, 6},
 
 704                 {"No valid requestInfo is specified",
 
 705                         mapper.readValue(inputStream("/RequestInfo/RequestInfo.json"), ServiceInstancesRequest.class),
 
 706                         instanceIdMapTest, Action.inPlaceSoftwareUpdate, 6},
 
 707                 {"No valid requestInfo is specified",
 
 708                         mapper.readValue(inputStream("/RequestInfo/ScaleOutNoRequestInfo.json"),
 
 709                                 ServiceInstancesRequest.class),
 
 710                         instanceIdMapTest, Action.scaleOut, 7},
 
 711                 {"No valid productFamilyId is specified",
 
 712                         mapper.readValue(inputStream("/RequestInfo/VnfProductFamilyId.json"),
 
 713                                 ServiceInstancesRequest.class),
 
 714                         instanceIdMapTest, Action.createInstance, 3},
 
 715                 {"No valid productFamilyId is specified",
 
 716                         mapper.readValue(inputStream("/RequestInfo/NetworkProductFamilyId.json"),
 
 717                                 ServiceInstancesRequest.class),
 
 718                         instanceIdMapTest, Action.createInstance, 3},
 
 719                 {"No valid productFamilyId is specified",
 
 720                         mapper.readValue(inputStream("/RequestInfo/NetworkProductFamilyId.json"),
 
 721                                 ServiceInstancesRequest.class),
 
 722                         instanceIdMapTest, Action.updateInstance, 3},
 
 723                 {"No valid productFamilyId is specified",
 
 724                         mapper.readValue(inputStream("/RequestInfo/ServiceProductFamilyId.json"),
 
 725                                 ServiceInstancesRequest.class),
 
 726                         instanceIdMapTest, Action.createInstance, 5},
 
 727                 {"No valid requestorId is specified",
 
 728                         mapper.readValue(inputStream("/RequestInfo/EmptyRequestorId.json"),
 
 729                                 ServiceInstancesRequest.class),
 
 730                         instanceIdMapTest, Action.createInstance, 5},
 
 731                 {"No valid requestorId is specified",
 
 732                         mapper.readValue(inputStream("/RequestInfo/RequestorId.json"), ServiceInstancesRequest.class),
 
 733                         instanceIdMapTest, Action.applyUpdatedConfig, 6},
 
 734                 {"No valid requestorId is specified",
 
 735                         mapper.readValue(inputStream("/RequestInfo/RequestorId.json"), ServiceInstancesRequest.class),
 
 736                         instanceIdMapTest, Action.inPlaceSoftwareUpdate, 6},
 
 737                 // ValidationException for RequestParameters
 
 738                 {"No valid aLaCarte in requestParameters",
 
 739                         mapper.readValue(inputStream("/RequestParameters/RequestParametersNull.json"),
 
 740                                 ServiceInstancesRequest.class),
 
 741                         instanceIdMapTest, Action.addRelationships, 4},
 
 742                 {"No valid requestParameters is specified",
 
 743                         mapper.readValue(inputStream("/RequestParameters/RequestParametersNull.json"),
 
 744                                 ServiceInstancesRequest.class),
 
 745                         instanceIdMapTest, Action.createInstance, 5},
 
 746                 {"No valid requestParameters is specified",
 
 747                         mapper.readValue(inputStream("/RequestParameters/RequestParameters.json"),
 
 748                                 ServiceInstancesRequest.class),
 
 749                         instanceIdMapTest, Action.applyUpdatedConfig, 6},
 
 750                 {"No valid requestParameters is specified",
 
 751                         mapper.readValue(inputStream("/RequestParameters/RequestParameters.json"),
 
 752                                 ServiceInstancesRequest.class),
 
 753                         instanceIdMapTest, Action.inPlaceSoftwareUpdate, 6},
 
 754                 {"No valid requestParameters is specified",
 
 755                         mapper.readValue(inputStream("/RequestParameters/AssignEmptyReqParameters.json"),
 
 756                                 ServiceInstancesRequest.class),
 
 757                         instanceIdMapTest, Action.assignInstance, 7},
 
 758                 // ValidationException for SubscriberInfo
 
 759                 {"No valid globalSubscriberId is specified",
 
 760                         mapper.readValue(inputStream("/SubscriberInfo/EmptyGlobalSubscriberId.json"),
 
 761                                 ServiceInstancesRequest.class),
 
 762                         instanceIdMapTest, Action.createInstance, 5},
 
 763                 {"No valid subscriberInfo is specified",
 
 764                         mapper.readValue(inputStream("/SubscriberInfo/EmptySubscriberInfo.json"),
 
 765                                 ServiceInstancesRequest.class),
 
 766                         instanceIdMapTest, Action.createInstance, 5},
 
 767                 {"No valid subscriptionServiceType is specified",
 
 768                         mapper.readValue(inputStream("/SubscriberInfo/EmptySubscriptionServiceType.json"),
 
 769                                 ServiceInstancesRequest.class),
 
 770                         instanceIdMapTest, Action.createInstance, 5},
 
 771                 {"No valid subscriberInfo is specified",
 
 772                         mapper.readValue(inputStream("/SubscriberInfo/AssignEmptySubscriberInfo.json"),
 
 773                                 ServiceInstancesRequest.class),
 
 774                         instanceIdMapTest, Action.assignInstance, 7},
 
 775                 // Validation for UserParams
 
 776                 {"No valid cloudConfiguration in userParams vnf resources is specified",
 
 777                         mapper.readValue(inputStream("/RequestParameters/AssignCloudConfigVnf.json"),
 
 778                                 ServiceInstancesRequest.class),
 
 779                         instanceIdMapTest, Action.assignInstance, 7},
 
 780                 {"No valid cloudConfiguration in userParams network resources is specified",
 
 781                         mapper.readValue(inputStream("/RequestParameters/NetworkCloudConfig.json"),
 
 782                                 ServiceInstancesRequest.class),
 
 783                         instanceIdMapTest, Action.assignInstance, 7},
 
 784                 {"No valid modelInfo in userParams is specified",
 
 785                         mapper.readValue(inputStream("/RequestParameters/UserParamsModelInfo.json"),
 
 786                                 ServiceInstancesRequest.class),
 
 787                         instanceIdMapTest, Action.assignInstance, 7},
 
 788                 {"No valid modelInfo in userParams vnf resources is specified",
 
 789                         mapper.readValue(inputStream("/RequestParameters/UserParamsVnfModelInfo.json"),
 
 790                                 ServiceInstancesRequest.class),
 
 791                         instanceIdMapTest, Action.assignInstance, 7},
 
 792                 {"No valid modelVersionId in userParams service modelInfo is specified",
 
 793                         mapper.readValue(inputStream("/RequestParameters/UserParamsModelVersionId.json"),
 
 794                                 ServiceInstancesRequest.class),
 
 795                         instanceIdMapTest, Action.assignInstance, 7},
 
 796                 {"No valid modelVersionId in userParams vnf resources is specified",
 
 797                         mapper.readValue(inputStream("/RequestParameters/VnfModelVersionId.json"),
 
 798                                 ServiceInstancesRequest.class),
 
 799                         instanceIdMapTest, Action.assignInstance, 7},
 
 800                 {"No valid modelVersionId in userParams vfModule resources is specified",
 
 801                         mapper.readValue(inputStream("/RequestParameters/VfModuleModelVersionId.json"),
 
 802                                 ServiceInstancesRequest.class),
 
 803                         instanceIdMapTest, Action.assignInstance, 7},
 
 804                 {"No valid modelVersionId in userParams network resources is specified",
 
 805                         mapper.readValue(inputStream("/RequestParameters/NetworkModelVersionId.json"),
 
 806                                 ServiceInstancesRequest.class),
 
 807                         instanceIdMapTest, Action.assignInstance, 7},
 
 808                 {"No valid platform in userParams vnf resources is specified",
 
 809                         mapper.readValue(inputStream("/RequestParameters/UserParamsPlatform.json"),
 
 810                                 ServiceInstancesRequest.class),
 
 811                         instanceIdMapTest, Action.assignInstance, 7},
 
 812                 {"No valid platformName in userParams vnf resources is specified",
 
 813                         mapper.readValue(inputStream("/RequestParameters/UserParamsPlatformName.json"),
 
 814                                 ServiceInstancesRequest.class),
 
 815                         instanceIdMapTest, Action.assignInstance, 7},
 
 816                 {"No valid productFamilyId in userParams vnf resources is specified",
 
 817                         mapper.readValue(inputStream("/RequestParameters/ProductFamilyId.json"),
 
 818                                 ServiceInstancesRequest.class),
 
 819                         instanceIdMapTest, Action.assignInstance, 7},
 
 820                 {"No valid vfModules in userParams vnf resources is specified",
 
 821                         mapper.readValue(inputStream("/RequestParameters/VfModules.json"),
 
 822                                 ServiceInstancesRequest.class),
 
 823                         instanceIdMapTest, Action.assignInstance, 7},
 
 824                 {"No valid modelInfo in userParams vfModules resources is specified",
 
 825                         mapper.readValue(inputStream("/RequestParameters/VfModulesModelInfo.json"),
 
 826                                 ServiceInstancesRequest.class),
 
 827                         instanceIdMapTest, Action.assignInstance, 7},
 
 828                 {"No valid modelInfo in userParams network resources is specified",
 
 829                         mapper.readValue(inputStream("/RequestParameters/Network.json"), ServiceInstancesRequest.class),
 
 830                         instanceIdMapTest, Action.assignInstance, 7},
 
 831                 {"No valid modelCustomizationId in userParams vfModule resources is specified",
 
 832                         mapper.readValue(inputStream("/RequestParameters/VfModuleModelCustomizationId.json"),
 
 833                                 ServiceInstancesRequest.class),
 
 834                         instanceIdMapTest, Action.assignInstance, 7},
 
 835                 {"No valid modelCustomizationId in userParams vnf resources is specified",
 
 836                         mapper.readValue(inputStream("/RequestParameters/VnfModelCustomizationId.json"),
 
 837                                 ServiceInstancesRequest.class),
 
 838                         instanceIdMapTest, Action.assignInstance, 7},
 
 839                 {"No valid modelCustomizationId in userParams network resources is specified",
 
 840                         mapper.readValue(inputStream("/RequestParameters/NetworkModelCustomizationId.json"),
 
 841                                 ServiceInstancesRequest.class),
 
 842                         instanceIdMapTest, Action.assignInstance, 7},
 
 843                 // Validation for ConfigurationParameters
 
 844                 {"No valid configuration parameters is specified",
 
 845                         mapper.readValue(inputStream("/ConfigurationParameters/NoConfigurationParameters.json"),
 
 846                                 ServiceInstancesRequest.class),
 
 847                         instanceIdMapTest, Action.scaleOut, 7},
 
 848                 // Validation for Add and Remove Members
 
 849                 {"No valid vnf relatedInstance is specified",
 
 850                         mapper.readValue(inputStream("/MembersValidation/RelatedInstancesVnf.json"),
 
 851                                 ServiceInstancesRequest.class),
 
 852                         instanceIdMapTest, Action.addMembers, 7},
 
 853                 {"No valid related instances is specified",
 
 854                         mapper.readValue(inputStream("/MembersValidation/RelatedInstances.json"),
 
 855                                 ServiceInstancesRequest.class),
 
 856                         instanceIdMapTest, Action.addMembers, 7},
 
 857                 {"No valid requestInfo is specified",
 
 858                         mapper.readValue(inputStream("/MembersValidation/MembersRequestInfo.json"),
 
 859                                 ServiceInstancesRequest.class),
 
 860                         instanceIdMapTest, Action.addMembers, 7},
 
 861                 {"No valid requestorId is specified",
 
 862                         mapper.readValue(inputStream("/MembersValidation/MembersRequestorId.json"),
 
 863                                 ServiceInstancesRequest.class),
 
 864                         instanceIdMapTest, Action.addMembers, 7},
 
 865                 {"No valid source is specified",
 
 866                         mapper.readValue(inputStream("/MembersValidation/AddMembersSource.json"),
 
 867                                 ServiceInstancesRequest.class),
 
 868                         instanceIdMapTest, Action.addMembers, 7},
 
 869                 {"No valid instanceId in relatedInstances is specified",
 
 870                         mapper.readValue(inputStream("/MembersValidation/AddMembersInstanceId.json"),
 
 871                                 ServiceInstancesRequest.class),
 
 872                         instanceIdMapTest, Action.addMembers, 7},
 
 873                 {"No valid modelType in relatedInstance is specified",
 
 874                         mapper.readValue(inputStream("/MembersValidation/DeleteMembersModelType.json"),
 
 875                                 ServiceInstancesRequest.class),
 
 876                         instanceIdMapTest, Action.removeMembers, 7}});
 
 880     public void nullInstanceIdMapTest() throws JsonMappingException, IOException, ValidationException {
 
 881         this.sir = mapper.readValue(inputStream("/RequestParameters/RequestParametersNull.json"),
 
 882                 ServiceInstancesRequest.class);
 
 883         this.instanceIdMapTest = null;
 
 885         this.version = "v" + reqVersion;
 
 886         thrown.expect(NullPointerException.class);
 
 887         this.msoRequest = new MsoRequest();
 
 888         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
 892     public void serviceInstanceIdHashMapFailureTest() throws JsonMappingException, IOException, ValidationException {
 
 893         this.sir = mapper.readValue(inputStream("/SuccessfulValidation/InstanceIdHashMap.json"),
 
 894                 ServiceInstancesRequest.class);
 
 895         this.instanceIdMapTest.put("serviceInstanceId", "test");
 
 896         this.action = Action.createInstance;
 
 898         this.version = "v" + reqVersion;
 
 899         thrown.expect(ValidationException.class);
 
 900         thrown.expectMessage("No valid serviceInstanceId is specified");
 
 901         this.msoRequest = new MsoRequest();
 
 902         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
 906     public void vnfInstanceIdHashMapFailureTest() throws JsonMappingException, IOException, ValidationException {
 
 907         this.sir = mapper.readValue(inputStream("/SuccessfulValidation/InstanceIdHashMap.json"),
 
 908                 ServiceInstancesRequest.class);
 
 909         this.instanceIdMapTest.put("vnfInstanceId", "test");
 
 910         this.action = Action.createInstance;
 
 912         this.version = "v" + reqVersion;
 
 913         thrown.expect(ValidationException.class);
 
 914         thrown.expectMessage("No valid vnfInstanceId is specified");
 
 915         this.msoRequest = new MsoRequest();
 
 916         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
 920     public void vfModuleInstanceIdHashMapFailureTest() throws JsonMappingException, IOException, ValidationException {
 
 921         this.sir = mapper.readValue(inputStream("/SuccessfulValidation/InstanceIdHashMap.json"),
 
 922                 ServiceInstancesRequest.class);
 
 923         this.instanceIdMapTest.put("vfModuleInstanceId", "test");
 
 924         this.action = Action.createInstance;
 
 926         this.version = "v" + reqVersion;
 
 927         thrown.expect(ValidationException.class);
 
 928         thrown.expectMessage("No valid vfModuleInstanceId is specified");
 
 929         this.msoRequest = new MsoRequest();
 
 930         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
 934     public void volumeGroupInstanceIdHashMapFailureTest()
 
 935             throws JsonMappingException, IOException, ValidationException {
 
 936         this.sir = mapper.readValue(inputStream("/SuccessfulValidation/InstanceIdHashMap.json"),
 
 937                 ServiceInstancesRequest.class);
 
 938         this.instanceIdMapTest.put("volumeGroupInstanceId", "test");
 
 939         this.action = Action.createInstance;
 
 941         this.version = "v" + reqVersion;
 
 942         thrown.expect(ValidationException.class);
 
 943         thrown.expectMessage("No valid volumeGroupInstanceId is specified");
 
 944         this.msoRequest = new MsoRequest();
 
 945         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
 949     public void networkInstanceIdHashMapFailureTest() throws JsonMappingException, IOException, ValidationException {
 
 950         this.sir = mapper.readValue(inputStream("/SuccessfulValidation/InstanceIdHashMap.json"),
 
 951                 ServiceInstancesRequest.class);
 
 952         this.instanceIdMapTest.put("networkInstanceId", "test");
 
 953         this.action = Action.createInstance;
 
 955         this.version = "v" + reqVersion;
 
 956         thrown.expect(ValidationException.class);
 
 957         thrown.expectMessage("No valid networkInstanceId is specified");
 
 958         this.msoRequest = new MsoRequest();
 
 959         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
 963     public void configurationInstanceIdHashMapFailureTest()
 
 964             throws JsonMappingException, IOException, ValidationException {
 
 965         this.sir = mapper.readValue(inputStream("/SuccessfulValidation/InstanceIdHashMap.json"),
 
 966                 ServiceInstancesRequest.class);
 
 967         this.instanceIdMapTest.put("configurationInstanceId", "test");
 
 968         this.action = Action.createInstance;
 
 969         thrown.expect(ValidationException.class);
 
 971         this.version = "v" + reqVersion;
 
 972         thrown.expectMessage("No valid configurationInstanceId is specified");
 
 973         this.msoRequest = new MsoRequest();
 
 974         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
 978     public void instanceGroupIdHashMapFailureTest() throws JsonMappingException, IOException, ValidationException {
 
 979         this.sir = mapper.readValue(inputStream("/SuccessfulValidation/InstanceIdHashMap.json"),
 
 980                 ServiceInstancesRequest.class);
 
 981         this.instanceIdMapTest.put("instanceGroupInstanceId", "test");
 
 982         this.action = Action.createInstance;
 
 983         thrown.expect(ValidationException.class);
 
 985         this.version = "v" + reqVersion;
 
 986         thrown.expectMessage("No valid instanceGroupInstanceId is specified");
 
 987         this.msoRequest = new MsoRequest();
 
 988         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
 992     public void testVfModuleV4UsePreLoad() throws JsonMappingException, IOException, ValidationException {
 
 993         this.requestJSON = inputStream("/SuccessfulValidation/v4CreateVfModule.json");
 
 994         this.instanceIdMapTest.put("serviceInstanceId", "3eecada1-83a4-4f33-9ed2-7937e7b8dbbc");
 
 995         this.instanceIdMapTest.put("vnfInstanceId", "3eecada1-83a4-4f33-9ed2-7937e7b8dbbc");
 
 997         this.version = "v" + reqVersion;
 
 998         this.sir = mapper.readValue(requestJSON, ServiceInstancesRequest.class);
 
 999         this.msoRequest = new MsoRequest();
 
1000         msoRequest.parse(sir, instanceIdMapTest, Action.createInstance, version, originalRequestJSON, reqVersion,
 
1003         this.requestJSON = inputStream("/ModelInfo/v4CreateVfModuleNoCustomizationId.json");
 
1004         this.instanceIdMapTest.put("serviceInstanceId", "3eecada1-83a4-4f33-9ed2-7937e7b8dbbc");
 
1005         this.instanceIdMapTest.put("vnfInstanceId", "3eecada1-83a4-4f33-9ed2-7937e7b8dbbc");
 
1006         this.sir = mapper.readValue(requestJSON, ServiceInstancesRequest.class);
 
1007         msoRequest = new MsoRequest();
 
1008         msoRequest.parse(sir, instanceIdMapTest, Action.createInstance, version, originalRequestJSON, reqVersion,
 
1013     public void buildServiceErrorResponseTest() throws JsonMappingException, IOException, ValidationException {
 
1014         this.sir = mapper.readValue(inputStream("/SuccessfulValidation/InstanceIdHashMap.json"),
 
1015                 ServiceInstancesRequest.class);
 
1016         this.instanceIdMapTest.put("serviceInstanceId", "test");
 
1017         this.action = Action.createInstance;
 
1018         this.reqVersion = 5;
 
1019         this.version = "v" + reqVersion;
 
1020         thrown.expect(ValidationException.class);
 
1021         thrown.expectMessage("No valid serviceInstanceId is specified");
 
1022         this.msoRequest = new MsoRequest();
 
1023         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
1025                 msoRequest.buildServiceErrorResponse(HttpStatus.SC_BAD_REQUEST, MsoException.ServiceException,
 
1026                         "Mapping of request to JSON object failed.  ", ErrorNumbers.SVC_BAD_PARAMETER, null, version);
 
1027         assertEquals("application/json", response.getHeaders().get(HttpHeaders.CONTENT_TYPE).get(0));
 
1028         assertEquals("0", response.getHeaders().get("X-MinorVersion").get(0));
 
1029         assertEquals("0", response.getHeaders().get("X-PatchVersion").get(0));
 
1030         assertEquals("7.0.0", response.getHeaders().get("X-LatestVersion").get(0));
 
1034     public void buildServiceErrorPolicyExceptionResponseTest()
 
1035             throws JsonMappingException, IOException, ValidationException {
 
1036         this.sir = mapper.readValue(inputStream("/SuccessfulValidation/InstanceIdHashMap.json"),
 
1037                 ServiceInstancesRequest.class);
 
1038         this.instanceIdMapTest.put("serviceInstanceId", "test");
 
1039         this.action = Action.createInstance;
 
1040         this.reqVersion = 5;
 
1041         this.version = "v" + reqVersion;
 
1042         thrown.expect(ValidationException.class);
 
1043         thrown.expectMessage("No valid serviceInstanceId is specified");
 
1044         this.msoRequest = new MsoRequest();
 
1047         this.msoRequest.parse(sir, instanceIdMapTest, action, version, originalRequestJSON, reqVersion, false);
 
1049                 msoRequest.buildServiceErrorResponse(HttpStatus.SC_BAD_REQUEST, MsoException.PolicyException,
 
1050                         "Mapping of request to JSON object failed. ", ErrorNumbers.SVC_BAD_PARAMETER, null, version);
 
1051         assertEquals("application/json", response.getHeaders().get(HttpHeaders.CONTENT_TYPE).get(0));
 
1052         assertEquals("0", response.getHeaders().get("X-MinorVersion").get(0));
 
1053         assertEquals("0", response.getHeaders().get("X-PatchVersion").get(0));
 
1054         assertEquals("7.0.0", response.getHeaders().get("X-LatestVersion").get(0));
 
1058     public void domToStrTest() throws Exception {
 
1059         String xmlStr = "<dummy><service-instance-id>1234</service-instance-id></dummy>";
 
1060         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 
1061         DocumentBuilder builder = factory.newDocumentBuilder();
 
1062         Document document = builder.parse(new InputSource(new StringReader(xmlStr)));
 
1063         String result = MsoRequest.domToStr(document);
 
1064         assertNotNull(result);
 
1068     public void getTenantNameFromAAITest() throws Exception {
 
1069         this.sir = mapper.readValue(inputStream("/SuccessfulValidation/ServiceAssign.json"),
 
1070                 ServiceInstancesRequest.class);
 
1071         String tenantId = "88a6ca3ee0394ade9403f075db23167e";
 
1072         String tenantNameFromAAI = "testTenantName";
 
1073         String cloudRegion = "mdt1";
 
1074         String cloudOwner = "cloudOwner";
 
1075         this.sir.getRequestDetails().getCloudConfiguration().setCloudOwner(cloudOwner);
 
1076         Tenant tenant = new Tenant();
 
1077         tenant.setTenantId(tenantId);
 
1078         tenant.setTenantName(tenantNameFromAAI);
 
1079         doReturn(tenant).when(aaiDataRet).getTenant(cloudOwner, cloudRegion, tenantId);
 
1080         String tenantName = msoRequestMock.getTenantNameFromAAI(this.sir);
 
1081         assertEquals(tenantNameFromAAI, tenantName);
 
1086     public void getProductFamilyNameFromAAITest() throws Exception {
 
1087         this.sir = mapper.readValue(inputStream("/SuccessfulValidation/ServiceAssign.json"),
 
1088                 ServiceInstancesRequest.class);
 
1089         String serviceId = "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb";
 
1090         String serviceDescription = "testServiceDescription";
 
1091         Service service = new Service();
 
1092         service.setServiceId(serviceId);
 
1093         service.setServiceDescription(serviceDescription);
 
1094         doReturn(service).when(aaiDataRet).getService(serviceId);
 
1095         String productFamilyName = msoRequestMock.getProductFamilyNameFromAAI(this.sir);
 
1096         assertEquals(serviceDescription, productFamilyName);