0768c6099b52e0897b0440f21b8315c8e680e45c
[ccsdk/cds.git] /
1 /*\r
2  *  Copyright © 2017-2018 AT&T Intellectual Property.\r
3  *  Modifications Copyright © 2018 IBM.\r
4  *\r
5  *  Licensed under the Apache License, Version 2.0 (the "License");\r
6  *  you may not use this file except in compliance with the License.\r
7  *  You may obtain a copy of the License at\r
8  *\r
9  *      http://www.apache.org/licenses/LICENSE-2.0\r
10  *\r
11  *  Unless required by applicable law or agreed to in writing, software\r
12  *  distributed under the License is distributed on an "AS IS" BASIS,\r
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14  *  See the License for the specific language governing permissions and\r
15  *  limitations under the License.\r
16  */\r
17 \r
18 package org.onap.ccsdk.apps.blueprintsprocessor.services.resolution;\r
19 \r
20 import com.fasterxml.jackson.databind.node.ObjectNode;\r
21 import org.apache.commons.collections.CollectionUtils;\r
22 import org.apache.commons.io.FileUtils;\r
23 import org.junit.Assert;\r
24 import org.junit.Test;\r
25 import org.junit.runner.RunWith;\r
26 import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ResourceResolutionInput;\r
27 import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ResourceResolutionOutput;\r
28 import org.onap.ccsdk.apps.blueprintsprocessor.core.factory.ResourceAssignmentProcessorFactory;\r
29 import org.onap.ccsdk.apps.blueprintsprocessor.services.resolution.processor.DefaultResourceAssignmentProcessor;\r
30 import org.onap.ccsdk.apps.blueprintsprocessor.services.resolution.processor.InputResourceAssignmentProcessor;\r
31 import org.onap.ccsdk.apps.blueprintsprocessor.services.resolution.processor.MDSALResourceAssignmentProcessor;\r
32 import org.onap.ccsdk.apps.blueprintsprocessor.services.resolution.processor.SdncResourceAssignmentProcessor;\r
33 import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils;\r
34 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment;\r
35 import org.slf4j.Logger;\r
36 import org.slf4j.LoggerFactory;\r
37 import org.springframework.beans.factory.annotation.Autowired;\r
38 import org.springframework.test.context.ContextConfiguration;\r
39 import org.springframework.test.context.junit4.SpringRunner;\r
40 \r
41 import java.io.File;\r
42 import java.nio.charset.Charset;\r
43 import java.util.List;\r
44 \r
45 /**\r
46  * ResourceResolutionServiceTest\r
47  *\r
48  * @author Brinda Santh DATE : 8/15/2018\r
49  */\r
50 @RunWith(SpringRunner.class)\r
51 @ContextConfiguration(classes = {ResourceResolutionService.class, ResourceAssignmentProcessorFactory.class,\r
52         InputResourceAssignmentProcessor.class, DefaultResourceAssignmentProcessor.class,\r
53         SdncResourceAssignmentProcessor.class, MDSALResourceAssignmentProcessor.class})\r
54 public class ResourceResolutionServiceTest {\r
55     private static Logger log = LoggerFactory.getLogger(ResourceResolutionServiceTest.class);\r
56 \r
57     @Autowired\r
58     private ResourceResolutionService resourceResolutionService;\r
59 \r
60     @Test\r
61     public void testResolveResource() throws Exception {\r
62 \r
63         Assert.assertNotNull("failed to create ResourceResolutionService", resourceResolutionService);\r
64 \r
65         String resourceResolutionInputContent = FileUtils.readFileToString(\r
66                 new File("src/test/resources/payload/requests/sample-resourceresolution-request.json"), Charset.defaultCharset());\r
67 \r
68         ResourceResolutionInput resourceResolutionInput = JacksonUtils.readValue(resourceResolutionInputContent, ResourceResolutionInput.class);\r
69         Assert.assertNotNull("failed to populate resourceResolutionInput request ", resourceResolutionInput);\r
70 \r
71         String resourceAssignmentContent = FileUtils.readFileToString(\r
72                 new File("src/test/resources/mapping/db/resource-assignments-simple.json"), Charset.defaultCharset());\r
73         List<ResourceAssignment> batchResourceAssignment =\r
74                 JacksonUtils.getListFromJson(resourceAssignmentContent, ResourceAssignment.class);\r
75 \r
76         Assert.assertTrue("failed to create ResourceAssignment from file", CollectionUtils.isNotEmpty(batchResourceAssignment));\r
77         resourceResolutionInput.setResourceAssignments(batchResourceAssignment);\r
78 \r
79         ObjectNode inputContent = (ObjectNode) JacksonUtils.jsonNodeFromFile("src/test/resources/payload/inputs/input.json");\r
80         Assert.assertNotNull("failed to populate input payload ", inputContent);\r
81         resourceResolutionInput.setPayload(inputContent);\r
82         log.info("ResourceResolutionInput : {}", JacksonUtils.getJson(resourceResolutionInput, true));\r
83 \r
84         ResourceResolutionOutput resourceResolutionOutput = resourceResolutionService.resolveResource(resourceResolutionInput);\r
85         Assert.assertNotNull("failed to populate output", resourceResolutionOutput);\r
86 \r
87     }\r
88 }\r