Test coverage

Increase test coverage

Change-Id: I43e3149d0d4b07dc8e260f3d5fac025197882f3a
Issue-ID: SDC-1673
Signed-off-by: siddharth0905 <siddharth.singh4@amdocs.com>
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/src/main/java/org/openecomp/sdcrests/errors/DefaultExceptionMapper.java b/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/src/main/java/org/openecomp/sdcrests/errors/DefaultExceptionMapper.java
index 34ede43..618ac59 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/src/main/java/org/openecomp/sdcrests/errors/DefaultExceptionMapper.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/src/main/java/org/openecomp/sdcrests/errors/DefaultExceptionMapper.java
@@ -28,12 +28,18 @@
 import javax.ws.rs.core.Response;
 import javax.ws.rs.ext.ExceptionMapper;
 
+import org.apache.commons.collections4.CollectionUtils;
 import org.codehaus.jackson.map.JsonMappingException;
 import org.hibernate.validator.internal.engine.path.PathImpl;
-import org.openecomp.core.utilities.CommonMethods;
 import org.openecomp.core.utilities.file.FileUtils;
 import org.openecomp.core.utilities.json.JsonUtil;
-import org.openecomp.sdc.common.errors.*;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.common.errors.ErrorCodeAndMessage;
+import org.openecomp.sdc.common.errors.GeneralErrorBuilder;
+import org.openecomp.sdc.common.errors.JsonMappingErrorBuilder;
+import org.openecomp.sdc.common.errors.ValidationErrorBuilder;
 import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
 
@@ -98,14 +104,14 @@
         String message;
 
         String fieldName = null;
