Improve LicenseManagerImpl implementation 43/57443/5
authorJoanna Jeremicz <joanna.jeremicz@nokia.com>
Mon, 23 Jul 2018 10:10:41 +0000 (12:10 +0200)
committerTakamune Cho <tc012c@att.com>
Thu, 9 Aug 2018 18:01:41 +0000 (18:01 +0000)
- Use STAX API for XML processing instead of parsing it manually
- Rearrange code for clarity and testing
- Adjust JUnits accordingly

Issue-ID: APPC-1024
Change-Id: I9d655b581adb401b0c20bc29eda6a2bce1f2ef89
Signed-off-by: Joanna Jeremicz <joanna.jeremicz@nokia.com>
appc-dispatcher/appc-license-manager/appc-license-manager-api/src/main/java/org/onap/appc/licmgr/objects/LicenseModel.java
appc-dispatcher/appc-license-manager/appc-license-manager-api/src/main/java/org/onap/appc/licmgr/objects/LicenseModelBuilder.java [new file with mode: 0644]
appc-dispatcher/appc-license-manager/appc-license-manager-api/src/test/java/org/onap/appc/licmgr/objects/TestLicenseModel.java
appc-dispatcher/appc-license-manager/appc-license-manager-core/src/main/java/org/onap/appc/licmgr/impl/LicenseManagerImpl.java
appc-dispatcher/appc-license-manager/appc-license-manager-core/src/main/java/org/onap/appc/licmgr/impl/VfLicenseModelXmlConsumer.java [new file with mode: 0644]
appc-dispatcher/appc-license-manager/appc-license-manager-core/src/main/java/org/onap/appc/licmgr/impl/XmlToLicenseModelConverter.java [new file with mode: 0644]
appc-dispatcher/appc-license-manager/appc-license-manager-core/src/test/java/org/onap/appc/licmgr/impl/LicenseManagerImplTest.java
appc-dispatcher/appc-license-manager/appc-license-manager-core/src/test/java/org/onap/appc/licmgr/impl/XmlToLicenseModelConverterTest.java [new file with mode: 0644]
appc-dispatcher/appc-license-manager/appc-license-manager-core/src/test/resources/test-vf-license-model.xml [new file with mode: 0644]

index 070acdf..5125737 100644 (file)
@@ -6,6 +6,8 @@
  * ================================================================================
  * Copyright (C) 2017 Amdocs
  * =============================================================================
+ * Modifications Copyright (C) 2018 Nokia
+ * =============================================================================
  * 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
 
 package org.onap.appc.licmgr.objects;
 
