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