-        if (!CommonMethods.isEmpty(constraintViolationSet)) {
+        if (CollectionUtils.isEmpty(constraintViolationSet)) {
+            message = validationException.getMessage();
+        } else {
             // getting the first violation message for the output response.
             ConstraintViolation<?> constraintViolation = constraintViolationSet.iterator().next();
             message = constraintViolation.getMessage();
             fieldName = getFieldName(constraintViolation.getPropertyPath());
 
-        } else {
-            message = validationException.getMessage();
         }
 
         ErrorCode validationErrorCode = new ValidationErrorBuilder(message, fieldName).build();
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/FeatureGroupsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/FeatureGroupsImpl.java
index 8b62dc1..b2f7e88 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/FeatureGroupsImpl.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/FeatureGroupsImpl.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,7 +20,13 @@
 
 package org.openecomp.sdcrests.vendorlicense.rest.services;
 
-import org.openecomp.core.utilities.CommonMethods;
+import java.util.Collection;
+import java.util.HashSet;
+
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+
+import org.apache.commons.collections4.CollectionUtils;
 import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
 import org.openecomp.sdc.vendorlicense.VendorLicenseManagerFactory;
 import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
@@ -33,132 +39,133 @@
 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapFeatureGroupDescriptorDtoToFeatureGroupEntity;
 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapFeatureGroupEntityToFeatureGroupDescriptorDto;
 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto;
-import org.openecomp.sdcrests.vendorlicense.types.*;
+import org.openecomp.sdcrests.vendorlicense.types.EntitlementPoolEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupModelDto;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupRequestDto;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupUpdateRequestDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseKeyGroupEntityDto;
 import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
 import org.openecomp.sdcrests.wrappers.StringWrapperResponse;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Service;
 
-import javax.inject.Named;
-import javax.ws.rs.core.Response;
-import java.util.Collection;
-import java.util.HashSet;
-
 @Named
 @Service("featureGroups")
 @Scope(value = "prototype")
 public class FeatureGroupsImpl implements FeatureGroups {
-  private VendorLicenseManager vendorLicenseManager =
-      VendorLicenseManagerFactory.getInstance().createInterface();
 
-  @Override
-  public Response listFeatureGroups(String vlmId, String versionId, String user) {
-    Collection<FeatureGroupEntity> featureGroupEntities =
-        vendorLicenseManager.listFeatureGroups(vlmId, new Version(versionId));
+    private VendorLicenseManager vendorLicenseManager =
+            VendorLicenseManagerFactory.getInstance().createInterface();
 
-    MapFeatureGroupEntityToFeatureGroupDescriptorDto outputMapper =
-        new MapFeatureGroupEntityToFeatureGroupDescriptorDto();
-    GenericCollectionWrapper<FeatureGroupEntityDto> results = new GenericCollectionWrapper<>();
+    @Override
+    public Response listFeatureGroups(String vlmId, String versionId, String user) {
+        Collection<FeatureGroupEntity> featureGroupEntities =
+                vendorLicenseManager.listFeatureGroups(vlmId, new Version(versionId));
 
-    for (FeatureGroupEntity fg : featureGroupEntities) {
-      FeatureGroupEntityDto fgDto = new FeatureGroupEntityDto();
-      fgDto.setId(fg.getId());
-      fgDto.setLicenseKeyGroupsIds(fg.getLicenseKeyGroupIds());
-      fgDto.setEntitlementPoolsIds(fg.getEntitlementPoolIds());
-      fgDto.setReferencingLicenseAgreements(fg.getReferencingLicenseAgreements());
-      outputMapper.doMapping(fg, fgDto);
-      results.add(fgDto);
-    }
-    return Response.ok(results).build();
-  }
+        MapFeatureGroupEntityToFeatureGroupDescriptorDto outputMapper =
+                new MapFeatureGroupEntityToFeatureGroupDescriptorDto();
+        GenericCollectionWrapper<FeatureGroupEntityDto> results = new GenericCollectionWrapper<>();
 
-  @Override
-  public Response createFeatureGroup(FeatureGroupRequestDto request, String vlmId, String versionId,
-                                     String user) {
-    FeatureGroupEntity featureGroupEntity = new MapFeatureGroupDescriptorDtoToFeatureGroupEntity()
-        .applyMapping(request, FeatureGroupEntity.class);
-    featureGroupEntity.setVendorLicenseModelId(vlmId);
-    featureGroupEntity.setVersion(new Version(versionId));
-    featureGroupEntity.setLicenseKeyGroupIds(request.getAddedLicenseKeyGroupsIds());
-    featureGroupEntity.setEntitlementPoolIds(request.getAddedEntitlementPoolsIds());
-
-    FeatureGroupEntity createdFeatureGroup =
-        vendorLicenseManager.createFeatureGroup(featureGroupEntity);
-
-    StringWrapperResponse result =
-        createdFeatureGroup != null ? new StringWrapperResponse(createdFeatureGroup.getId()) : null;
-    return Response.ok(result).build();
-  }
-
-  @Override
-  public Response updateFeatureGroup(FeatureGroupUpdateRequestDto request, String vlmId,
-                                     String versionId, String featureGroupId, String user) {
-    FeatureGroupEntity featureGroupEntity = new MapFeatureGroupDescriptorDtoToFeatureGroupEntity()
-        .applyMapping(request, FeatureGroupEntity.class);
-    featureGroupEntity.setVendorLicenseModelId(vlmId);
-    featureGroupEntity.setVersion(new Version(versionId));
-    featureGroupEntity.setId(featureGroupId);
-
-    vendorLicenseManager
-        .updateFeatureGroup(featureGroupEntity, request.getAddedLicenseKeyGroupsIds(),
-            request.getRemovedLicenseKeyGroupsIds(), request.getAddedEntitlementPoolsIds(),
-            request.getRemovedEntitlementPoolsIds());
-    return Response.ok().build();
-  }
-
-  @Override
-  public Response getFeatureGroup(String vlmId, String versionId, String featureGroupId,
-                                  String user) {
-    FeatureGroupEntity fgInput = new FeatureGroupEntity();
-    fgInput.setVendorLicenseModelId(vlmId);
-    fgInput.setVersion(new Version(versionId));
-    fgInput.setId(featureGroupId);
-    FeatureGroupModel featureGroupModel = vendorLicenseManager.getFeatureGroupModel(fgInput);
-
-    if (featureGroupModel == null) {
-      return Response.ok().build();
+        for (FeatureGroupEntity fg : featureGroupEntities) {
+            FeatureGroupEntityDto fgDto = new FeatureGroupEntityDto();
+            fgDto.setId(fg.getId());
+            fgDto.setLicenseKeyGroupsIds(fg.getLicenseKeyGroupIds());
+            fgDto.setEntitlementPoolsIds(fg.getEntitlementPoolIds());
+            fgDto.setReferencingLicenseAgreements(fg.getReferencingLicenseAgreements());
+            outputMapper.doMapping(fg, fgDto);
+            results.add(fgDto);
+        }
+        return Response.ok(results).build();
     }
 
-    FeatureGroupModelDto fgmDto = new FeatureGroupModelDto();
-    fgmDto.setId(featureGroupModel.getFeatureGroup().getId());
-    fgmDto.setReferencingLicenseAgreements(
-        featureGroupModel.getFeatureGroup().getReferencingLicenseAgreements());
-    new MapFeatureGroupEntityToFeatureGroupDescriptorDto()
-        .doMapping(featureGroupModel.getFeatureGroup(), fgmDto);
+    @Override
+    public Response createFeatureGroup(FeatureGroupRequestDto request, String vlmId, String versionId,
+                                       String user) {
+        FeatureGroupEntity featureGroupEntity = new MapFeatureGroupDescriptorDtoToFeatureGroupEntity()
+                .applyMapping(request, FeatureGroupEntity.class);
+        featureGroupEntity.setVendorLicenseModelId(vlmId);
+        featureGroupEntity.setVersion(new Version(versionId));
+        featureGroupEntity.setLicenseKeyGroupIds(request.getAddedLicenseKeyGroupsIds());
+        featureGroupEntity.setEntitlementPoolIds(request.getAddedEntitlementPoolsIds());
 
-    if (!CommonMethods.isEmpty(featureGroupModel.getLicenseKeyGroups())) {
-      fgmDto.setLicenseKeyGroups(new HashSet<>());
+        FeatureGroupEntity createdFeatureGroup =
+                vendorLicenseManager.createFeatureGroup(featureGroupEntity);
 
-      MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto lkgMapper =
-          new MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto();
-      for (LicenseKeyGroupEntity lkg : featureGroupModel.getLicenseKeyGroups()) {
-        fgmDto.getLicenseKeyGroups()
-            .add(lkgMapper.applyMapping(lkg, LicenseKeyGroupEntityDto.class));
-      }
+        StringWrapperResponse result =
+                createdFeatureGroup != null ? new StringWrapperResponse(createdFeatureGroup.getId()) : null;
+        return Response.ok(result).build();
     }
 
-    if (!CommonMethods.isEmpty(featureGroupModel.getEntitlementPools())) {
-      fgmDto.setEntitlementPools(new HashSet<>());
+    @Override
+    public Response updateFeatureGroup(FeatureGroupUpdateRequestDto request, String vlmId,
+                                       String versionId, String featureGroupId, String user) {
+        FeatureGroupEntity featureGroupEntity = new MapFeatureGroupDescriptorDtoToFeatureGroupEntity()
+                .applyMapping(request, FeatureGroupEntity.class);
+        featureGroupEntity.setVendorLicenseModelId(vlmId);
+        featureGroupEntity.setVersion(new Version(versionId));
+        featureGroupEntity.setId(featureGroupId);
 
-      MapEntitlementPoolEntityToEntitlementPoolEntityDto epMapper =
-          new MapEntitlementPoolEntityToEntitlementPoolEntityDto();
-      for (EntitlementPoolEntity ep : featureGroupModel.getEntitlementPools()) {
-        fgmDto.getEntitlementPools().add(epMapper.applyMapping(ep, EntitlementPoolEntityDto.class));
-
-      }
+        vendorLicenseManager
+                .updateFeatureGroup(featureGroupEntity, request.getAddedLicenseKeyGroupsIds(),
+                        request.getRemovedLicenseKeyGroupsIds(), request.getAddedEntitlementPoolsIds(),
+                        request.getRemovedEntitlementPoolsIds());
+        return Response.ok().build();
     }
-    return Response.ok(fgmDto).build();
-  }
 
-  @Override
-  public Response deleteFeatureGroup(String vlmId, String versionId, String featureGroupId,
-                                     String user) {
-    FeatureGroupEntity fgInput = new FeatureGroupEntity();
-    fgInput.setVendorLicenseModelId(vlmId);
-    fgInput.setVersion(new Version(versionId));
-    fgInput.setId(featureGroupId);
-    vendorLicenseManager.deleteFeatureGroup(fgInput);
-    return Response.ok().build();
-  }
+    @Override
+    public Response getFeatureGroup(String vlmId, String versionId, String featureGroupId,
+                                    String user) {
+        FeatureGroupEntity fgInput = new FeatureGroupEntity();
+        fgInput.setVendorLicenseModelId(vlmId);
+        fgInput.setVersion(new Version(versionId));
+        fgInput.setId(featureGroupId);
+        FeatureGroupModel featureGroupModel = vendorLicenseManager.getFeatureGroupModel(fgInput);
+
+        if (featureGroupModel == null) {
+            return Response.ok().build();
+        }
+
+        FeatureGroupModelDto fgmDto = new FeatureGroupModelDto();
+        fgmDto.setId(featureGroupModel.getFeatureGroup().getId());
+        fgmDto.setReferencingLicenseAgreements(
+                featureGroupModel.getFeatureGroup().getReferencingLicenseAgreements());
+        new MapFeatureGroupEntityToFeatureGroupDescriptorDto()
+                .doMapping(featureGroupModel.getFeatureGroup(), fgmDto);
+
+        if (!CollectionUtils.isEmpty(featureGroupModel.getLicenseKeyGroups())) {
+            fgmDto.setLicenseKeyGroups(new HashSet<>());
+
+            MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto lkgMapper =
+                    new MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto();
+            for (LicenseKeyGroupEntity lkg : featureGroupModel.getLicenseKeyGroups()) {
+                fgmDto.getLicenseKeyGroups()
+                        .add(lkgMapper.applyMapping(lkg, LicenseKeyGroupEntityDto.class));
+            }
+        }
+
+        if (!CollectionUtils.isEmpty(featureGroupModel.getEntitlementPools())) {
+            fgmDto.setEntitlementPools(new HashSet<>());
+
+            MapEntitlementPoolEntityToEntitlementPoolEntityDto epMapper =
+                    new MapEntitlementPoolEntityToEntitlementPoolEntityDto();
+            for (EntitlementPoolEntity ep : featureGroupModel.getEntitlementPools()) {
+                fgmDto.getEntitlementPools().add(epMapper.applyMapping(ep, EntitlementPoolEntityDto.class));
+
+            }
+        }
+        return Response.ok(fgmDto).build();
+    }
+
+    @Override
+    public Response deleteFeatureGroup(String vlmId, String versionId, String featureGroupId,
+                                       String user) {
+        FeatureGroupEntity fgInput = new FeatureGroupEntity();
+        fgInput.setVendorLicenseModelId(vlmId);
+        fgInput.setVersion(new Version(versionId));
+        fgInput.setId(featureGroupId);
+        vendorLicenseManager.deleteFeatureGroup(fgInput);
+        return Response.ok().build();
+    }
 
 }
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseAgreementsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseAgreementsImpl.java
index 00d13f7..05da964 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseAgreementsImpl.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseAgreementsImpl.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,7 +20,13 @@
 
 package org.openecomp.sdcrests.vendorlicense.rest.services;
 
-import org.openecomp.core.utilities.CommonMethods;
+import java.util.Collection;
+import java.util.HashSet;
+
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+
+import org.apache.commons.collections4.CollectionUtils;
 import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
 import org.openecomp.sdc.vendorlicense.VendorLicenseManagerFactory;
 import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
@@ -31,151 +37,151 @@
 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapFeatureGroupEntityToFeatureGroupDescriptorDto;
 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity;
 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLicenseAgreementEntityToLicenseAgreementDescriptorDto;
-import org.openecomp.sdcrests.vendorlicense.types.*;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementModelDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementRequestDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementUpdateRequestDto;
 import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
 import org.openecomp.sdcrests.wrappers.StringWrapperResponse;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Service;
 
-import javax.inject.Named;
-import javax.ws.rs.core.Response;
-import java.util.Collection;
-import java.util.HashSet;
-
 @Named
 @Service("licenseAgreements")
 @Scope(value = "prototype")
 public class LicenseAgreementsImpl implements LicenseAgreements {
-  private VendorLicenseManager vendorLicenseManager =
-      VendorLicenseManagerFactory.getInstance().createInterface();
 
-  /**
-   * List license agreements response.
-   *
-   * @param vlmId     the vlm id
-   * @param versionId the version
-   * @param user      the user
-   * @return the response
-   */
-  public Response listLicenseAgreements(String vlmId, String versionId, String user) {
-    Collection<LicenseAgreementEntity> licenseAgreements =
-        vendorLicenseManager.listLicenseAgreements(vlmId, new Version(versionId));
+    private VendorLicenseManager vendorLicenseManager =
+            VendorLicenseManagerFactory.getInstance().createInterface();
 
-    GenericCollectionWrapper<LicenseAgreementEntityDto> results = new GenericCollectionWrapper<>();
-    MapLicenseAgreementEntityToLicenseAgreementDescriptorDto outputMapper =
-        new MapLicenseAgreementEntityToLicenseAgreementDescriptorDto();
-    for (LicenseAgreementEntity lae : licenseAgreements) {
-      LicenseAgreementEntityDto laeDto = new LicenseAgreementEntityDto();
-      laeDto.setId(lae.getId());
-      laeDto.setFeatureGroupsIds(lae.getFeatureGroupIds());
-      outputMapper.doMapping(lae, laeDto);
-      results.add(laeDto);
-    }
-    return Response.ok(results).build();
-  }
+    /**
+     * List license agreements response.
+     *
+     * @param vlmId     the vlm id
+     * @param versionId the version
+     * @param user      the user
+     * @return the response
+     */
+    public Response listLicenseAgreements(String vlmId, String versionId, String user) {
+        Collection<LicenseAgreementEntity> licenseAgreements =
+                vendorLicenseManager.listLicenseAgreements(vlmId, new Version(versionId));
 
-  /**
-   * Create license agreement response.
-   *
-   * @param request the request
-   * @param vlmId   the vlm id
-   * @param user    the user
-   * @return the response
-   */
-  public Response createLicenseAgreement(LicenseAgreementRequestDto request, String vlmId,
-                                         String versionId, String user) {
-    LicenseAgreementEntity licenseAgreementEntity =
-        new MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity()
-            .applyMapping(request, LicenseAgreementEntity.class);
-    licenseAgreementEntity.setVendorLicenseModelId(vlmId);
-    licenseAgreementEntity.setVersion(new Version(versionId));
-    licenseAgreementEntity.setFeatureGroupIds(request.getAddedFeatureGroupsIds());
-
-    LicenseAgreementEntity createdLicenseAgreement =
-        vendorLicenseManager.createLicenseAgreement(licenseAgreementEntity);
-    StringWrapperResponse result =
-        createdLicenseAgreement != null ? new StringWrapperResponse(createdLicenseAgreement.getId())
-            : null;
-    return Response.ok(result).build();
-  }
-
-  /**
-   * Update license agreement response.
-   *
-   * @param request            the request
-   * @param vlmId              the vlm id
-   * @param licenseAgreementId the license agreement id
-   * @param user               the user
-   * @return the response
-   */
-  public Response updateLicenseAgreement(LicenseAgreementUpdateRequestDto request, String vlmId,
-                                         String versionId, String licenseAgreementId, String user) {
-    LicenseAgreementEntity licenseAgreementEntity =
-        new MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity()
-            .applyMapping(request, LicenseAgreementEntity.class);
-    licenseAgreementEntity.setVendorLicenseModelId(vlmId);
-    licenseAgreementEntity.setVersion(new Version(versionId));
-    licenseAgreementEntity.setId(licenseAgreementId);
-
-    vendorLicenseManager
-        .updateLicenseAgreement(licenseAgreementEntity, request.getAddedFeatureGroupsIds(),
-            request.getRemovedFeatureGroupsIds());
-    return Response.ok().build();
-  }
-
-  /**
-   * Gets license agreement.
-   *
-   * @param vlmId              the vlm id
-   * @param versionId          the version
-   * @param licenseAgreementId the license agreement id
-   * @param user               the user
-   * @return the license agreement
-   */
-  public Response getLicenseAgreement(String vlmId, String versionId, String licenseAgreementId,
-                                      String user) {
-    LicenseAgreementModel licenseAgreementModel = vendorLicenseManager
-        .getLicenseAgreementModel(vlmId, new Version(versionId), licenseAgreementId);
-
-    if (licenseAgreementModel == null) {
-      return Response.ok().build();
+        GenericCollectionWrapper<LicenseAgreementEntityDto> results = new GenericCollectionWrapper<>();
+        MapLicenseAgreementEntityToLicenseAgreementDescriptorDto outputMapper =
+                new MapLicenseAgreementEntityToLicenseAgreementDescriptorDto();
+        for (LicenseAgreementEntity lae : licenseAgreements) {
+            LicenseAgreementEntityDto laeDto = new LicenseAgreementEntityDto();
+            laeDto.setId(lae.getId());
+            laeDto.setFeatureGroupsIds(lae.getFeatureGroupIds());
+            outputMapper.doMapping(lae, laeDto);
+            results.add(laeDto);
+        }
+        return Response.ok(results).build();
     }
 
-    LicenseAgreementModelDto lamDto = new LicenseAgreementModelDto();
-    lamDto.setId(licenseAgreementModel.getLicenseAgreement().getId());
-    new MapLicenseAgreementEntityToLicenseAgreementDescriptorDto()
-        .doMapping(licenseAgreementModel.getLicenseAgreement(), lamDto);
+    /**
+     * Create license agreement response.
+     *
+     * @param request the request
+     * @param vlmId   the vlm id
+     * @param user    the user
+     * @return the response
+     */
+    public Response createLicenseAgreement(LicenseAgreementRequestDto request, String vlmId,
+                                           String versionId, String user) {
+        LicenseAgreementEntity licenseAgreementEntity =
+                new MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity()
+                        .applyMapping(request, LicenseAgreementEntity.class);
+        licenseAgreementEntity.setVendorLicenseModelId(vlmId);
+        licenseAgreementEntity.setVersion(new Version(versionId));
+        licenseAgreementEntity.setFeatureGroupIds(request.getAddedFeatureGroupsIds());
 
-    if (!CommonMethods.isEmpty(licenseAgreementModel.getFeatureGroups())) {
-      lamDto.setFeatureGroups(new HashSet<>());
-
-      MapFeatureGroupEntityToFeatureGroupDescriptorDto fgMapper =
-          new MapFeatureGroupEntityToFeatureGroupDescriptorDto();
-      for (FeatureGroupEntity fg : licenseAgreementModel.getFeatureGroups()) {
-        FeatureGroupEntityDto fgeDto = new FeatureGroupEntityDto();
-        fgeDto.setId(fg.getId());
-        fgeDto.setEntitlementPoolsIds(fg.getEntitlementPoolIds());
-        fgeDto.setLicenseKeyGroupsIds(fg.getLicenseKeyGroupIds());
-        fgMapper.doMapping(fg, fgeDto);
-
-        lamDto.getFeatureGroups().add(fgeDto);
-      }
+        LicenseAgreementEntity createdLicenseAgreement =
+                vendorLicenseManager.createLicenseAgreement(licenseAgreementEntity);
+        StringWrapperResponse result =
+                createdLicenseAgreement != null ? new StringWrapperResponse(createdLicenseAgreement.getId())
+                        : null;
+        return Response.ok(result).build();
     }
-    return Response.ok(lamDto).build();
-  }
 
-  /**
-   * Delete license agreement response.
-   *
-   * @param vlmId              the vlm id
-   * @param versionId          the version id
-   * @param licenseAgreementId the license agreement id
-   * @param user               the user
-   * @return the response
-   */
-  public Response deleteLicenseAgreement(String vlmId, String versionId, String licenseAgreementId,
-                                         String user) {
-    vendorLicenseManager.deleteLicenseAgreement(vlmId, new Version(versionId), licenseAgreementId);
-    return Response.ok().build();
-  }
+    /**
+     * Update license agreement response.
+     *
+     * @param request            the request
+     * @param vlmId              the vlm id
+     * @param licenseAgreementId the license agreement id
+     * @param user               the user
+     * @return the response
+     */
+    public Response updateLicenseAgreement(LicenseAgreementUpdateRequestDto request, String vlmId,
+                                           String versionId, String licenseAgreementId, String user) {
+        LicenseAgreementEntity licenseAgreementEntity =
+                new MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity()
+                        .applyMapping(request, LicenseAgreementEntity.class);
+        licenseAgreementEntity.setVendorLicenseModelId(vlmId);
+        licenseAgreementEntity.setVersion(new Version(versionId));
+        licenseAgreementEntity.setId(licenseAgreementId);
+
+        vendorLicenseManager
+                .updateLicenseAgreement(licenseAgreementEntity, request.getAddedFeatureGroupsIds(),
+                        request.getRemovedFeatureGroupsIds());
+        return Response.ok().build();
+    }
+
+    /**
+     * Gets license agreement.
+     *
+     * @param vlmId              the vlm id
+     * @param versionId          the version
+     * @param licenseAgreementId the license agreement id
+     * @param user               the user
+     * @return the license agreement
+     */
+    public Response getLicenseAgreement(String vlmId, String versionId, String licenseAgreementId,
+                                        String user) {
+        LicenseAgreementModel licenseAgreementModel = vendorLicenseManager
+                .getLicenseAgreementModel(vlmId, new Version(versionId), licenseAgreementId);
+
+        if (licenseAgreementModel == null) {
+            return Response.ok().build();
+        }
+
+        LicenseAgreementModelDto lamDto = new LicenseAgreementModelDto();
+        lamDto.setId(licenseAgreementModel.getLicenseAgreement().getId());
+        new MapLicenseAgreementEntityToLicenseAgreementDescriptorDto()
+                .doMapping(licenseAgreementModel.getLicenseAgreement(), lamDto);
+
+        if (!CollectionUtils.isEmpty(licenseAgreementModel.getFeatureGroups())) {
+            lamDto.setFeatureGroups(new HashSet<>());
+
+            MapFeatureGroupEntityToFeatureGroupDescriptorDto fgMapper =
+                    new MapFeatureGroupEntityToFeatureGroupDescriptorDto();
+            for (FeatureGroupEntity fg : licenseAgreementModel.getFeatureGroups()) {
+                FeatureGroupEntityDto fgeDto = new FeatureGroupEntityDto();
+                fgeDto.setId(fg.getId());
+                fgeDto.setEntitlementPoolsIds(fg.getEntitlementPoolIds());
+                fgeDto.setLicenseKeyGroupsIds(fg.getLicenseKeyGroupIds());
+                fgMapper.doMapping(fg, fgeDto);
+
+                lamDto.getFeatureGroups().add(fgeDto);
+            }
+        }
+        return Response.ok(lamDto).build();
+    }
+
+    /**
+     * Delete license agreement response.
+     *
+     * @param vlmId              the vlm id
+     * @param versionId          the version id
+     * @param licenseAgreementId the license agreement id
+     * @param user               the user
+     * @return the response
+     */
+    public Response deleteLicenseAgreement(String vlmId, String versionId, String licenseAgreementId,
+                                           String user) {
+        vendorLicenseManager.deleteLicenseAgreement(vlmId, new Version(versionId), licenseAgreementId);
+        return Response.ok().build();
+    }
 }
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/CommonMethods.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/CommonMethods.java
index 5a4d3cb..b2cc289 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/CommonMethods.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/CommonMethods.java
@@ -16,344 +16,342 @@
 
 package org.openecomp.core.utilities;
 
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
-import java.util.*;
-
-import java.lang.reflect.Array;
 
 /**
  * This class provides auxiliary static methods.
  */
 public class CommonMethods {
 
-  private static final char[] CHARS = new char[]{
-      '0', '1', '2', '3', '4', '5', '6', '7',
-      '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
-  };
+    private static final char[] CHARS = new char[] {
+            '0', '1', '2', '3', '4', '5', '6', '7',
+            '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
+    };
 
-  /**
-   * Private default constructor to prevent instantiation of the class objects.
-   */
-  private CommonMethods() {
-  }
-
-  /**
-   * Checks whether the given collection is empty.
-   *
-   * @param collection A collection to be checked.
-   * @return <tt>true</tt> - if the collection is null or empty, <tt>false</tt> - otherwise.
-   */
-  public static boolean isEmpty(Collection<?> collection) {
-    return collection == null || collection.isEmpty();
-  }
-
-  /**
-   * Gets an universally unique identifier (UUID).
-   *
-   * @return String representation of generated UUID.
-   */
-  public static String nextUuId() {
-    UUID uuid = UUID.randomUUID();
-
-    StringBuilder buff = new StringBuilder(32);
-    long2string(uuid.getMostSignificantBits(), buff);
-    long2string(uuid.getLeastSignificantBits(), buff);
-
-    return buff.toString();
-  }
-
-  private static void long2string(long lng, StringBuilder buff) {
-    long value = lng;
-    for (int i = 0; i < 16; i++) {
-      long nextByte = value & 0xF000000000000000L;
-      value <<= 4;
-      boolean isNegative = nextByte < 0;
-      nextByte = nextByte >>> 60;
-
-      if (isNegative) {
-        nextByte |= 0x08;
-      }
-
-      buff.append(CHARS[(int) nextByte]);
-    }
-  }
-
-  /**
-   * Concatenates two Java arrays. The method allocates a new array and copies
-   * all elements to it or returns one of input arrays if another one is
-   * empty.
-   *
-   * @param <T>   the type parameter
-   * @param left  Elements of this array will be copied to positions from 0 to <tt>left.length -
-   *              1</tt> in the target array.
-   * @param right Elements of this array will be copied to positions from <tt>left.length</tt> to
-   *              <tt>left.length + right.length</tt>
-   * @return A newly allocate Java array that accommodates elements of source (left/right) arrays
-    orone of source arrays if another is empty, <tt>null</tt> - otherwise.
-   */
-  @SuppressWarnings("unchecked")
-  public static <T> T[] concat(T[] left, T[] right) {
-    T[] res;
-
-    if (ArrayUtils.isEmpty(left)) {
-      res = right;
-    } else if (ArrayUtils.isEmpty(right)) {
-      res = left;
-    } else {
-      res = (T[]) Array.newInstance(left[0].getClass(), left.length + right.length);
-      System.arraycopy(left, 0, res, 0, left.length);
-      System.arraycopy(right, 0, res, left.length, right.length);
+    /**
+     * Private default constructor to prevent instantiation of the class objects.
+     */
+    private CommonMethods() {
     }
 
-    return res;
-  } // concat
+    /**
+     * Gets an universally unique identifier (UUID).
+     *
+     * @return String representation of generated UUID.
+     */
+    public static String nextUuId() {
+        UUID uuid = UUID.randomUUID();
 
-  /**
-   * New instance object.
-   *
-   * @param classname the classname
-   * @return the object
-   */
-  public static Object newInstance(String classname) {
-    return newInstance(classname, Object.class);
-  }
+        StringBuilder buff = new StringBuilder(32);
+        long2string(uuid.getMostSignificantBits(), buff);
+        long2string(uuid.getLeastSignificantBits(), buff);
 
-  /**
-   * New instance t.
-   *
-   * @param <T>       the type parameter
-   * @param classname the classname
-   * @param cls       the cls
-   * @return the t
-   */
-  @SuppressWarnings("unchecked")
-  public static <T> T newInstance(String classname, Class<T> cls) {
-
-    if (StringUtils.isEmpty(classname)) {
-      throw new IllegalArgumentException();
+        return buff.toString();
     }
 
-    if (cls == null) {
-      throw new IllegalArgumentException();
-    }
+    private static void long2string(long lng, StringBuilder buff) {
+        long value = lng;
+        for (int i = 0; i < 16; i++) {
+            long nextByte = value & 0xF000000000000000L;
+            value <<= 4;
+            boolean isNegative = nextByte < 0;
+            nextByte = nextByte >>> 60;
 
-    try {
-      Class<?> temp = Class.forName(classname);
+            if (isNegative) {
+                nextByte |= 0x08;
+            }
 
-      if (!cls.isAssignableFrom(temp)) {
-        throw new ClassCastException(
-            String.format("Failed to cast from '%s' to '%s'", classname, cls.getName()));
-      }
-
-      Class<? extends T> impl = (Class<? extends T>) temp;
-
-      return newInstance(impl);
-    } catch (ClassNotFoundException exception) {
-      throw new IllegalArgumentException(exception);
-    }
-  }
-
-  /**
-   * New instance t.
-   *
-   * @param <T> the type parameter
-   * @param cls the cls
-   * @return the t
-   */
-  public static <T> T newInstance(Class<T> cls) {
-    try {
-      return cls.newInstance();
-    } catch (InstantiationException | IllegalAccessException exception) {
-      throw new RuntimeException(exception);
-    }
-  }
-
-  /**
-   * Print stack trace string.
-   *
-   * @return the string
-   */
-  public static String printStackTrace() {
-    StringBuilder sb = new StringBuilder();
-    StackTraceElement[] trace = Thread.currentThread().getStackTrace();
-    for (StackTraceElement traceElement : trace) {
-      sb.append("\t  ").append(traceElement);
-      sb.append(System.lineSeparator());
-    }
-    return sb.toString();
-  }
-
-  /**
-   * Converts array of strings to comma-separated string.
-   *
-   * @param arr array of strings
-   * @return the string
-   */
-  public static String arrayToCommaSeparatedString(String[] arr) {
-    return arrayToSeparatedString(arr, ',');
-  }
-
-  /**
-   * Collection to comma separated string string.
-   *
-   * @param elementCollection the element collection
-   * @return the string
-   */
-  public static String collectionToCommaSeparatedString(Collection<String> elementCollection) {
-    return String.join(",", elementCollection);
-  }
-
-  /**
-   * Converts array of strings to string separated with specified character.
-   *
-   * @param arr       array of strings
-   * @param separator the separator
-   * @return the string
-   */
-  public static String arrayToSeparatedString(String[] arr, char separator) {
-    return String.join(Character.toString(separator), arr);
-  }
-
-  /**
-   * Converts array of strings to string separated with specified character.
-   *
-   * @param list      array of strings
-   * @param separator the separator
-   * @return the string
-   */
-  public static String listToSeparatedString(List<String> list, char separator) {
-    return String.join(Character.toString(separator), list);
-  }
-
-  /**
-   * Duplicate string with delimiter string.
-   *
-   * @param arg                  the arg
-   * @param separator            the separator
-   * @param numberOfDuplications the number of duplications
-   * @return the string
-   */
-  public static String duplicateStringWithDelimiter(String arg, char separator,
-                                                    int numberOfDuplications) {
-    StringBuilder sb = new StringBuilder();
-
-    for (int i = 0; i < numberOfDuplications; i++) {
-      if (i > 0) {
-        sb.append(separator);
-      }
-      sb.append(arg);
-    }
-    return sb.toString();
-  }
-
-  /**
-   * To single element set set.
-   *
-   * @param <T>     the class of the objects in the set
-   * @param element the single element to be contained in the returned Set
-   * @return an immutable set containing only the specified object. The returned set is
-    serializable.
-   */
-  public static <T> Set<T> toSingleElementSet(T element) {
-    return Collections.singleton(element);
-
-  }
-
-  /**
-   * Merge lists of map list.
-   *
-   * @param <T>    the type parameter
-   * @param <S>    the type parameter
-   * @param target the target
-   * @param source the source
-   * @return the list
-   */
-  public static <T, S> List<Map<T, S>> mergeListsOfMap(List<Map<T, S>> target,
-                                                       List<Map<T, S>> source) {
-    List<Map<T, S>> retList = new ArrayList<>();
-    if (Objects.nonNull(target)) {
-      retList.addAll(target);
-    }
-
-    if (Objects.nonNull(source)) {
-      for (Map<T, S> sourceMap : source) {
-        for (Map.Entry<T, S> entry : sourceMap.entrySet()) {
-          mergeEntryInList(entry.getKey(), entry.getValue(), retList);
+            buff.append(CHARS[(int) nextByte]);
         }
-      }
-    }
-    return retList;
-  }
-
-  /**
-   * Merge lists list.
-   *
-   * @param <T>    the type parameter
-   * @param target the target
-   * @param source the source
-   * @return the list
-   */
-  public static <T> List<T> mergeLists(List<T> target, List<T> source) {
-    List<T> retList = new ArrayList<>();
-
-    if (Objects.nonNull(source)) {
-      retList.addAll(source);
-    }
-    if (Objects.nonNull(target)) {
-      retList.addAll(target);
     }
 
-    return retList;
-  }
+    /**
+     * Concatenates two Java arrays. The method allocates a new array and copies
+     * all elements to it or returns one of input arrays if another one is
+     * empty.
+     *
+     * @param <T>   the type parameter
+     * @param left  Elements of this array will be copied to positions from 0 to <tt>left.length -
+     *              1</tt> in the target array.
+     * @param right Elements of this array will be copied to positions from <tt>left.length</tt> to
+     *              <tt>left.length + right.length</tt>
+     * @return A newly allocate Java array that accommodates elements of source (left/right) arrays
+     * or one of source arrays if another is empty, <tt>null</tt> - otherwise.
+     */
+    @SuppressWarnings("unchecked")
+    public static <T> T[] concat(T[] left, T[] right) {
+        T[] res;
 
-  /**
-   * Merge entry in list.
-   *
-   * @param <T>    the type parameter
-   * @param <S>    the type parameter
-   * @param key    the key
-   * @param value  the value
-   * @param target the target
-   */
-  public static <T, S> void mergeEntryInList(T key, S value, List<Map<T, S>> target) {
-    boolean found = false;
-    for (Map<T, S> map : target) {
-      if (map.containsKey(key)) {
-        map.put(key, value);
-        found = true;
-      }
+        if (ArrayUtils.isEmpty(left)) {
+            res = right;
+        } else if (ArrayUtils.isEmpty(right)) {
+            res = left;
+        } else {
+            res = (T[]) Array.newInstance(left[0].getClass(), left.length + right.length);
+            System.arraycopy(left, 0, res, 0, left.length);
+            System.arraycopy(right, 0, res, left.length, right.length);
+        }
+
+        return res;
+    } // concat
+
+    /**
+     * New instance object.
+     *
+     * @param classname the classname
+     * @return the object
+     */
+    public static Object newInstance(String classname) {
+        return newInstance(classname, Object.class);
     }
 
-    if (!found) {
-      Map<T, S> newMap = new HashMap<>();
-      newMap.put(key, value);
-      target.add(newMap);
+    /**
+     * New instance t.
+     *
+     * @param <T>       the type parameter
+     * @param classname the classname
+     * @param cls       the cls
+     * @return the t
+     */
+    @SuppressWarnings("unchecked")
+    public static <T> T newInstance(String classname, Class<T> cls) {
+
+        if (StringUtils.isEmpty(classname)) {
+            throw new IllegalArgumentException();
+        }
+
+        if (cls == null) {
+            throw new IllegalArgumentException();
+        }
+
+        try {
+            Class<?> temp = Class.forName(classname);
+
+            if (!cls.isAssignableFrom(temp)) {
+                throw new ClassCastException(
+                        String.format("Failed to cast from '%s' to '%s'", classname, cls.getName()));
+            }
+
+            Class<? extends T> impl = (Class<? extends T>) temp;
+
+            return newInstance(impl);
+        } catch (ClassNotFoundException exception) {
+            throw new IllegalArgumentException(exception);
+        }
     }
-  }
+
+    /**
+     * New instance t.
+     *
+     * @param <T> the type parameter
+     * @param cls the cls
+     * @return the t
+     */
+    public static <T> T newInstance(Class<T> cls) {
+        try {
+            return cls.newInstance();
+        } catch (InstantiationException | IllegalAccessException exception) {
+            throw new RuntimeException(exception);
+        }
+    }
+
+    /**
+     * Print stack trace string.
+     *
+     * @return the string
+     */
+    public static String printStackTrace() {
+        StringBuilder sb = new StringBuilder();
+        StackTraceElement[] trace = Thread.currentThread().getStackTrace();
+        for (StackTraceElement traceElement : trace) {
+            sb.append("\t  ").append(traceElement);
+            sb.append(System.lineSeparator());
+        }
+        return sb.toString();
+    }
+
+    /**
+     * Converts array of strings to comma-separated string.
+     *
+     * @param arr array of strings
+     * @return the string
+     */
+    public static String arrayToCommaSeparatedString(String[] arr) {
+        return arrayToSeparatedString(arr, ',');
+    }
+
+    /**
+     * Collection to comma separated string string.
+     *
+     * @param elementCollection the element collection
+     * @return the string
+     */
+    public static String collectionToCommaSeparatedString(Collection<String> elementCollection) {
+        return String.join(",", elementCollection);
+    }
+
+    /**
+     * Converts array of strings to string separated with specified character.
+     *
+     * @param arr       array of strings
+     * @param separator the separator
+     * @return the string
+     */
+    public static String arrayToSeparatedString(String[] arr, char separator) {
+        return String.join(Character.toString(separator), arr);
+    }
+
+    /**
+     * Converts array of strings to string separated with specified character.
+     *
+     * @param list      array of strings
+     * @param separator the separator
+     * @return the string
+     */
+    public static String listToSeparatedString(List<String> list, char separator) {
+        return String.join(Character.toString(separator), list);
+    }
+
+    /**
+     * Duplicate string with delimiter string.
+     *
+     * @param arg                  the arg
+     * @param separator            the separator
+     * @param numberOfDuplications the number of duplications
+     * @return the string
+     */
+    public static String duplicateStringWithDelimiter(String arg, char separator,
+                                                      int numberOfDuplications) {
+        StringBuilder sb = new StringBuilder();
+
+        for (int i = 0; i < numberOfDuplications; i++) {
+            if (i > 0) {
+                sb.append(separator);
+            }
+            sb.append(arg);
+        }
+        return sb.toString();
+    }
+
+    /**
+     * To single element set set.
+     *
+     * @param <T>     the class of the objects in the set
+     * @param element the single element to be contained in the returned Set
+     * @return an immutable set containing only the specified object. The returned set is
+     * serializable.
+     */
+    public static <T> Set<T> toSingleElementSet(T element) {
+        return Collections.singleton(element);
+
+    }
+
+    /**
+     * Merge lists of map list.
+     *
+     * @param <T>    the type parameter
+     * @param <S>    the type parameter
+     * @param target the target
+     * @param source the source
+     * @return the list
+     */
+    public static <T, S> List<Map<T, S>> mergeListsOfMap(List<Map<T, S>> target,
+                                                         List<Map<T, S>> source) {
+        List<Map<T, S>> retList = new ArrayList<>();
+        if (Objects.nonNull(target)) {
+            retList.addAll(target);
+        }
+
+        if (Objects.nonNull(source)) {
+            for (Map<T, S> sourceMap : source) {
+                for (Map.Entry<T, S> entry : sourceMap.entrySet()) {
+                    mergeEntryInList(entry.getKey(), entry.getValue(), retList);
+                }
+            }
+        }
+        return retList;
+    }
+
+    /**
+     * Merge lists list.
+     *
+     * @param <T>    the type parameter
+     * @param target the target
+     * @param source the source
+     * @return the list
+     */
+    public static <T> List<T> mergeLists(List<T> target, List<T> source) {
+        List<T> retList = new ArrayList<>();
+
+        if (Objects.nonNull(source)) {
+            retList.addAll(source);
+        }
+        if (Objects.nonNull(target)) {
+            retList.addAll(target);
+        }
+
+        return retList;
+    }
+
+    /**
+     * Merge entry in list.
+     *
+     * @param <T>    the type parameter
+     * @param <S>    the type parameter
+     * @param key    the key
+     * @param value  the value
+     * @param target the target
+     */
+    public static <T, S> void mergeEntryInList(T key, S value, List<Map<T, S>> target) {
+        boolean found = false;
+        for (Map<T, S> map : target) {
+            if (map.containsKey(key)) {
+                map.put(key, value);
+                found = true;
+            }
+        }
+
+        if (!found) {
+            Map<T, S> newMap = new HashMap<>();
+            newMap.put(key, value);
+            target.add(newMap);
+        }
+    }
 
 
-  /**
-   * Merge maps map.
-   *
-   * @param <T>    the type parameter
-   * @param <S>    the type parameter
-   * @param firstMap the firstMap
-   * @param secondMap the secondMap
-   * @return the map
-   * Second Map is overridden data from the first map
-   */
-  public static <T, S> Map<T, S> mergeMaps(Map<T, S> firstMap, Map<T, S> secondMap) {
-    Map<T, S> retMap = new HashMap<>();
-    if (MapUtils.isNotEmpty(firstMap)) {
-      retMap.putAll(firstMap);
+    /**
+     * Merge maps map.
+     *
+     * @param <T>       the type parameter
+     * @param <S>       the type parameter
+     * @param firstMap  the firstMap
+     * @param secondMap the secondMap
+     * @return the map
+     * Second Map is overridden data from the first map
+     */
+    public static <T, S> Map<T, S> mergeMaps(Map<T, S> firstMap, Map<T, S> secondMap) {
+        Map<T, S> retMap = new HashMap<>();
+        if (MapUtils.isNotEmpty(firstMap)) {
+            retMap.putAll(firstMap);
+        }
+        if (MapUtils.isNotEmpty(secondMap)) {
+            retMap.putAll(secondMap);
+        }
+        return retMap;
     }
-    if (MapUtils.isNotEmpty(secondMap)) {
-      retMap.putAll(secondMap);
-    }
-    return retMap;
-  }
 
 }
 
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/json/JsonUtil.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/json/JsonUtil.java
index 83ad43c..b83ad27 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/json/JsonUtil.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/json/JsonUtil.java
@@ -12,7 +12,7 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
-*/
+ */
 
 package org.openecomp.core.utilities.json;
 
@@ -22,6 +22,17 @@
 import com.google.gson.JsonParser;
 import com.google.gson.JsonSyntaxException;
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
 import org.apache.commons.collections4.CollectionUtils;
 import org.everit.json.schema.EnumSchema;
 import org.everit.json.schema.Schema;
@@ -35,186 +46,175 @@
 import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
 
 /**
  * The type Json util.
  */
 public class JsonUtil {
-  private static final Logger LOGGER = LoggerFactory.getLogger(JsonUtil.class);
-  private static final GsonBuilder gsonBuilder;
-  private static final Gson gson;
 
-  static {
-    gsonBuilder = new GsonBuilder();
-    gsonBuilder.registerTypeAdapter(RequirementDefinition.class, new
-        RequirementDefinitionDeserializer());
-    gson = gsonBuilder.create();
-  }
+    private static final Logger LOGGER = LoggerFactory.getLogger(JsonUtil.class);
+    private static final GsonBuilder gsonBuilder;
+    private static final Gson gson;
 
-  private JsonUtil() {
-  }
-
-  /**
-   * Object 2 json string.
-   *
-   * @param obj the obj
-   * @return the string
-   */
-  public static String object2Json(Object obj) {
-    return sbObject2Json(obj).toString();
-
-  }
-
-  /**
-   * Sb object 2 json string builder.
-   *
-   * @param obj the obj
-   * @return the string builder
-   */
-  public static StringBuilder sbObject2Json(Object obj) {
-    return new StringBuilder(new GsonBuilder().setPrettyPrinting().create().toJson(obj));
-  }
-
-  /**
-   * Json 2 object t.
-   *
-   * @param <T>      the type parameter
-   * @param json     the json
-   * @param classOfT the class of t
-   * @return the t
-   */
-  public static <T> T json2Object(String json, Class<T> classOfT) {
-    T typ;
-    try {
-      try (Reader br = new StringReader(json)) {
-        typ = gson.fromJson(br, classOfT);
-      }
-    } catch (JsonIOException | JsonSyntaxException | IOException exception) {
-      throw new RuntimeException(exception);
-    }
-    return typ;
-  }
-
-  /**
-   * Json 2 object t.
-   *
-   * @param <T>      the type parameter
-   * @param is       the is
-   * @param classOfT the class of t
-   * @return the t
-   */
-  public static <T> T json2Object(InputStream is, Class<T> classOfT) {
-    T type;
-      try (Reader br = new BufferedReader(new InputStreamReader(is))) {
-        type = new Gson().fromJson(br, classOfT);
-      }
-     catch (JsonIOException | JsonSyntaxException | IOException exception) {
-      throw new RuntimeException(exception);
-    }
-    return type;
-  }
-
-
-  /**
-   * Is valid json boolean.
-   *
-   * @param json the json
-   * @return the boolean
-   */
-  //todo check https://github.com/stleary/JSON-java as replacement for this code
-  public static boolean isValidJson(String json) {
-    try {
-      return new JsonParser().parse(json).isJsonObject();
-    } catch (JsonSyntaxException jse) {
-      LOGGER.error("Invalid json, Failed to parse json", jse);
-      return false;
-    }
-  }
-
-  /**
-   * Validate list.
-   *
-   * @param json       the json
-   * @param jsonSchema the json schema
-   * @return the list
-   */
-  public static List<String> validate(String json, String jsonSchema) {
-    List<ValidationException> validationErrors = validateUsingEverit(json, jsonSchema);
-    return validationErrors == null ? null
-        : validationErrors.stream().map(JsonUtil::mapValidationExceptionToMessage)
-            .collect(Collectors.toList());
-  }
-
-  private static String mapValidationExceptionToMessage(ValidationException exception) {
-    Object schema = exception.getViolatedSchema();
-
-    if (schema instanceof EnumSchema) {
-      return mapEnumViolationToMessage(exception);
-    } else if (schema instanceof StringSchema) {
-      return mapStringViolationToMessage(exception);
+    static {
+        gsonBuilder = new GsonBuilder();
+        gsonBuilder.registerTypeAdapter(RequirementDefinition.class, new
+                RequirementDefinitionDeserializer());
+        gson = gsonBuilder.create();
     }
 
-    return exception.getMessage();
-  }
-
-  private static String mapEnumViolationToMessage(ValidationException exception) {
-    Set<Object> possibleValues = ((EnumSchema) exception.getViolatedSchema()).getPossibleValues();
-    return exception.getMessage().replaceFirst("enum value", possibleValues.size() == 1
-        ? String.format("value. %s is the only possible value for this field",
-        possibleValues.iterator().next())
-        : String.format("value. Possible values: %s", CommonMethods
-            .collectionToCommaSeparatedString(
-                possibleValues.stream().map(Object::toString).collect(Collectors.toList()))));
-  }
-
-  private static String mapStringViolationToMessage(ValidationException validationException) {
-    if (ValidationType.PATTERN.getKeyword().equals(validationException.getKeyword())) {
-      String message = validationException.getMessage();
-      String value = message.substring(message.indexOf("["), message.indexOf("]") + 1);
-      return message.replace("string " + value, value + " is not valid value. It");
-    }
-    return validationException.getMessage();
-  }
-
-  private static List<ValidationException> validateUsingEverit(String json, String jsonSchema) {
-    LOGGER.debug(
-        String.format("validateUsingEverit start, json=%s, jsonSchema=%s", json, jsonSchema));
-    if (json == null || jsonSchema == null) {
-      throw new IllegalArgumentException("Input strings json and jsonSchema can not be null");
+    private JsonUtil() {
     }
 
-    Schema schemaObj = SchemaLoader.load(new JSONObject(jsonSchema));
-    try {
-      schemaObj.validate(new JSONObject(json));
-    } catch (ValidationException ve) {
-      return CollectionUtils.isEmpty(ve.getCausingExceptions()) ? Collections.singletonList(ve)
-          : ve.getCausingExceptions();
-    }
-    return null;
-  }
+    /**
+     * Object 2 json string.
+     *
+     * @param obj the obj
+     * @return the string
+     */
+    public static String object2Json(Object obj) {
+        return sbObject2Json(obj).toString();
 
-  private enum ValidationType {
-    PATTERN("pattern");
-
-    private String keyword;
-
-    private ValidationType(String keyword) {
-      this.keyword = keyword;
     }
 
-    String getKeyword() {
-      return  keyword;
+    /**
+     * Sb object 2 json string builder.
+     *
+     * @param obj the obj
+     * @return the string builder
+     */
+    public static StringBuilder sbObject2Json(Object obj) {
+        return new StringBuilder(new GsonBuilder().setPrettyPrinting().create().toJson(obj));
     }
-  }
+
+    /**
+     * Json 2 object t.
+     *
+     * @param <T>      the type parameter
+     * @param json     the json
+     * @param classOfT the class of t
+     * @return the t
+     */
+    public static <T> T json2Object(String json, Class<T> classOfT) {
+        T typ;
+        try {
+            try (Reader br = new StringReader(json)) {
+                typ = gson.fromJson(br, classOfT);
+            }
+        } catch (JsonIOException | JsonSyntaxException | IOException exception) {
+            throw new RuntimeException(exception);
+        }
+        return typ;
+    }
+
+    /**
+     * Json 2 object t.
+     *
+     * @param <T>      the type parameter
+     * @param is       the is
+     * @param classOfT the class of t
+     * @return the t
+     */
+    public static <T> T json2Object(InputStream is, Class<T> classOfT) {
+        T type;
+        try (Reader br = new BufferedReader(new InputStreamReader(is))) {
+            type = new Gson().fromJson(br, classOfT);
+        } catch (JsonIOException | JsonSyntaxException | IOException exception) {
+            throw new RuntimeException(exception);
+        }
+        return type;
+    }
+
+
+    /**
+     * Is valid json boolean.
+     *
+     * @param json the json
+     * @return the boolean
+     */
+    //todo check https://github.com/stleary/JSON-java as replacement for this code
+    public static boolean isValidJson(String json) {
+        try {
+            return new JsonParser().parse(json).isJsonObject();
+        } catch (JsonSyntaxException jse) {
+            LOGGER.error("Invalid json, Failed to parse json", jse);
+            return false;
+        }
+    }
+
+    /**
+     * Validate list.
+     *
+     * @param json       the json
+     * @param jsonSchema the json schema
+     * @return the list
+     */
+    public static List<String> validate(String json, String jsonSchema) {
+        List<ValidationException> validationErrors = validateUsingEverit(json, jsonSchema);
+        return validationErrors == null ? null
+                : validationErrors.stream().map(JsonUtil::mapValidationExceptionToMessage)
+                        .collect(Collectors.toList());
+    }
+
+    private static String mapValidationExceptionToMessage(ValidationException exception) {
+        Object schema = exception.getViolatedSchema();
+
+        if (schema instanceof EnumSchema) {
+            return mapEnumViolationToMessage(exception);
+        } else if (schema instanceof StringSchema) {
+            return mapStringViolationToMessage(exception);
+        }
+
+        return exception.getMessage();
+    }
+
+    private static String mapEnumViolationToMessage(ValidationException exception) {
+        Set<Object> possibleValues = ((EnumSchema) exception.getViolatedSchema()).getPossibleValues();
+        return exception.getMessage().replaceFirst("enum value", possibleValues.size() == 1
+                ? String.format("value. %s is the only possible value for this field",
+                possibleValues.iterator().next())
+                : String.format("value. Possible values: %s", CommonMethods
+                        .collectionToCommaSeparatedString(
+                                possibleValues.stream().map(Object::toString).collect(Collectors.toList()))));
+    }
+
+    private static String mapStringViolationToMessage(ValidationException validationException) {
+        if (ValidationType.PATTERN.getKeyword().equals(validationException.getKeyword())) {
+            String message = validationException.getMessage();
+            String value = message.substring(message.indexOf("["), message.indexOf("]") + 1);
+            return message.replace("string " + value, value + " is not valid value. It");
+        }
+        return validationException.getMessage();
+    }
+
+    private static List<ValidationException> validateUsingEverit(String json, String jsonSchema) {
+        LOGGER.debug(
+                String.format("validateUsingEverit start, json=%s, jsonSchema=%s", json, jsonSchema));
+        if (json == null || jsonSchema == null) {
+            throw new IllegalArgumentException("Input strings json and jsonSchema can not be null");
+        }
+
+        Schema schemaObj = SchemaLoader.load(new JSONObject(jsonSchema));
+        try {
+            schemaObj.validate(new JSONObject(json));
+        } catch (ValidationException ve) {
+            return CollectionUtils.isEmpty(ve.getCausingExceptions()) ? Collections.singletonList(ve)
+                    : ve.getCausingExceptions();
+        }
+        return null;
+    }
+
+    private enum ValidationType {
+        PATTERN("pattern");
+
+        private String keyword;
+
+        ValidationType(String keyword) {
+            this.keyword = keyword;
+        }
+
+        String getKeyword() {
+            return keyword;
+        }
+    }
 }
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/CommonMethodsTest.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/CommonMethodsTest.java
index 2d97667..c6d87de 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/CommonMethodsTest.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/CommonMethodsTest.java
@@ -16,100 +16,285 @@
 
 package org.openecomp.core.utilities;
 
-import org.testng.annotations.Test;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
 
+import java.util.AbstractMap;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
-import static org.testng.Assert.*;
+import org.apache.commons.lang3.ArrayUtils;
+import org.testng.Assert;
+import org.testng.annotations.Test;
 
 public class CommonMethodsTest {
 
-  private static final String[] ARRAY = { "A", "B", "C" };
+    private static final String[] ARRAY = {"A", "B", "C"};
+    private static final String JAVA_LANG_STRING = "java.lang.String";
 
-  @Test
-  public void testPrintStackTrace() {
+    @Test
+    public void testPrintStackTrace() {
 
-    String trace = CommonMethods.printStackTrace();
-    assertTrue(trace.contains("org.openecomp.core.utilities" +
-        ".CommonMethods.printStackTrace(CommonMethods.java:"));
-    assertTrue(trace.contains("org.openecomp.core.utilities" +
-        ".CommonMethodsTest.testPrintStackTrace(CommonMethodsTest.java"));
-  }
+        String trace = CommonMethods.printStackTrace();
+        assertTrue(trace.contains("org.openecomp.core.utilities" +
+                ".CommonMethods.printStackTrace(CommonMethods.java:"));
+        assertTrue(trace.contains("org.openecomp.core.utilities" +
+                ".CommonMethodsTest.testPrintStackTrace(CommonMethodsTest.java"));
+    }
 
-  @Test
-  public void testArrayToCommaSeparatedString() {
-    assertEquals(CommonMethods.arrayToCommaSeparatedString(ARRAY), "A,B,C");
-  }
+    @Test
+    public void testArrayToCommaSeparatedString() {
+        assertEquals(CommonMethods.arrayToCommaSeparatedString(ARRAY), "A,B,C");
+    }
 
-  @Test
-  public void testArrayToCommaSeparatedStringEmpty() {
-    assertEquals(CommonMethods.arrayToCommaSeparatedString(new String[0]), "");
-  }
+    @Test
+    public void testArrayToCommaSeparatedStringEmpty() {
+        assertEquals(CommonMethods.arrayToCommaSeparatedString(new String[0]), "");
+    }
 
-  @Test
-  public void testArrayToCommaSeparatedStringNulls() {
-    assertEquals(CommonMethods.arrayToCommaSeparatedString(new String[] { null, null }), "null,null");
-  }
+    @Test
+    public void testArrayToCommaSeparatedStringNulls() {
+        assertEquals(CommonMethods.arrayToCommaSeparatedString(new String[] {null, null}), "null,null");
+    }
 
-  @Test
-  public void testArrayToCommaSeparatedStringEmptyStrings() {
-    assertEquals(CommonMethods.arrayToCommaSeparatedString(new String[] { "", "" }), ",");
-  }
+    @Test
+    public void testArrayToCommaSeparatedStringEmptyStrings() {
+        assertEquals(CommonMethods.arrayToCommaSeparatedString(new String[] {"", ""}), ",");
+    }
 
-  @Test(expectedExceptions = NullPointerException.class)
-  public void testArrayToCommaSeparatedStringNull() {
-    CommonMethods.arrayToCommaSeparatedString(null);
-  }
+    @Test(expectedExceptions = NullPointerException.class)
+    public void testArrayToCommaSeparatedStringNull() {
+        CommonMethods.arrayToCommaSeparatedString(null);
+    }
 
-  @Test
-  public void testArrayToSeparatedString() {
-    assertEquals(CommonMethods.arrayToSeparatedString(ARRAY, '/'),"A/B/C");
-  }
+    @Test
+    public void testArrayToSeparatedString() {
+        assertEquals(CommonMethods.arrayToSeparatedString(ARRAY, '/'), "A/B/C");
+    }
 
-  @Test
-  public void testArrayToSeparatedStringEmpty() {
-    assertEquals(CommonMethods.arrayToSeparatedString(new String[0], '/'),"");
-  }
+    @Test
+    public void testArrayToSeparatedStringEmpty() {
+        assertEquals(CommonMethods.arrayToSeparatedString(new String[0], '/'), "");
+    }
 
-  @Test
-  public void testArrayToSeparatedStringNulls() {
-    assertEquals(CommonMethods.arrayToSeparatedString(new String[] {null, null}, '/'),"null/null");
-  }
+    @Test
+    public void testArrayToSeparatedStringNulls() {
+        assertEquals(CommonMethods.arrayToSeparatedString(new String[] {null, null}, '/'), "null/null");
+    }
 
-  @Test
-  public void testArrayToSeparatedStringEmptyStrings() {
-    assertEquals(CommonMethods.arrayToSeparatedString(new String[] {"", ""}, '/'),"/");
-  }
+    @Test
+    public void testArrayToSeparatedStringEmptyStrings() {
+        assertEquals(CommonMethods.arrayToSeparatedString(new String[] {"", ""}, '/'), "/");
+    }
 
-  @Test(expectedExceptions = NullPointerException.class)
-  public void testArrayToSeparatedStringNull() {
-    CommonMethods.arrayToSeparatedString(null, '/');
-  }
+    @Test(expectedExceptions = NullPointerException.class)
+    public void testArrayToSeparatedStringNull() {
+        CommonMethods.arrayToSeparatedString(null, '/');
+    }
 
-  @Test
-  public void testCollectionToCommaSeparatedString() {
-    assertEquals(CommonMethods.collectionToCommaSeparatedString(Arrays.asList(ARRAY)), "A,B,C");
-  }
+    @Test
+    public void testCollectionToCommaSeparatedString() {
+        assertEquals(CommonMethods.collectionToCommaSeparatedString(Arrays.asList(ARRAY)), "A,B,C");
+    }
 
-  @Test
-  public void testCollectionToCommaSeparatedStringNulls() {
-    assertEquals(CommonMethods.collectionToCommaSeparatedString(Arrays.asList(null, null)), "null,null");
-  }
+    @Test
+    public void testCollectionToCommaSeparatedStringNulls() {
+        assertEquals(CommonMethods.collectionToCommaSeparatedString(Arrays.asList(null, null)), "null,null");
+    }
 
-  @Test
-  public void testCollectionToCommaSeparatedStringEmptyStrings() {
-    assertEquals(CommonMethods.collectionToCommaSeparatedString(Arrays.asList("", "")), ",");
-  }
+    @Test
+    public void testCollectionToCommaSeparatedStringEmptyStrings() {
+        assertEquals(CommonMethods.collectionToCommaSeparatedString(Arrays.asList("", "")), ",");
+    }
 
-  @Test
-  public void testCollectionToCommaSeparatedStringEmtpy() {
-    assertEquals(CommonMethods.collectionToCommaSeparatedString(Collections.emptySet()), "");
-  }
+    @Test
+    public void testCollectionToCommaSeparatedStringEmtpy() {
+        assertEquals(CommonMethods.collectionToCommaSeparatedString(Collections.emptySet()), "");
+    }
 
-  @Test(expectedExceptions = NullPointerException.class)
-  public void testCollectionToCommaSeparatedStringNull() {
-    assertNull(CommonMethods.collectionToCommaSeparatedString(null));
-  }
+    @Test(expectedExceptions = NullPointerException.class)
+    public void testCollectionToCommaSeparatedStringNull() {
+        assertNull(CommonMethods.collectionToCommaSeparatedString(null));
+    }
 
+    @Test
+    public void testNextUuId() {
+        assertNotNull(CommonMethods.nextUuId());
+    }
+
+    @Test
+    public void testConcatBothValuePresent() {
+        String []firstArray = {"1", "2"};
+        String []secondArray = {"3", "4"};
+
+        String []resultArray = CommonMethods.concat(firstArray, secondArray);
+
+        Assert.assertEquals(resultArray.length, 4);
+        Assert.assertTrue(ArrayUtils.contains(resultArray, secondArray[0])
+                && ArrayUtils.contains(resultArray, firstArray[0]));
+    }
+
+    @Test
+    public void testConcatBothFirstValuePresent() {
+        String []firstArray = {"1", "2"};
+
+        String []resultArray = CommonMethods.concat(firstArray, null);
+
+        Assert.assertEquals(resultArray.length, 2);
+        Assert.assertTrue(Arrays.asList(resultArray).containsAll(Arrays.asList(firstArray)));
+    }
+
+    @Test
+    public void testConcatBothSecondValuePresent() {
+        String []secondArray = {"3", "4"};
+
+        String []resultArray = CommonMethods.concat(null, secondArray);
+
+        Assert.assertEquals(resultArray.length, 2);
+        Assert.assertTrue(Arrays.asList(resultArray).containsAll(Arrays.asList(secondArray)));
+    }
+
+    @Test
+    public void testConcatBothValueNull() {
+        Assert.assertNull(CommonMethods.concat(null, null));
+    }
+
+    @Test
+    public void testNewInstance() {
+        Object obj = CommonMethods.newInstance(JAVA_LANG_STRING);
+        Assert.assertNotNull(obj);
+        Assert.assertTrue(obj instanceof String);
+    }
+
+    @Test(expectedExceptions = IllegalArgumentException.class)
+    public void testNewInstanceIncorrectClassProvided() {
+        Assert.assertNull(CommonMethods.newInstance("java.lang.Stringss"));
+    }
+
+    @Test(expectedExceptions = IllegalArgumentException.class)
+    public void testNewInstanceClassNotProvided() {
+        Assert.assertNull(CommonMethods.newInstance(null, Object.class));
+    }
+
+    @Test(expectedExceptions = IllegalArgumentException.class)
+    public void testNewInstanceObjectNotProvided() {
+        Assert.assertNull(CommonMethods.newInstance(JAVA_LANG_STRING, null));
+    }
+
+    @Test(expectedExceptions = ClassCastException.class)
+    public void testNewInstanceClassCastException() {
+        Assert.assertNull(CommonMethods.newInstance(JAVA_LANG_STRING, ArrayList.class));
+    }
+
+    @Test(expectedExceptions = RuntimeException.class)
+    public void testNewInstanceInvalidClassProvided() {
+        Assert.assertNull(CommonMethods.newInstance(List.class));
+    }
+
+    @Test
+    public void testListToSeparatedString() {
+        String str = "Concat,String";
+        String result = CommonMethods.listToSeparatedString(
+                Stream.of("Concat", "String").collect(Collectors.toList()), ',');
+
+        Assert.assertNotNull(result);
+        Assert.assertEquals(str, result);
+    }
+
+    @Test
+    public void testDuplicateStringWithDelimiter() {
+        String duplicateStr = CommonMethods.duplicateStringWithDelimiter("Duplicate", '#', 4);
+
+        Assert.assertNotNull(duplicateStr);
+
+        String[] duplicateStrArray = duplicateStr.split("#");
+        Assert.assertTrue(duplicateStr.contains("Duplicate"));
+        Assert.assertEquals(duplicateStrArray.length, 4);
+    }
+
+    @Test
+    public void testRoSingleElement() {
+        Set<String> stringSet = CommonMethods.toSingleElementSet("Set Element");
+        Assert.assertNotNull(stringSet);
+        Assert.assertTrue(stringSet.contains("Set Element"));
+    }
+
+    @Test
+    public void testMergeListsOfMap() {
+        Map<String, String> map1 = new HashMap<>();
+        map1.put("Port1", "NeutronPort_CP_1");
+        map1.put("Port2", "NeutronPort_CP_2");
+
+        Map<String, String> map2 = new HashMap<>();
+        map2.put("Server1", "NovaServer_1");
+        map2.put("Server2", "NovaServer_2");
+
+        List<Map<String, String>> list1 = Stream.of(map1, map2).collect(Collectors.toList());
+
+        Map<String, String> map3 = new HashMap<>();
+        map3.put("Port3", "NeutronPort_CP_3");
+        map3.put("Port4", "NeutronPort_CP_4");
+
+        Map<String, String> map4 = new HashMap<>();
+        map4.put("Server3", "NovaServer_3");
+        map4.put("Server4", "NovaServer_4");
+        map4.put("Server2", "NovaServer_2");
+
+        List<Map<String, String>> list2 = Stream.of(map3, map4).collect(Collectors.toList());
+
+        List<Map<String, String>> resultList = CommonMethods.mergeListsOfMap(list1, list2);
+
+        Assert.assertEquals(resultList.size(), 6);
+
+        //Verify for duplicate key
+        int count = 0;
+        for(Map<String, String> map : resultList) {
+            if(map.containsKey("Server2"))
+                count++;
+        }
+
+        Assert.assertEquals(1, count);
+    }
+
+    @Test
+    public void testMergeLists() {
+        List<String> list1 = Stream.of("First", "Second").collect(Collectors.toList());
+        List<String> list2 = Stream.of("Third", "Fourth").collect(Collectors.toList());
+
+        List<String> resultList = CommonMethods.mergeLists(list1, list2);
+
+        Assert.assertEquals(resultList.size(), 4);
+        Assert.assertTrue(resultList.containsAll(list1));
+        Assert.assertTrue(resultList.containsAll(list2));
+    }
+
+    @Test
+    public void testMergeMaps() {
+        Map<String, String> map1 = Stream.of(new AbstractMap.SimpleEntry<>("Port", "Neutron"),
+                                             new AbstractMap.SimpleEntry<>("Compute", "NOVA"))
+                                    .collect(Collectors.toMap(
+                                            AbstractMap.SimpleEntry::getKey,
+                                            AbstractMap.SimpleEntry::getValue));
+
+        Map<String, String> map2 = Stream.of(new AbstractMap.SimpleEntry<>("VLAN", "VMI"),
+                new AbstractMap.SimpleEntry<>("Volume", "Cinder"),
+                new AbstractMap.SimpleEntry<>("Port", "VMI"))
+                .collect(Collectors.toMap(
+                        AbstractMap.SimpleEntry::getKey,
+                        AbstractMap.SimpleEntry::getValue));
+
+        Map<String, String> resultMap = CommonMethods.mergeMaps(map1, map2);
+
+        Assert.assertEquals(resultMap.size(), 4);
+        Assert.assertEquals(resultMap.get("Port"), "VMI");
+    }
 }
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/file/FileContentHandlerTest.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/file/FileContentHandlerTest.java
index 57d69b1..1b06f37 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/file/FileContentHandlerTest.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/file/FileContentHandlerTest.java
@@ -1,14 +1,21 @@
 package org.openecomp.core.utilities.file;
 
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.AbstractMap;
+import java.util.Arrays;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Optional;
-
-import static org.testng.Assert.*;
-
 /**
  * @author EVITALIY
  * @since 24 Oct 17
@@ -18,7 +25,7 @@
     private static final String FILE_NAME = "test-file.txt";
 
     @Test
-    public void testProcessFileContent() throws Exception {
+    public void testProcessFileContent() {
 
         final int size = 13;
         FileContentHandler contentHandler = new FileContentHandler();
@@ -42,15 +49,71 @@
     }
 
     @Test
-    public void testProcessEmptyFileContent() throws Exception {
+    public void testProcessEmptyFileContent() {
         FileContentHandler contentHandler = new FileContentHandler();
         contentHandler.addFile(FILE_NAME, new byte[0]);
         assertFalse(contentHandler.processFileContent(FILE_NAME, Optional::isPresent));
     }
 
     @Test
-    public void testProcessNoFileContent() throws Exception {
+    public void testProcessNoFileContent() {
         FileContentHandler contentHandler = new FileContentHandler();
         assertFalse(contentHandler.processFileContent("filename", Optional::isPresent));
     }
+
+    @Test
+    public void testAddFiles() {
+        FileContentHandler contentHandler = new FileContentHandler();
+        contentHandler.addFile("org/openecomp/core/utilities/file/testFileUtils.txt",
+                new ByteArrayInputStream(new byte[100]));
+
+        Assert.assertNotNull(contentHandler.getFiles());
+        Assert.assertTrue(contentHandler.getFiles().containsKey("org/openecomp/core/utilities/file/testFileUtils.txt"));
+    }
+
+    @Test
+    public void testSetFiles() {
+        FileContentHandler contentHandler = new FileContentHandler();
+        Map<String, byte[]> fileMap = Stream.of(new AbstractMap.SimpleEntry<>("file1", new byte[0]),
+                    new AbstractMap.SimpleEntry<>("file2", new byte[0]))
+                .collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue));
+
+        contentHandler.setFiles(fileMap);
+
+        Assert.assertEquals(contentHandler.getFiles().size(), 2);
+        Assert.assertEquals(contentHandler.getFileList().size(), 2);
+        Assert.assertFalse(contentHandler.isEmpty());
+        contentHandler.remove("file1");
+        Assert.assertFalse(contentHandler.containsFile("file1"));
+    }
+
+    @Test
+    public void testAddAll() {
+        FileContentHandler contentHandler = new FileContentHandler();
+        FileContentHandler contentHandler1 = createFileHandlerContent();
+
+        contentHandler.addAll(contentHandler1);
+
+        Assert.assertTrue(contentHandler1.containsFile("file1"));
+        Assert.assertEquals(contentHandler.getFiles().size(), 2);
+    }
+
+    @Test
+    public void testSetFilesUsingFIleContentHandlerObject() {
+        FileContentHandler contentHandler1 = createFileHandlerContent();
+
+        FileContentHandler contentHandler = new FileContentHandler();
+        contentHandler.setFiles(contentHandler1);
+
+        Assert.assertEquals(contentHandler.getFiles().size(), 2);
+    }
+
+    private FileContentHandler createFileHandlerContent() {
+        FileContentHandler contentHandler1 = new FileContentHandler();
+        Map<String, byte[]> fileMap = Stream.of(new AbstractMap.SimpleEntry<>("file1", new byte[0]),
+                new AbstractMap.SimpleEntry<>("file2", new byte[0]))
+                .collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue));
+        contentHandler1.putAll(fileMap);
+        return contentHandler1;
+    }
 }
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/file/FileUtilsTest.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/file/FileUtilsTest.java
index 15ba629..74c1b14 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/file/FileUtilsTest.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/file/FileUtilsTest.java
@@ -16,18 +16,25 @@
 
 package org.openecomp.core.utilities.file;
 
-import org.apache.commons.io.IOUtils;
-import org.testng.annotations.Test;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
 
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URL;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
-import static org.testng.Assert.*;
+import org.apache.commons.io.IOUtils;
+import org.testng.Assert;
+import org.testng.annotations.Test;
 
 /**
  * @author EVITALIY
@@ -48,22 +55,22 @@
     };
 
     @Test
-    public void testReadViaInputStreamWithSlash() throws Exception {
+    public void testReadViaInputStreamWithSlash() {
         assertTrue(FileUtils.readViaInputStream(TEST_RESOURCE, TEST_FUNCTION) > 0);
     }
 
     @Test
-    public void testReadViaInputStreamWithoutSlash() throws Exception {
+    public void testReadViaInputStreamWithoutSlash() {
         assertTrue(FileUtils.readViaInputStream(TEST_RESOURCE, TEST_FUNCTION) > 0);
     }
 
     @Test(expectedExceptions = NullPointerException.class)
-    public void testReadViaInputStreamNull() throws Exception {
+    public void testReadViaInputStreamNull() {
         FileUtils.readViaInputStream((String) null, TEST_FUNCTION);
     }
 
     @Test(expectedExceptions = IllegalArgumentException.class)
-    public void testReadViaInputStreamNotFound() throws Exception {
+    public void testReadViaInputStreamNotFound() {
         FileUtils.readViaInputStream("notfound.txt", TEST_FUNCTION);
     }
 
@@ -91,10 +98,100 @@
     }
 
     @Test
-    public void testIsValidYamlExtension() throws IOException {
+    public void testIsValidYamlExtension() {
         assertTrue(FileUtils.isValidYamlExtension("yaml"));
         assertTrue(FileUtils.isValidYamlExtension("yml"));
         assertFalse(FileUtils.isValidYamlExtension("yml1"));
         assertFalse(FileUtils.isValidYamlExtension("zip"));
     }
+
+    @Test
+    public void testGetFileWithoutExtention() {
+        Assert.assertEquals(FileUtils.getFileWithoutExtention("test.txt"), "test");
+    }
+
+    @Test
+    public void testGetFileWithoutExtentionContainsNoExtension() {
+        Assert.assertEquals(FileUtils.getFileWithoutExtention("test"), "test");
+    }
+
+    @Test
+    public void testGetFileExtention() {
+        Assert.assertEquals(FileUtils.getFileExtension("test.txt"), "txt");
+    }
+
+    @Test
+    public void testGetNetworkPackageName() {
+        Assert.assertEquals(FileUtils.getNetworkPackageName("heat.zip"), "heat");
+    }
+
+    @Test
+    public void testGetNetworkPackageNameWithoutExtension() {
+        Assert.assertNull(FileUtils.getNetworkPackageName("heat"));
+    }
+
+    @Test
+    public void testToByteArrayNullStream() {
+        Assert.assertNotNull(FileUtils.toByteArray(null));
+    }
+
+    @Test
+    public void testGetAllLocations() {
+        List<URL> urlList = FileUtils.getAllLocations("org/openecomp/core/utilities/file/testFileUtils.txt");
+        Assert.assertNotNull(urlList);
+        Assert.assertEquals(urlList.size(), 1);
+    }
+
+    @Test
+    public void testConvertToBytesNullObject() {
+        Assert.assertNotNull(FileUtils.convertToBytes(null, null));
+    }
+
+    @Test
+    public void testConvertToBytes() {
+        byte[] bytesArray = FileUtils.convertToBytes(Stream.of("Json", "Util", "Test").collect(Collectors.toList()),
+                                FileUtils.FileExtension.YAML);
+
+        Assert.assertNotNull(bytesArray);
+    }
+
+    @Test
+    public void testConvertToBytesNotYaml() {
+        byte[] bytesArray = FileUtils.convertToBytes(Stream.of("Json", "Util", "Test").collect(Collectors.toList()),
+                FileUtils.FileExtension.JSON);
+
+        Assert.assertNotNull(bytesArray);
+    }
+
+    @Test
+    public void testConvertToInputStreamNullObject() {
+        Assert.assertNull(FileUtils.convertToInputStream(null, null));
+    }
+
+    @Test
+    public void testConvertToInputStream() {
+        InputStream inputStream = FileUtils.convertToInputStream(Stream.of("Json", "Util", "Test")
+                        .collect(Collectors.toList()), FileUtils.FileExtension.YAML);
+
+        Assert.assertNotNull(inputStream);
+    }
+
+    @Test(expectedExceptions = RuntimeException.class)
+    public void testLoadFileToInputStreamIncorrectFilePath() {
+        FileUtils.loadFileToInputStream("invalidfilepath");
+    }
+
+    @Test
+    public void testLoadFileToInputStream() throws IOException{
+        int i;
+        StringBuilder builder = new StringBuilder(20);
+        InputStream inputStream = FileUtils.loadFileToInputStream(
+                "org/openecomp/core/utilities/file/testFileUtils.txt");
+        while((i = inputStream.read())!=-1) {
+            builder.append((char)i);
+        }
+
+        Assert.assertNotNull(inputStream);
+        Assert.assertEquals(builder.toString(), "hello-test");
+    }
 }
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonSchemaDataGeneratorTest.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonSchemaDataGeneratorTest.java
index 9b21f63..e57cdc2 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonSchemaDataGeneratorTest.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonSchemaDataGeneratorTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -28,50 +28,56 @@
 
 public class JsonSchemaDataGeneratorTest {
 
-  public static final String SCHEMA_WITHOUT_DEFAULTS =
-          readFromFile("jsonUtil/json_schema/aSchema.json");
+    private static final String SCHEMA_WITHOUT_DEFAULTS =
+            readFromFile("jsonUtil/json_schema/aSchema.json");
 
-  public static final String SCHEMA_WITH_REFS_AND_DEFAULTS =
-          readFromFile("jsonUtil/json_schema/schemaWithRefsAndDefaults.json");
+    private static final String SCHEMA_WITH_REFS_AND_DEFAULTS =
+            readFromFile("jsonUtil/json_schema/schemaWithRefsAndDefaults.json");
 
-  public static final String SCHEMA_WITH_INVALID_DEFAULT =
-          readFromFile("jsonUtil/json_schema/schemaWithInvalidDefault.json");
+    private static final String SCHEMA_WITH_INVALID_DEFAULT =
+            readFromFile("jsonUtil/json_schema/schemaWithInvalidDefault.json");
 
-  public static final String SCHEMA_NIC =
-          readFromFile("jsonUtil/json_schema/nicSchema.json");
+    private static final String SCHEMA_NIC =
+            readFromFile("jsonUtil/json_schema/nicSchema.json");
 
-  @Test
-  public void testSchemaWithoutDefaults() {
-    testGenerate(SCHEMA_WITHOUT_DEFAULTS, new JSONObject());
-  }
+    @Test
+    public void testSchemaWithoutDefaults() {
+        testGenerate(SCHEMA_WITHOUT_DEFAULTS, new JSONObject());
+    }
 
-  @Test
-  public void testSchemaWithRefsAndDefaults() {
-    testGenerate(SCHEMA_WITH_REFS_AND_DEFAULTS,
-        new JSONObject(
-            "{\"cityOfBirth\":\"Tel Aviv\",\"address\":{\"city\":\"Tel Aviv\"},\"phoneNumber\":[{\"code\":1,\"location\":\"Home\"},{\"code\":2,\"location\":\"Office\"}]}"));
-  }
+    @Test
+    public void testSchemaWithRefsAndDefaults() {
+        testGenerate(SCHEMA_WITH_REFS_AND_DEFAULTS,
+                new JSONObject("{\"cityOfBirth\":\"Tel Aviv\",\"address\":{\"city\":\"Tel Aviv\"},"
+                        + "\"houseNumber\":1,\"pincode\":111111,"
+                        + "\"phoneNumber\":[{\"code\":1,\"location\":\"Home\"},{\"code\":2,\"location\":\"Office\"}]}"));
+    }
 
-  @Test(expectedExceptions = JSONException.class)
-  public void testSchemaWithInvalidDefault() {
-    testGenerate(SCHEMA_WITH_INVALID_DEFAULT, null);
-  }
+    @Test(expectedExceptions = JSONException.class)
+    public void testSchemaWithInvalidDefault() {
+        testGenerate(SCHEMA_WITH_INVALID_DEFAULT, null);
+    }
 
-  @Test
-  public void testNicQuestionnaireSchema() {
-    testGenerate(SCHEMA_NIC,
-        new JSONObject("{\"ipConfiguration\":{\"ipv4Required\":true,\"ipv6Required\":false}}"));
-  }
+    @Test
+    public void testNicQuestionnaireSchema() {
+        testGenerate(SCHEMA_NIC,
+                new JSONObject("{\"ipConfiguration\":{\"ipv4Required\":true,\"ipv6Required\":false}}"));
+    }
 
-  private void testGenerate(String schema, JSONObject expectedData) {
-    JsonSchemaDataGenerator jsonSchemaDataGenerator = new JsonSchemaDataGenerator(schema);
-    String data = jsonSchemaDataGenerator.generateData();
-    System.out.println(data);
-    JSONObject dataJson = new JSONObject(data);
-    Assert.assertTrue(expectedData.similar(dataJson));
-  }
+    @Test(expectedExceptions = IllegalArgumentException.class)
+    public void testConstructorException() {
+        Assert.assertNull(new JsonSchemaDataGenerator(null));
+    }
 
-  private static String readFromFile(String filename) {
-    return FileUtils.readViaInputStream(filename, stream -> new String(FileUtils.toByteArray(stream)));
-  }
+    private void testGenerate(String schema, JSONObject expectedData) {
+        JsonSchemaDataGenerator jsonSchemaDataGenerator = new JsonSchemaDataGenerator(schema);
+        jsonSchemaDataGenerator.setIncludeDefaults(true);
+        String data = jsonSchemaDataGenerator.generateData();
+        JSONObject dataJson = new JSONObject(data);
+        Assert.assertTrue(expectedData.similar(dataJson));
+    }
+
+    private static String readFromFile(String filename) {
+        return FileUtils.readViaInputStream(filename, stream -> new String(FileUtils.toByteArray(stream)));
+    }
 }
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java
index d89019b..02bc568 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -21,45 +21,120 @@
 package org.openecomp.core.utilities.json;
 
 
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
 import org.openecomp.core.utilities.file.FileUtils;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import java.util.List;
-
 public class JsonUtilTest {
 
-  @Test
-  public void testValidJsonValidate() throws Exception {
+    @Test
+    public void testValidJsonValidate() {
 
 
+        String json = FileUtils.readViaInputStream("jsonUtil/json/a.json",
+                stream -> new String(FileUtils.toByteArray(stream)));
 
-    String json = FileUtils.readViaInputStream("jsonUtil/json/a.json",
-            stream -> new String(FileUtils.toByteArray(stream)));
+        String jsonSchema = FileUtils.readViaInputStream("jsonUtil/json_schema/aSchema.json",
+                stream -> new String(FileUtils.toByteArray(stream)));
 
-    String jsonSchema = FileUtils.readViaInputStream("jsonUtil/json_schema/aSchema.json",
-            stream -> new String(FileUtils.toByteArray(stream)));
+        List<String> validationErrors = JsonUtil.validate(json, jsonSchema);
+        Assert.assertNull(validationErrors);
+    }
 
-    List<String> validationErrors = JsonUtil.validate(json, jsonSchema);
-    Assert.assertNull(validationErrors);
-  }
+    @Test
+    public void testInValidJsonValidate() {
 
-  @Test
-  public void testInValidJsonValidate() throws Exception {
+        String json = FileUtils.readViaInputStream("jsonUtil/json/a_invalid.json",
+                stream -> new String(FileUtils.toByteArray(stream)));
+        String jsonSchema = FileUtils.readViaInputStream("jsonUtil/json_schema/aSchema.json",
+                stream -> new String(FileUtils.toByteArray(stream)));
 
-    String json = FileUtils.readViaInputStream("jsonUtil/json/a_invalid.json",
-            stream -> new String(FileUtils.toByteArray(stream)));
-    String jsonSchema = FileUtils.readViaInputStream("jsonUtil/json_schema/aSchema.json",
-            stream -> new String(FileUtils.toByteArray(stream)));
+        List<String> validationErrors = JsonUtil.validate(json, jsonSchema);
+        Assert.assertNotNull(validationErrors);
+        Assert.assertEquals(validationErrors.size(), 5);
+        Assert.assertEquals(validationErrors.get(0),
+                "#/cityOfBirth: Paris is not a valid value. Possible values: New York,Tel Aviv,London");
+        Assert.assertEquals(validationErrors.get(1),
+                "#/address: {\"streetAddress\":\"21 2nd Street\",\"city\":\"Paris\"} is not a valid value. {\"streetAddress\":\"21 2nd Street\",\"city\":\"New York\"} is the only possible value for this field");
+        Assert.assertEquals(validationErrors.get(2),
+                "#/phoneNumber/0/code: expected type: Number, found: String");
+        Assert.assertEquals(validationErrors.get(3),
+                "#/gender: expected type: String, found: Integer");
+        Assert.assertEquals(validationErrors.get(4), "#/dateOfBirth: [20101988] is not valid value. "
+                + "It does not match pattern (0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)");
+    }
 
-    List<String> validationErrors = JsonUtil.validate(json, jsonSchema);
-    Assert.assertNotNull(validationErrors);
-    Assert.assertEquals(validationErrors.size(), 3);
-    Assert.assertEquals(validationErrors.get(0),
-        "#/cityOfBirth: Paris is not a valid value. Possible values: New York,Tel Aviv,London");
-    Assert.assertEquals(validationErrors.get(1),
-        "#/address: {\"streetAddress\":\"21 2nd Street\",\"city\":\"Paris\"} is not a valid value. {\"streetAddress\":\"21 2nd Street\",\"city\":\"New York\"} is the only possible value for this field");
-    Assert.assertEquals(validationErrors.get(2),
-        "#/phoneNumber/0/code: expected type: Number, found: String");
-  }
+    @Test(expectedExceptions = IllegalArgumentException.class)
+    public void testInValidJsonValidateNullJson() {
+        JsonUtil.validate(null, null);
+    }
+
+    @Test
+    public void testObject2Json() {
+        List<String> list = Stream.of("Json", "Util", "Test").collect(Collectors.toList());
+
+        String resultStr = JsonUtil.object2Json(list);
+        Assert.assertNotNull(resultStr);
+        Assert.assertTrue(resultStr.contains("Json") && resultStr.contains("Util"));
+    }
+
+    @Test
+    public void testSbObject2Json() {
+        List<String> list = Stream.of("Json", "Util", "Test").collect(Collectors.toList());
+
+        StringBuilder resultStr = JsonUtil.sbObject2Json(list);
+        Assert.assertNotNull(resultStr);
+        Assert.assertTrue(resultStr.toString().contains("Json")
+                && resultStr.toString().contains("Util"));
+    }
+
+    @Test
+    public void testJson2Object() {
+        String inputStr = "[Json, Util, Test]";
+        List list = JsonUtil.json2Object(inputStr, ArrayList.class);
+        Assert.assertNotNull(list);
+        Assert.assertEquals(list.size(), 3);
+    }
+
+    @Test(expectedExceptions = RuntimeException.class)
+    public void testJson2ObjectIncorrectJson() {
+        String inputStr = "{[Json, Util, Test]}";
+        List list = JsonUtil.json2Object(inputStr, ArrayList.class);
+        Assert.assertNull(list);
+    }
+
+    @Test
+    public void testJson2ObjectInputStream() {
+        String inputStr = "[Json, Util, Test]";
+        List list = JsonUtil.json2Object(new ByteArrayInputStream(inputStr.getBytes()), ArrayList.class);
+        Assert.assertNotNull(list);
+        Assert.assertEquals(list.size(), 3);
+    }
+
+    @Test(expectedExceptions = RuntimeException.class)
+    public void testJson2ObjectIncorrectJsonInputStream() {
+        String inputStr = "{[Json, Util, Test]}";
+        List list = JsonUtil.json2Object(new ByteArrayInputStream(inputStr.getBytes()), ArrayList.class);
+        Assert.assertNull(list);
+    }
+
+    @Test
+    public void testIsValidJson() {
+        String inputStr = "{\n"
+                + "\t\"obj\": [\"Json\", \"Util\", \"Test\"]\n"
+                + "}";
+        Assert.assertTrue(JsonUtil.isValidJson(inputStr));
+    }
+    @Test
+    public void testIsValidJsonFail() {
+        String inputStr = "{[Json, Util, Test]}";
+        Assert.assertFalse(JsonUtil.isValidJson(inputStr));
+    }
+
 }
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/jsonUtil/json/a_invalid.json b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/jsonUtil/json/a_invalid.json
index 8a02522..a9aaede 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/jsonUtil/json/a_invalid.json
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/jsonUtil/json/a_invalid.json
@@ -9,5 +9,7 @@
       "code": "test"
     }
   ],
+  "dateOfBirth" : "20101988",
+  "gender" : 123,
   "cityOfBirth": "Paris"
 }
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/jsonUtil/json_schema/aSchema.json b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/jsonUtil/json_schema/aSchema.json
index a77e38d..44b2c1c 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/jsonUtil/json_schema/aSchema.json
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/jsonUtil/json_schema/aSchema.json
@@ -51,6 +51,13 @@
         ]
       }
     },
+    "dateOfBirth" : {
+      "type" : "string",
+      "pattern" : "(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)"
+    },
+    "gender" : {
+      "type" : "string"
+    },
     "cityOfBirth" : { "$ref"  : "#/definitions/city"}
   },
   "required": [
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/jsonUtil/json_schema/schemaWithRefsAndDefaults.json b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/jsonUtil/json_schema/schemaWithRefsAndDefaults.json
index de027b9..c051f79 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/jsonUtil/json_schema/schemaWithRefsAndDefaults.json
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/jsonUtil/json_schema/schemaWithRefsAndDefaults.json
@@ -16,6 +16,14 @@
   },
   "type": "object",
   "properties": {
+    "pincode" : {
+      "type" : "integer",
+      "default": 111111
+    },
+    "houseNumber" : {
+      "type" : "number",
+      "default": 1
+    },
     "address": {
       "type": "object",
       "properties": {
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/org/openecomp/core/utilities/file/testFileUtils.txt b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/org/openecomp/core/utilities/file/testFileUtils.txt
new file mode 100644
index 0000000..7794388
--- /dev/null
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/resources/org/openecomp/core/utilities/file/testFileUtils.txt
@@ -0,0 +1 @@
+hello-test
\ No newline at end of file