-public class LicenseModel {
+public final class LicenseModel {
 
-    private String entitlementPoolUuid;
+    private final String entitlementPoolUuid;
+    private final String licenseKeyGroupUuid;
 
-    private String licenseKeyGroupUuid;
+    public LicenseModel(String entitlementPoolUuid, String licenseKeyGroupUuid){
+        this.entitlementPoolUuid = entitlementPoolUuid;
+        this.licenseKeyGroupUuid = licenseKeyGroupUuid;
+    }
 
     public String getEntitlementPoolUuid() {
         return entitlementPoolUuid;
     }
-
-    public void setEntitlementPoolUuid(String entitlementPoolUuid) {
-        this.entitlementPoolUuid = entitlementPoolUuid;
-    }
-
     public String getLicenseKeyGroupUuid() {
         return licenseKeyGroupUuid;
     }
-
-    public void setLicenseKeyGroupUuid(String licenseKeyGroupUuid) {
-        this.licenseKeyGroupUuid = licenseKeyGroupUuid;
-    }
 }
diff --git a/appc-dispatcher/appc-license-manager/appc-license-manager-api/src/main/java/org/onap/appc/licmgr/objects/LicenseModelBuilder.java b/appc-dispatcher/appc-license-manager/appc-license-manager-api/src/main/java/org/onap/appc/licmgr/objects/LicenseModelBuilder.java
new file mode 100644 (file)
index 0000000..44f8a13
--- /dev/null
@@ -0,0 +1,45 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2018 Nokia
+ * =============================================================================
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.appc.licmgr.objects;
+
+public class LicenseModelBuilder {
+    private String entitlementPoolUuid;
+    private String licenseKeyGroupUuid;
+
+    public LicenseModelBuilder setEntitlementPoolUuid(String entitlementPoolUuid){
+        this.entitlementPoolUuid = entitlementPoolUuid;
+        return this;
+    }
+
+    public LicenseModelBuilder setLicenseKeyGroupUuid(String licenseKeyGroupUuid){
+        this.licenseKeyGroupUuid = licenseKeyGroupUuid;
+        return this;
+    }
+
+    public boolean isReady() {
+        return entitlementPoolUuid != null && licenseKeyGroupUuid != null;
+    }
+
+    public LicenseModel build(){
+        return new LicenseModel(entitlementPoolUuid, licenseKeyGroupUuid);
+    }
+}
index bcb8626..9e1d886 100644 (file)
@@ -3,7 +3,9 @@
 * ONAP : APPC
 * ================================================================================
 * Copyright 2018 TechMahindra
-*=================================================================================
+* ================================================================================
+* Modifications Copyright (C) 2018 Nokia
+* ================================================================================
 * 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
@@ -28,19 +30,17 @@ public class TestLicenseModel {
 
     @Before
     public void setUp() {
-        licenseModel = new LicenseModel();
+        licenseModel = new LicenseModel("EntitlementPoolUuid", "LicenseKeyGroupUuid");
     }
 
     @Test
     public void testGetEntitlementPoolUuid() {
-        licenseModel.setEntitlementPoolUuid("EntitlementPoolUuid");
         Assert.assertNotNull(licenseModel.getEntitlementPoolUuid());
         Assert.assertEquals(licenseModel.getEntitlementPoolUuid(), "EntitlementPoolUuid");
     }
 
     @Test
     public void testGetLicenseKeyGroupUuid() {
-        licenseModel.setLicenseKeyGroupUuid("LicenseKeyGroupUuid");
         Assert.assertNotNull(licenseModel.getLicenseKeyGroupUuid());
         Assert.assertEquals(licenseModel.getLicenseKeyGroupUuid(), "LicenseKeyGroupUuid");
     }
index 6f8d33e..58b9b9e 100644 (file)
@@ -6,18 +6,20 @@
  * ================================================================================
  * Copyright (C) 2017 Amdocs
  * =============================================================================
+ * Modifications Copyright (C) 2018 Nokia
+ * =============================================================================
  * 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.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * 
+ *
  * ============LICENSE_END=========================================================
  */
 
@@ -25,12 +27,15 @@ package org.onap.appc.licmgr.impl;
 
 import static org.onap.appc.licmgr.Constants.SDC_ARTIFACTS_FIELDS.ARTIFACT_CONTENT;
 
+import java.io.IOException;
 import java.util.Map;
-
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
 import org.onap.appc.licmgr.LicenseDataAccessService;
 import org.onap.appc.licmgr.LicenseManager;
 import org.onap.appc.licmgr.exception.DataAccessException;
 import org.onap.appc.licmgr.objects.LicenseModel;
+import org.onap.appc.licmgr.objects.LicenseModelBuilder;
 
 
 @SuppressWarnings("all")
@@ -38,50 +43,39 @@ public class LicenseManagerImpl implements LicenseManager {
 
     private LicenseDataAccessService DAService;
 
-    public void setDAService(LicenseDataAccessService daSrv){
-        DAService = daSrv;
-    }
-
     public LicenseManagerImpl() {
+
     }
 
     @Override
     public LicenseModel retrieveLicenseModel(String vnfType, String vnfVersion) throws DataAccessException {
 
-        LicenseModel licenseModel;
+        LicenseModelBuilder builder = new LicenseModelBuilder();
         try {
-            Map<String,String> resultMap = DAService.retrieveLicenseModelData(vnfType, vnfVersion);
+            Map<String, String> resultMap = DAService.retrieveLicenseModelData(vnfType, vnfVersion);
             if (resultMap.isEmpty()) {
-                throw new DataAccessException(String.format("License model not found for vnfType='%s' and vnfVersion='%s'", vnfType, vnfVersion));
+                throw new DataAccessException(
+                    String.format("License model not found for vnfType='%s' and vnfVersion='%s'", vnfType, vnfVersion));
             }
             String licenseModelXML = resultMap.get(ARTIFACT_CONTENT.name());
-            licenseModel = convert(licenseModelXML);  // JAXBUtil.<VfLicenseModel>toObject(licenseModelXML, VfLicenseModel.class);
+            convert(licenseModelXML, builder);
         } catch (DataAccessException le) {
             throw le;
         } catch (Exception e) {
             throw new DataAccessException(e);
         }
-        return licenseModel;
+        return builder.build();
     }
 
-
-    private static LicenseModel convert(String xml) {
-
-        LicenseModel licenseModel = new LicenseModel();
-
-        int posEntitlementStart = xml.indexOf("<entitlement-pool-uuid>");
-        int posEntitlementEnd = xml.indexOf("</entitlement-pool-uuid>", posEntitlementStart);
-        if (-1 != posEntitlementStart) {
-            licenseModel.setEntitlementPoolUuid(xml.substring(posEntitlementStart + "<entitlement-pool-uuid>".length(), posEntitlementEnd));
-        }
-
-        int posLicenseStart = xml.indexOf("<license-key-group-uuid>");
-        int posLicenseEnd = xml.indexOf("</license-key-group-uuid>", posEntitlementStart);
-        if (-1 != posLicenseStart) {
-            licenseModel.setLicenseKeyGroupUuid(xml.substring(posLicenseStart + "<license-key-group-uuid>".length(), posLicenseEnd));
-        }
-
-        return licenseModel;
+    public void setDAService(LicenseDataAccessService daSrv) {
+        DAService = daSrv;
     }
 
+    private LicenseModelBuilder convert(String xml, LicenseModelBuilder builder)
+        throws XMLStreamException, IOException {
+        XmlToLicenseModelConverter converter = new XmlToLicenseModelConverter(
+            XMLInputFactory.newInstance());
+        converter.convert(VfLicenseModelXmlConsumer::setLicenseModel, xml, builder);
+        return builder;
+    }
 }
diff --git a/appc-dispatcher/appc-license-manager/appc-license-manager-core/src/main/java/org/onap/appc/licmgr/impl/VfLicenseModelXmlConsumer.java b/appc-dispatcher/appc-license-manager/appc-license-manager-core/src/main/java/org/onap/appc/licmgr/impl/VfLicenseModelXmlConsumer.java
new file mode 100644 (file)
index 0000000..6cfb77e
--- /dev/null
@@ -0,0 +1,57 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2018 Nokia
+ * ================================================================================
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.appc.licmgr.impl;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import org.onap.appc.licmgr.objects.LicenseModelBuilder;
+
+class VfLicenseModelXmlConsumer {
+
+    private static final String ENTITLEMENT_POOL_UUID = "entitlement-pool-uuid";
+    private static final String LICENSE_KEY_GROUP_UUID = "license-key-group-uuid";
+
+    static void setLicenseModel(XMLStreamReader re, LicenseModelBuilder builder) throws XMLStreamException {
+        while (re.hasNext() && !builder.isReady()) {
+            re.next();
+            if (re.isStartElement() && !trySetEntitlementPoolUuid(re, builder)) {
+                trySetLicenseKeyGroupUuid(re, builder);
+            }
+        }
+    }
+
+    private static boolean trySetEntitlementPoolUuid(XMLStreamReader re, LicenseModelBuilder builder)
+        throws XMLStreamException {
+        if (re.getName().getLocalPart().equals(ENTITLEMENT_POOL_UUID)) {
+            builder.setEntitlementPoolUuid(re.getElementText());
+            return true;
+        }
+        return false;
+    }
+
+    private static void trySetLicenseKeyGroupUuid(XMLStreamReader re, LicenseModelBuilder builder)
+        throws XMLStreamException {
+        if (re.getName().getLocalPart().equals(LICENSE_KEY_GROUP_UUID)) {
+            builder.setLicenseKeyGroupUuid(re.getElementText());
+        }
+    }
+}
\ No newline at end of file
diff --git a/appc-dispatcher/appc-license-manager/appc-license-manager-core/src/main/java/org/onap/appc/licmgr/impl/XmlToLicenseModelConverter.java b/appc-dispatcher/appc-license-manager/appc-license-manager-core/src/main/java/org/onap/appc/licmgr/impl/XmlToLicenseModelConverter.java
new file mode 100644 (file)
index 0000000..02e37bf
--- /dev/null
@@ -0,0 +1,58 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2018 Nokia
+ * =============================================================================
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.appc.licmgr.impl;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import org.onap.appc.licmgr.objects.LicenseModelBuilder;
+
+class XmlToLicenseModelConverter {
+
+    private XMLInputFactory factory;
+
+    XmlToLicenseModelConverter(XMLInputFactory factory) {
+        this.factory = factory;
+    }
+
+    void convert(XMLStreamConsumer<XMLStreamReader, LicenseModelBuilder> consumer, String xml, LicenseModelBuilder builder)
+        throws XMLStreamException, IOException {
+
+        XMLStreamReader reader = null;
+        try (InputStream inputStream = new ByteArrayInputStream(xml.getBytes())) {
+            reader = factory.createXMLStreamReader(inputStream);
+            consumer.accept(reader, builder);
+        } finally {
+            if (reader != null) {
+                reader.close();
+            }
+        }
+    }
+
+    @FunctionalInterface
+    public interface XMLStreamConsumer<T, W> {
+        void accept(T t, W w) throws XMLStreamException;
+    }
+}
index c025c98..9d2fb87 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP : APPC
  * ================================================================================
- * Copyright (C) 2018 Nokia.
+ * Modifications Copyright (C) 2018 Nokia
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,14 +24,15 @@ package org.onap.appc.licmgr.impl;
 
 import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
 import static org.mockito.BDDMockito.given;
 import static org.onap.appc.licmgr.Constants.SDC_ARTIFACTS_FIELDS.ARTIFACT_CONTENT;
 
+import java.io.InputStream;
 import java.util.Collections;
-import java.util.Map;
 import java.util.HashMap;
 import org.junit.Before;
+import java.util.Map;
+import java.util.Scanner;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -53,6 +54,7 @@ public class LicenseManagerImplTest {
     @Before
     public void setUp() {
         licenseManager = new LicenseManagerImpl();
+        licenseManager.setDAService(licenseDataAccessService);
     }
 
     @Test
@@ -65,15 +67,13 @@ public class LicenseManagerImplTest {
             .willReturn(Collections.emptyMap());
 
         // WHEN THEN
-        licenseManager.setDAService(licenseDataAccessService);
-
         assertThatExceptionOfType(DataAccessException.class)
             .isThrownBy(() -> licenseManager.retrieveLicenseModel(VNF_TYPE, VNF_VERSION))
             .withMessage(expectedMessage);
     }
 
     @Test
-    public void retrieveLicenseModel_shouldReturnLicenseModelWithNullValues_whenXmlIsMalformed() {
+    public void retrieveLicenseModel_shouldThrowException_whenXmlIsMalformed() {
 
         // GIVEN
         String malformedXml = "xyz";
@@ -83,27 +83,21 @@ public class LicenseManagerImplTest {
         given(licenseDataAccessService.retrieveLicenseModelData(VNF_TYPE, VNF_VERSION))
             .willReturn(licenseModelData);
 
-        // WHEN
-        licenseManager.setDAService(licenseDataAccessService);
-        LicenseModel licenseModel = licenseManager.retrieveLicenseModel(VNF_TYPE, VNF_VERSION);
-
-        // THEN
-        assertNull(licenseModel.getEntitlementPoolUuid());
-        assertNull(licenseModel.getLicenseKeyGroupUuid());
+        // WHEN THEN
+        assertThatExceptionOfType(DataAccessException.class)
+            .isThrownBy(() -> licenseManager.retrieveLicenseModel(VNF_TYPE, VNF_VERSION));
     }
 
     @Test
     public void retrieveLicenseModel_shouldReturnCorrectLicenseModel_whenCorrectXmlExists() {
 
         // GIVEN
-        String expectedEntitlementPool = "default_entitlement_pool";
-        String expectedKeyGroup = "default_key_group";
+        String expectedEntitlementPool = "default_entitlement_pool_uuid";
+        String expectedKeyGroup = "default_lkg_uuid";
 
-        String correctlyFormedXml = String.format("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-            + "<parent>\n"
-            + "<entitlement-pool-uuid>%s</entitlement-pool-uuid>\n"
-            + "<license-key-group-uuid>%s</license-key-group-uuid>\n"
-            + "</parent>", expectedEntitlementPool, expectedKeyGroup);
+        ClassLoader classLoader = getClass().getClassLoader();
+        InputStream inputStream = classLoader.getResourceAsStream("test-vf-license-model.xml");
+        String correctlyFormedXml = new Scanner(inputStream).useDelimiter("\\A").next();
 
         Map<String, String> licenseModelData = new HashMap<>();
         licenseModelData.put(ARTIFACT_CONTENT.name(), correctlyFormedXml);
@@ -111,7 +105,6 @@ public class LicenseManagerImplTest {
             .willReturn(licenseModelData);
 
         // WHEN
-        licenseManager.setDAService(licenseDataAccessService);
         LicenseModel licenseModel = licenseManager.retrieveLicenseModel(VNF_TYPE, VNF_VERSION);
 
         // THEN
diff --git a/appc-dispatcher/appc-license-manager/appc-license-manager-core/src/test/java/org/onap/appc/licmgr/impl/XmlToLicenseModelConverterTest.java b/appc-dispatcher/appc-license-manager/appc-license-manager-core/src/test/java/org/onap/appc/licmgr/impl/XmlToLicenseModelConverterTest.java
new file mode 100644 (file)
index 0000000..d0c48cc
--- /dev/null
@@ -0,0 +1,80 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2018 Nokia
+ * =============================================================================
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.appc.licmgr.impl;
+
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.BDDMockito.then;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+
+import java.io.IOException;
+import java.io.InputStream;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+
+
+@RunWith(MockitoJUnitRunner.class)
+public class XmlToLicenseModelConverterTest {
+
+    @Mock
+    private XMLStreamReader xmlStreamReader;
+
+    @Mock
+    private XMLInputFactory xmlInputFactory;
+
+    @Test
+    public void apply_shouldCloseXMLStreamReader_whenNoExceptionIsThrown()
+        throws XMLStreamException, IOException {
+
+        // GIVEN
+        XmlToLicenseModelConverter converter = new XmlToLicenseModelConverter(xmlInputFactory);
+        given(xmlInputFactory.createXMLStreamReader(any(InputStream.class))).willReturn(xmlStreamReader);
+
+        // WHEN
+        converter.convert((a, b) -> {
+        }, anyString(), null);
+
+        // THEN
+        then(xmlStreamReader).should().close();
+    }
+
+    @Test
+    public void apply_shouldCloseXMLStreamReader_whenExceptionIsThrown()
+        throws XMLStreamException {
+        // GIVEN
+        XmlToLicenseModelConverter converter = new XmlToLicenseModelConverter(xmlInputFactory);
+        given(xmlInputFactory.createXMLStreamReader(any(InputStream.class))).willReturn(xmlStreamReader);
+
+        // WHEN THEN
+        assertThatExceptionOfType(XMLStreamException.class)
+            .isThrownBy(() -> converter.convert((a, b) -> {
+                throw new XMLStreamException();
+            }, anyString(), null));
+        then(xmlStreamReader).should().close();
+    }
+}
\ No newline at end of file
diff --git a/appc-dispatcher/appc-license-manager/appc-license-manager-core/src/test/resources/test-vf-license-model.xml b/appc-dispatcher/appc-license-manager/appc-license-manager-core/src/test/resources/test-vf-license-model.xml
new file mode 100644 (file)
index 0000000..6f32f50
--- /dev/null
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ============LICENSE_START=======================================================
+  ONAP : APPC
+  ================================================================================
+  Copyright (C) 2018 Nokia
+  =============================================================================
+  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.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+  ============LICENSE_END=========================================================
+  -->
+<vf-license-model>
+  <vnf-id>default_vnf_id</vnf-id>
+  <vendor-name>default_vendor_name</vendor-name>
+  <feature-group-list>
+    <feature-group>
+      <feature-group-uuid>default_feature_group_uuid</feature-group-uuid>
+      <name>default_fg_name</name>
+      <description>default_fg_ description</description>
+      <att-part-number>default_part_number</att-part-number>
+      <entitlement-pool-list>
+        <entitlement-pool>
+          <entitlement-pool-uuid>default_entitlement_pool_uuid</entitlement-pool-uuid>
+          <name>default_ep_name</name>
+          <description>default_ep_description</description>
+          <manufacturer-reference-number>default_manufacturer_reference_number</manufacturer-reference-number>
+          <threshold-value>
+            <value>1</value>
+            <unit>default_unit</unit>
+          </threshold-value>
+          <entitlement-metric>
+            <value>default_em_value</value>
+          </entitlement-metric>
+          <increments>default_increments</increments>
+          <aggregation-function>
+            <value>default_af_value</value>
+          </aggregation-function>
+          <time>
+            <value>default_time</value>
+          </time>
+        </entitlement-pool>
+      </entitlement-pool-list>
+      <license-key-group-list>
+        <license-key-group>
+          <license-key-group-uuid>default_lkg_uuid</license-key-group-uuid>
+          <name>default_lkg_name</name>
+          <description>default_lkg_description</description>
+          <type>default_lkg_type</type>
+        </license-key-group>
+      </license-key-group-list>
+    </feature-group>
+  </feature-group-list>
+</vf-license-model>
\ No newline at end of file