re base code
[sdc.git] / catalog-dao / src / test / java / org / openecomp / sdc / be / resources / JsonParserUtilsTests.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.be.resources;
22
23 import com.fasterxml.jackson.databind.DeserializationFeature;
24 import com.fasterxml.jackson.databind.ObjectMapper;
25 import com.fasterxml.jackson.databind.SerializationFeature;
26 import com.google.common.collect.ImmutableList;
27 import org.junit.Test;
28 import org.openecomp.sdc.be.dao.jsongraph.utils.JsonParserUtils;
29 import org.openecomp.sdc.be.datatypes.elements.CapabilityDataDefinition;
30 import org.openecomp.sdc.be.datatypes.elements.ListCapabilityDataDefinition;
31 import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
32
33 import java.io.IOException;
34 import java.util.HashMap;
35 import java.util.List;
36 import java.util.Map;
37
38 import static org.assertj.core.api.Assertions.assertThat;
39 import static org.assertj.core.api.Assertions.assertThatCode;
40 import static org.openecomp.sdc.be.utils.FixtureHelpers.fixture;
41 import static org.openecomp.sdc.be.utils.JsonTester.testJsonMap;
42
43 public class JsonParserUtilsTests {
44
45         private static final String FIXTURE_PATH = "fixtures/ListCapabilityDataDefinition.json";
46
47         @Test
48         public void testToMap() {
49                 String json = fixture(FIXTURE_PATH);
50                 Map<String, ListCapabilityDataDefinition> actual = JsonParserUtils.toMap(json,
51                                 ListCapabilityDataDefinition.class);
52                 Map<String, ListCapabilityDataDefinition> expected = buildMap();
53                 assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected);
54         }
55
56         @Test
57         public void testJacksonFasterXml() {
58                 ObjectMapper mapper = new ObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
59                                 .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
60                 assertThatCode(() -> testJsonMap(buildMap(), ListCapabilityDataDefinition.class, FIXTURE_PATH, mapper))
61                                 .doesNotThrowAnyException();
62         }
63
64         @Test
65         public void testToJson() {
66                 try {
67                         JsonParserUtils.toJson(new Object());
68                 } catch (IOException e) {
69                         // TODO Auto-generated catch block
70                         e.printStackTrace();
71                 }
72         }
73
74         @Test
75         public void testMap() {
76                 JsonParserUtils.toMap("{}");
77                 JsonParserUtils.toMap("");
78                 JsonParserUtils.toMap("****");
79                 
80                 JsonParserUtils.toMap("{}", ToscaDataDefinition.class);
81                 JsonParserUtils.toMap("", ToscaDataDefinition.class);
82                 JsonParserUtils.toMap("****", ToscaDataDefinition.class);
83                 
84         }
85
86         private Map<String, ListCapabilityDataDefinition> buildMap() {
87                 Map<String, ListCapabilityDataDefinition> map = new HashMap<>();
88                 map.put("org.openecomp.capabilities.Forwarder", buildListCapabilityDataDefinition());
89                 return map;
90         }
91
92         private ListCapabilityDataDefinition buildListCapabilityDataDefinition() {
93                 CapabilityDataDefinition dataDefinition = new CapabilityDataDefinition();
94                 dataDefinition.setName("forwarder");
95                 dataDefinition.setType("org.openecomp.capabilities.Forwarder");
96                 dataDefinition.setUniqueId("capability.deb142fd-95eb-48f7-99ae-81ab09466b1e.forwarder");
97                 dataDefinition.setOwnerId("deb142fd-95eb-48f7-99ae-81ab09466b1e");
98                 dataDefinition.setMinOccurrences("1");
99                 dataDefinition.setLeftOccurrences("UNBOUNDED");
100                 dataDefinition.setMaxOccurrences("UNBOUNDED");
101                 dataDefinition.setCapabilitySources(buildCapabilitySources());
102
103                 return new ListCapabilityDataDefinition(ImmutableList.of(dataDefinition));
104         }
105
106         private List<String> buildCapabilitySources() {
107                 return ImmutableList.of("org.openecomp.resource.cp.nodes.network.Port", "org.openecomp.resource.cp.v2.extCP",
108                                 "org.openecomp.resource.cp.v2.extContrailCP");
109         }
110 }