5171aed6d41940b1c728f9c49dcbdde13cff24eb
[ccsdk/features.git] /
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
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
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
15  * the License.
16  * ============LICENSE_END==========================================================================
17  ******************************************************************************/
18 package org.onap.ccsdk.features.sdnr.wt.dataprovider.test;
19
20 import java.io.IOException;
21 import java.util.List;
22 import org.junit.Test;
23 import org.onap.ccsdk.features.sdnr.wt.common.database.DatabaseClient;
24 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
25 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchHit;
26 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchResult;
27 import org.onap.ccsdk.features.sdnr.wt.common.database.config.HostInfo;
28 import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilder;
29 import org.onap.ccsdk.features.sdnr.wt.common.database.responses.SearchResponse;
30 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.EsDataObjectReaderWriter;
31 import org.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.YangToolsMapper;
32 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data;
34 import org.opendaylight.yangtools.yang.binding.DataObject;
35
36 public class TestDataMappings {
37
38         private static final HostInfo[] HOSTINFOS = new HostInfo[] {HostInfo.getDefault()};
39         //public static final String ESDATATYPENAME = "faultcurrent";
40
41         private static class HtDatabaseClientHelper extends HtDatabaseClient {
42
43                 private final String json;
44
45                 public HtDatabaseClientHelper(String jsonResponse, HostInfo[] hosts) {
46                         super(hosts);
47                         this.json = jsonResponse;
48
49                 }
50
51                 @Override
52                 public SearchResult<SearchHit> doReadByQueryJsonData(String dataTypeName, QueryBuilder qb) {
53                         return new SearchResult<>(new SearchResponse(this.json).getHits());
54                 }
55         }
56
57         private static class MapResult<T extends DataObject> {
58                 public final List<T> mappedData;
59                 public MapResult(String dataType, Class<T> cls, String dbJson) throws ClassNotFoundException {
60                         System.out.println(dbJson);
61                         DatabaseClient db = new HtDatabaseClientHelper(dbJson,HOSTINFOS);
62                         EsDataObjectReaderWriter<T> dbrw=new EsDataObjectReaderWriter<>(db,dataType,cls);
63                         this.mappedData=dbrw.doReadAll().getHits();
64                 }
65         }
66
67         private static final String SEARCHJSON_FORMAT = "{\n" +
68                         "\"took\": 0,\n" +
69                         "\"timed_out\": false,\n" +
70                         "\"_shards\": {\n" +
71                         "\"total\": 5,\n" +
72                         "\"successful\": 5,\n" +
73                         "\"skipped\": 0,\n" +
74                         "\"failed\": 0\n" +
75                         "},\n" +
76                         "\"hits\": {\n" +
77                         "\"total\": 1,\n" +
78                         "\"max_score\": 1,\n" +
79                         "\"hits\": [\n" +
80                         "{\n" +
81                         "\"_index\": \"%s\",\n" +
82                         "\"_type\": \"%s\",\n" +
83                         "\"_id\": \"%s\",\n" +
84                         "\"_score\": 1,\n" +
85                         "\"_source\": %s}\n" +
86                         "]\n" +
87                         "}\n" +
88                         "}";
89
90         private static final String MEDIATORSERVER_DB_ID="LumwSG0BFvcE3yf8MBM5";
91         private static final String MEDIATOR_SERVERDB_JSON = "{\"url\":\"https://10.45.44.223:7590\",\"name\":\"test mediator server\"}";
92
93         private static final String FAULTCURRENT_DB_ID="LumwSG0BFvcE3yf8MBM5";
94         private static final String FAULTCURRENT_DB_NODEID = "sim1";
95         private static final int FAULTCURRENT_DB_COUNTER = 3;
96         private static final String FAULTCURRENT_DB_OBJECTID = "LPS-MWT-01";
97         private static final String FAULTCURRENT_DB_PROBLEM = "rlsExceeded";
98         private static final String FAULTCURRENT_DB_SEVERITY = "critical";
99         private static final DateAndTime FAULTCURRENT_DB_TIMESTAMP = DateAndTime.getDefaultInstance("2019-09-18T13:07:05.8Z");
100
101         private static final String FAULTCURRENT_SERVERDB_JSON = "{\"node-id\":\""+FAULTCURRENT_DB_NODEID+"\","+
102                         "\"counter\":"+FAULTCURRENT_DB_COUNTER+","+
103                         "\"object-id\":\""+FAULTCURRENT_DB_OBJECTID+"\","+
104                         "\"problem\":\""+FAULTCURRENT_DB_PROBLEM+"\","+
105                         "\"timestamp\":\""+FAULTCURRENT_DB_TIMESTAMP.getValue()+"\","+
106                         "\"severity\":\""+FAULTCURRENT_DB_SEVERITY+"\""+
107         "}";
108
109
110         private static final String PMDATA15M_SERVERDB_JSON="{\n" +
111                         "\"node-name\": \"sim2\",\n" +
112                         "\"uuid-interface\": \"LP-MWPS-TTP-01\",\n" +
113                         "\"layer-protocol-name\": \"MWPS\",\n" +
114                         "\"radio-signal-id\": \"Test11\",\n" +
115                         "\"time-stamp\": \"2017-07-04T14:00:00.0Z\",\n" +
116                         "\"granularity-period\": \"PERIOD_15MIN\",\n" +
117                         "\"scanner-id\": \"PM_RADIO_15M_9\",\n" +
118                         "\"performance-data\": {\n" +
119                         "\"es\": 0,\n" +
120                         "\"rx-level-avg\": -41,\n" +
121                         "\"time2-states\": -1,\n" +
122                         "\"time4-states-s\": 0,\n" +
123                         "\"time4-states\": 0,\n" +
124                         "\"time8-states\": 0,\n" +
125                         "\"time16-states-s\": -1,\n" +
126                         "\"time16-states\": 0,\n" +
127                         "\"time32-states\": 0,\n" +
128                         "\"time64-states\": 0,\n" +
129                         "\"time128-states\": 0,\n" +
130                         "\"time256-states\": 900,\n" +
131                         "\"time512-states\": -1,\n" +
132                         "\"time512-states-l\": -1,\n" +
133                         "\"time1024-states\": -1,\n" +
134                         "\"time1024-states-l\": -1,\n" +
135                         "\"time2048-states\": -1,\n" +
136                         "\"time2048-states-l\": -1,\n" +
137                         "\"time4096-states\": -1,\n" +
138                         "\"time4096-states-l\": -1,\n" +
139                         "\"time8192-states\": -1,\n" +
140                         "\"time8192-states-l\": -1,\n" +
141                         "\"snir-min\": -99,\n" +
142                         "\"snir-max\": -99,\n" +
143                         "\"snir-avg\": -99,\n" +
144                         "\"xpd-min\": -99,\n" +
145                         "\"xpd-max\": -99,\n" +
146                         "\"xpd-avg\": -99,\n" +
147                         "\"rf-temp-min\": -99,\n" +
148                         "\"rf-temp-max\": -99,\n" +
149                         "\"rf-temp-avg\": -99,\n" +
150                         "\"defect-blocks-sum\": -1,\n" +
151                         "\"time-period\": 900,\n" +
152                         "\"tx-level-min\": 25,\n" +
153                         "\"tx-level-max\": 25,\n" +
154                         "\"tx-level-avg\": 25,\n" +
155                         "\"rx-level-min\": -41,\n" +
156                         "\"rx-level-max\": -41,\n" +
157                         "\"unavailability\": 0,\n" +
158                         "\"ses\": 0,\n" +
159                         "\"cses\": 0\n" +
160                         "},\n" +
161                         "\"suspect-interval-flag\": false\n" +
162                         "}";
163
164         //@Test
165 //      public void testMediatorServer() throws ClassNotFoundException {
166 //
167 //              MapResult<EsMediatorServer> result = new MapResult<EsMediatorServer>(EsMediatorServer.ESDATATYPENAME,
168 //                              EsMediatorServer.class,
169 //                              getSearchJson(EsMediatorServer.ESDATATYPENAME,MEDIATORSERVER_DB_ID,MEDIATOR_SERVERDB_JSON));
170 //              assertEquals("test mediator server", result.mappedData.get(0).getName());
171 //              assertEquals("https://10.45.44.223:7590", result.mappedData.get(0).getUrl());
172 //              assertEquals(MEDIATORSERVER_DB_ID, result.mappedData.get(0).getId());
173 //
174 //      }
175         //@Test
176 //      public void testFaultCurrent() {
177 //
178 //              MapResult<FaultcurrentEntity> result = new MapResult<FaultcurrentEntity>(ESDATATYPENAME, EsFaultCurrent.class,
179 //                              getSearchJson(ESDATATYPENAME, FAULTCURRENT_DB_ID, FAULTCURRENT_SERVERDB_JSON));
180 //              assertEquals(FAULTCURRENT_DB_ID, result.mappedData.get(0).getId());
181 //              assertEquals(FAULTCURRENT_DB_NODEID, result.mappedData.get(0).getNodeId());
182 //              assertEquals(FAULTCURRENT_DB_COUNTER, result.mappedData.get(0).getCounter().intValue());
183 //              assertEquals(FAULTCURRENT_DB_OBJECTID, result.mappedData.get(0).getObjectId());
184 //              assertEquals(FAULTCURRENT_DB_PROBLEM, result.mappedData.get(0).getProblem());
185 //              assertEquals(FAULTCURRENT_DB_SEVERITY, result.mappedData.get(0).getSeverity());
186 //              assertEquals(FAULTCURRENT_DB_TIMESTAMP, result.mappedData.get(0).getTimestamp());
187 //      }
188 //
189         @Test
190         public void testPmData15m() {
191
192                 YangToolsMapper mapper = new YangToolsMapper();
193                 try {
194                         Data data =mapper.readValue(PMDATA15M_SERVERDB_JSON.getBytes(), Data.class);
195                         System.out.println(data);
196                 } catch (IOException e) {
197                         e.printStackTrace();
198                 }
199
200
201         }
202         private String getSearchJson(String dataType,String dbId, String source) {
203                 return String.format(SEARCHJSON_FORMAT,dataType,dataType, dbId,source);
204         }
205
206 }