2 * ============LICENSE_START=======================================================
3 * ONAP : ccsdk features
4 * ================================================================================
5 * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.ccsdk.features.sdnr.wt.dataprovider.test;
24 import java.io.IOException;
25 import java.util.List;
26 import org.junit.Test;
27 import org.onap.ccsdk.features.sdnr.wt.common.database.DatabaseClient;
28 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
29 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchHit;
30 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchResult;
31 import org.onap.ccsdk.features.sdnr.wt.common.database.config.HostInfo;
32 import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilder;
33 import org.onap.ccsdk.features.sdnr.wt.common.database.responses.SearchResponse;
34 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.EsDataObjectReaderWriter;
35 import org.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.YangToolsMapper;
36 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data;
38 import org.opendaylight.yangtools.yang.binding.DataObject;
40 public class TestDataMappings {
42 private static final HostInfo[] HOSTINFOS = new HostInfo[] {HostInfo.getDefault()};
43 //public static final String ESDATATYPENAME = "faultcurrent";
45 private static class HtDatabaseClientHelper extends HtDatabaseClient {
47 private final String json;
49 public HtDatabaseClientHelper(String jsonResponse, HostInfo[] hosts) {
51 this.json = jsonResponse;
56 public SearchResult<SearchHit> doReadByQueryJsonData(String dataTypeName, QueryBuilder qb) {
57 return new SearchResult<>(new SearchResponse(this.json).getHits());
61 private static class MapResult<T extends DataObject> {
62 public final List<T> mappedData;
64 public MapResult(String dataType, Class<T> cls, String dbJson) throws ClassNotFoundException {
65 System.out.println(dbJson);
66 DatabaseClient db = new HtDatabaseClientHelper(dbJson, HOSTINFOS);
67 EsDataObjectReaderWriter<T> dbrw = new EsDataObjectReaderWriter<>(db, dataType, cls);
68 this.mappedData = dbrw.doReadAll().getHits();
72 private static final String SEARCHJSON_FORMAT = "{\n" + "\"took\": 0,\n" + "\"timed_out\": false,\n"
73 + "\"_shards\": {\n" + "\"total\": 5,\n" + "\"successful\": 5,\n" + "\"skipped\": 0,\n" + "\"failed\": 0\n"
74 + "},\n" + "\"hits\": {\n" + "\"total\": 1,\n" + "\"max_score\": 1,\n" + "\"hits\": [\n" + "{\n"
75 + "\"_index\": \"%s\",\n" + "\"_type\": \"%s\",\n" + "\"_id\": \"%s\",\n" + "\"_score\": 1,\n"
76 + "\"_source\": %s}\n" + "]\n" + "}\n" + "}";
78 private static final String MEDIATORSERVER_DB_ID = "LumwSG0BFvcE3yf8MBM5";
79 private static final String MEDIATOR_SERVERDB_JSON =
80 "{\"url\":\"https://10.45.44.223:7590\",\"name\":\"test mediator server\"}";
82 private static final String FAULTCURRENT_DB_ID = "LumwSG0BFvcE3yf8MBM5";
83 private static final String FAULTCURRENT_DB_NODEID = "sim1";
84 private static final int FAULTCURRENT_DB_COUNTER = 3;
85 private static final String FAULTCURRENT_DB_OBJECTID = "LPS-MWT-01";
86 private static final String FAULTCURRENT_DB_PROBLEM = "rlsExceeded";
87 private static final String FAULTCURRENT_DB_SEVERITY = "critical";
88 private static final DateAndTime FAULTCURRENT_DB_TIMESTAMP =
89 DateAndTime.getDefaultInstance("2019-09-18T13:07:05.8Z");
91 private static final String FAULTCURRENT_SERVERDB_JSON = "{\"node-id\":\"" + FAULTCURRENT_DB_NODEID + "\","
92 + "\"counter\":" + FAULTCURRENT_DB_COUNTER + "," + "\"object-id\":\"" + FAULTCURRENT_DB_OBJECTID + "\","
93 + "\"problem\":\"" + FAULTCURRENT_DB_PROBLEM + "\"," + "\"timestamp\":\""
94 + FAULTCURRENT_DB_TIMESTAMP.getValue() + "\"," + "\"severity\":\"" + FAULTCURRENT_DB_SEVERITY + "\"" + "}";
97 private static final String PMDATA15M_SERVERDB_JSON = "{\n" + "\"node-name\": \"sim2\",\n"
98 + "\"uuid-interface\": \"LP-MWPS-TTP-01\",\n" + "\"layer-protocol-name\": \"MWPS\",\n"
99 + "\"radio-signal-id\": \"Test11\",\n" + "\"time-stamp\": \"2017-07-04T14:00:00.0Z\",\n"
100 + "\"granularity-period\": \"PERIOD_15MIN\",\n" + "\"scanner-id\": \"PM_RADIO_15M_9\",\n"
101 + "\"performance-data\": {\n" + "\"es\": 0,\n" + "\"rx-level-avg\": -41,\n" + "\"time2-states\": -1,\n"
102 + "\"time4-states-s\": 0,\n" + "\"time4-states\": 0,\n" + "\"time8-states\": 0,\n"
103 + "\"time16-states-s\": -1,\n" + "\"time16-states\": 0,\n" + "\"time32-states\": 0,\n"
104 + "\"time64-states\": 0,\n" + "\"time128-states\": 0,\n" + "\"time256-states\": 900,\n"
105 + "\"time512-states\": -1,\n" + "\"time512-states-l\": -1,\n" + "\"time1024-states\": -1,\n"
106 + "\"time1024-states-l\": -1,\n" + "\"time2048-states\": -1,\n" + "\"time2048-states-l\": -1,\n"
107 + "\"time4096-states\": -1,\n" + "\"time4096-states-l\": -1,\n" + "\"time8192-states\": -1,\n"
108 + "\"time8192-states-l\": -1,\n" + "\"snir-min\": -99,\n" + "\"snir-max\": -99,\n" + "\"snir-avg\": -99,\n"
109 + "\"xpd-min\": -99,\n" + "\"xpd-max\": -99,\n" + "\"xpd-avg\": -99,\n" + "\"rf-temp-min\": -99,\n"
110 + "\"rf-temp-max\": -99,\n" + "\"rf-temp-avg\": -99,\n" + "\"defect-blocks-sum\": -1,\n"
111 + "\"time-period\": 900,\n" + "\"tx-level-min\": 25,\n" + "\"tx-level-max\": 25,\n"
112 + "\"tx-level-avg\": 25,\n" + "\"rx-level-min\": -41,\n" + "\"rx-level-max\": -41,\n"
113 + "\"unavailability\": 0,\n" + "\"ses\": 0,\n" + "\"cses\": 0\n" + "},\n"
114 + "\"suspect-interval-flag\": false\n" + "}";
117 // public void testMediatorServer() throws ClassNotFoundException {
119 // MapResult<EsMediatorServer> result = new MapResult<EsMediatorServer>(EsMediatorServer.ESDATATYPENAME,
120 // EsMediatorServer.class,
121 // getSearchJson(EsMediatorServer.ESDATATYPENAME,MEDIATORSERVER_DB_ID,MEDIATOR_SERVERDB_JSON));
122 // assertEquals("test mediator server", result.mappedData.get(0).getName());
123 // assertEquals("https://10.45.44.223:7590", result.mappedData.get(0).getUrl());
124 // assertEquals(MEDIATORSERVER_DB_ID, result.mappedData.get(0).getId());
128 // public void testFaultCurrent() {
130 // MapResult<FaultcurrentEntity> result = new MapResult<FaultcurrentEntity>(ESDATATYPENAME, EsFaultCurrent.class,
131 // getSearchJson(ESDATATYPENAME, FAULTCURRENT_DB_ID, FAULTCURRENT_SERVERDB_JSON));
132 // assertEquals(FAULTCURRENT_DB_ID, result.mappedData.get(0).getId());
133 // assertEquals(FAULTCURRENT_DB_NODEID, result.mappedData.get(0).getNodeId());
134 // assertEquals(FAULTCURRENT_DB_COUNTER, result.mappedData.get(0).getCounter().intValue());
135 // assertEquals(FAULTCURRENT_DB_OBJECTID, result.mappedData.get(0).getObjectId());
136 // assertEquals(FAULTCURRENT_DB_PROBLEM, result.mappedData.get(0).getProblem());
137 // assertEquals(FAULTCURRENT_DB_SEVERITY, result.mappedData.get(0).getSeverity());
138 // assertEquals(FAULTCURRENT_DB_TIMESTAMP, result.mappedData.get(0).getTimestamp());
142 public void testPmData15m() {
144 YangToolsMapper mapper = new YangToolsMapper();
146 Data data = mapper.readValue(PMDATA15M_SERVERDB_JSON.getBytes(), Data.class);
147 System.out.println(data);
148 } catch (IOException e) {
155 private String getSearchJson(String dataType, String dbId, String source) {
156 return String.format(SEARCHJSON_FORMAT, dataType, dataType, dbId, source);