1 /*******************************************************************************
2 * ============LICENSE_START========================================================================
3 * ONAP : ccsdk feature sdnr wt
4 * =================================================================================================
5 * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6 * =================================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8 * in compliance with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software distributed under the License
13 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14 * or implied. See the License for the specific language governing permissions and limitations under
16 * ============LICENSE_END==========================================================================
17 ******************************************************************************/
18 package org.onap.ccsdk.features.sdnr.wt.dataprovider.database.test;
20 import static org.junit.Assert.assertEquals;
22 import java.io.IOException;
23 import java.util.List;
25 import org.junit.Test;
26 import org.onap.ccsdk.features.sdnr.wt.common.database.DatabaseClient;
27 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
28 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchHit;
29 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchResult;
30 import org.onap.ccsdk.features.sdnr.wt.common.database.config.HostInfo;
31 import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilder;
32 import org.onap.ccsdk.features.sdnr.wt.common.database.responses.SearchResponse;
33 import org.onap.ccsdk.features.sdnr.wt.database.EsDataObjectReaderWriter;
34 import org.onap.ccsdk.features.sdnr.wt.yangtools.YangToolsMapper;
35 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data;
37 import org.opendaylight.yangtools.yang.binding.DataObject;
39 public class TestDataMappings {
41 private static final HostInfo[] HOSTINFOS = new HostInfo[] {HostInfo.getDefault()};
42 //public static final String ESDATATYPENAME = "faultcurrent";
44 private static class HtDatabaseClientHelper extends HtDatabaseClient {
46 private final String json;
48 public HtDatabaseClientHelper(String jsonResponse, HostInfo[] hosts) {
50 this.json = jsonResponse;
55 public SearchResult<SearchHit> doReadByQueryJsonData(String dataTypeName, QueryBuilder qb) {
56 return new SearchResult<SearchHit>(new SearchResponse(this.json).getHits());
60 private static class MapResult<T extends DataObject> {
61 public final List<T> mappedData;
62 public MapResult(String dataType, Class<T> cls, String dbJson) throws ClassNotFoundException {
63 System.out.println(dbJson);
64 DatabaseClient db = new HtDatabaseClientHelper(dbJson,HOSTINFOS);
65 EsDataObjectReaderWriter<T> dbrw=new EsDataObjectReaderWriter<T>(db,dataType,cls);
66 this.mappedData=dbrw.doReadAll().getHits();
70 private static final String SEARCHJSON_FORMAT = "{\n" +
72 "\"timed_out\": false,\n" +
75 "\"successful\": 5,\n" +
81 "\"max_score\": 1,\n" +
84 "\"_index\": \"%s\",\n" +
85 "\"_type\": \"%s\",\n" +
86 "\"_id\": \"%s\",\n" +
88 "\"_source\": %s}\n" +
93 private static final String MEDIATORSERVER_DB_ID="LumwSG0BFvcE3yf8MBM5";
94 private static final String MEDIATOR_SERVERDB_JSON = "{\"url\":\"https://10.45.44.223:7590\",\"name\":\"test mediator server\"}";
96 private static final String FAULTCURRENT_DB_ID="LumwSG0BFvcE3yf8MBM5";
97 private static final String FAULTCURRENT_DB_NODEID = "sim1";
98 private static final int FAULTCURRENT_DB_COUNTER = 3;
99 private static final String FAULTCURRENT_DB_OBJECTID = "LPS-MWT-01";
100 private static final String FAULTCURRENT_DB_PROBLEM = "rlsExceeded";
101 private static final String FAULTCURRENT_DB_SEVERITY = "critical";
102 private static final DateAndTime FAULTCURRENT_DB_TIMESTAMP = DateAndTime.getDefaultInstance("2019-09-18T13:07:05.8Z");
104 private static final String FAULTCURRENT_SERVERDB_JSON = "{\"node-id\":\""+FAULTCURRENT_DB_NODEID+"\","+
105 "\"counter\":"+FAULTCURRENT_DB_COUNTER+","+
106 "\"object-id\":\""+FAULTCURRENT_DB_OBJECTID+"\","+
107 "\"problem\":\""+FAULTCURRENT_DB_PROBLEM+"\","+
108 "\"timestamp\":\""+FAULTCURRENT_DB_TIMESTAMP.getValue()+"\","+
109 "\"severity\":\""+FAULTCURRENT_DB_SEVERITY+"\""+
113 private static final String PMDATA15M_SERVERDB_JSON="{\n" +
114 "\"node-name\": \"sim2\",\n" +
115 "\"uuid-interface\": \"LP-MWPS-TTP-01\",\n" +
116 "\"layer-protocol-name\": \"MWPS\",\n" +
117 "\"radio-signal-id\": \"Test11\",\n" +
118 "\"time-stamp\": \"2017-07-04T14:00:00.0Z\",\n" +
119 "\"granularity-period\": \"PERIOD_15MIN\",\n" +
120 "\"scanner-id\": \"PM_RADIO_15M_9\",\n" +
121 "\"performance-data\": {\n" +
123 "\"rx-level-avg\": -41,\n" +
124 "\"time2-states\": -1,\n" +
125 "\"time4-states-s\": 0,\n" +
126 "\"time4-states\": 0,\n" +
127 "\"time8-states\": 0,\n" +
128 "\"time16-states-s\": -1,\n" +
129 "\"time16-states\": 0,\n" +
130 "\"time32-states\": 0,\n" +
131 "\"time64-states\": 0,\n" +
132 "\"time128-states\": 0,\n" +
133 "\"time256-states\": 900,\n" +
134 "\"time512-states\": -1,\n" +
135 "\"time512-states-l\": -1,\n" +
136 "\"time1024-states\": -1,\n" +
137 "\"time1024-states-l\": -1,\n" +
138 "\"time2048-states\": -1,\n" +
139 "\"time2048-states-l\": -1,\n" +
140 "\"time4096-states\": -1,\n" +
141 "\"time4096-states-l\": -1,\n" +
142 "\"time8192-states\": -1,\n" +
143 "\"time8192-states-l\": -1,\n" +
144 "\"snir-min\": -99,\n" +
145 "\"snir-max\": -99,\n" +
146 "\"snir-avg\": -99,\n" +
147 "\"xpd-min\": -99,\n" +
148 "\"xpd-max\": -99,\n" +
149 "\"xpd-avg\": -99,\n" +
150 "\"rf-temp-min\": -99,\n" +
151 "\"rf-temp-max\": -99,\n" +
152 "\"rf-temp-avg\": -99,\n" +
153 "\"defect-blocks-sum\": -1,\n" +
154 "\"time-period\": 900,\n" +
155 "\"tx-level-min\": 25,\n" +
156 "\"tx-level-max\": 25,\n" +
157 "\"tx-level-avg\": 25,\n" +
158 "\"rx-level-min\": -41,\n" +
159 "\"rx-level-max\": -41,\n" +
160 "\"unavailability\": 0,\n" +
164 "\"suspect-interval-flag\": false\n" +
168 // public void testMediatorServer() throws ClassNotFoundException {
170 // MapResult<EsMediatorServer> result = new MapResult<EsMediatorServer>(EsMediatorServer.ESDATATYPENAME,
171 // EsMediatorServer.class,
172 // getSearchJson(EsMediatorServer.ESDATATYPENAME,MEDIATORSERVER_DB_ID,MEDIATOR_SERVERDB_JSON));
173 // assertEquals("test mediator server", result.mappedData.get(0).getName());
174 // assertEquals("https://10.45.44.223:7590", result.mappedData.get(0).getUrl());
175 // assertEquals(MEDIATORSERVER_DB_ID, result.mappedData.get(0).getId());
179 // public void testFaultCurrent() {
181 // MapResult<FaultcurrentEntity> result = new MapResult<FaultcurrentEntity>(ESDATATYPENAME, EsFaultCurrent.class,
182 // getSearchJson(ESDATATYPENAME, FAULTCURRENT_DB_ID, FAULTCURRENT_SERVERDB_JSON));
183 // assertEquals(FAULTCURRENT_DB_ID, result.mappedData.get(0).getId());
184 // assertEquals(FAULTCURRENT_DB_NODEID, result.mappedData.get(0).getNodeId());
185 // assertEquals(FAULTCURRENT_DB_COUNTER, result.mappedData.get(0).getCounter().intValue());
186 // assertEquals(FAULTCURRENT_DB_OBJECTID, result.mappedData.get(0).getObjectId());
187 // assertEquals(FAULTCURRENT_DB_PROBLEM, result.mappedData.get(0).getProblem());
188 // assertEquals(FAULTCURRENT_DB_SEVERITY, result.mappedData.get(0).getSeverity());
189 // assertEquals(FAULTCURRENT_DB_TIMESTAMP, result.mappedData.get(0).getTimestamp());
193 public void testPmData15m() {
195 YangToolsMapper mapper = new YangToolsMapper();
197 Data data =mapper.readValue(PMDATA15M_SERVERDB_JSON.getBytes(), Data.class);
198 System.out.println(data);
199 } catch (IOException e) {
205 private String getSearchJson(String dataType,String dbId, String source) {
206 return String.format(SEARCHJSON_FORMAT,dataType,dataType, dbId,source);