1dc02b92ff935a96deb1e9648a8d9960797070b3
[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.database.test;
19
20 import static org.junit.Assert.assertEquals;
21
22 import java.io.IOException;
23 import java.util.List;
24
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;
38
39 public class TestDataMappings {
40
41         private static final HostInfo[] HOSTINFOS = new HostInfo[] {HostInfo.getDefault()};
42         //public static final String ESDATATYPENAME = "faultcurrent";
43
44         private static class HtDatabaseClientHelper extends HtDatabaseClient {
45
46                 private final String json;
47
48                 public HtDatabaseClientHelper(String jsonResponse, HostInfo[] hosts) {
49                         super(hosts);
50                         this.json = jsonResponse;
51
52                 }
53
54                 @Override
55                 public SearchResult<SearchHit> doReadByQueryJsonData(String dataTypeName, QueryBuilder qb) {
56                         return new SearchResult<SearchHit>(new SearchResponse(this.json).getHits());
57                 }
58         }
59
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();
67                 }
68         }
69
70         private static final String SEARCHJSON_FORMAT = "{\n" +
71                         "\"took\": 0,\n" +
72                         "\"timed_out\": false,\n" +
73                         "\"_shards\": {\n" +
74                         "\"total\": 5,\n" +
75                         "\"successful\": 5,\n" +
76                         "\"skipped\": 0,\n" +
77                         "\"failed\": 0\n" +
78                         "},\n" +
79                         "\"hits\": {\n" +
80                         "\"total\": 1,\n" +
81                         "\"max_score\": 1,\n" +
82                         "\"hits\": [\n" +
83                         "{\n" +
84                         "\"_index\": \"%s\",\n" +
85                         "\"_type\": \"%s\",\n" +
86                         "\"_id\": \"%s\",\n" +
87                         "\"_score\": 1,\n" +
88                         "\"_source\": %s}\n" +
89                         "]\n" +
90                         "}\n" +
91                         "}";
92
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\"}";
95
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");
103
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+"\""+
110         "}";
111
112
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" +
122                         "\"es\": 0,\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" +
161                         "\"ses\": 0,\n" +
162                         "\"cses\": 0\n" +
163                         "},\n" +
164                         "\"suspect-interval-flag\": false\n" +
165                         "}";
166
167         //@Test
168 //      public void testMediatorServer() throws ClassNotFoundException {
169 //
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());
176 //
177 //      }
178         //@Test
179 //      public void testFaultCurrent() {
180 //
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());
190 //      }
191 //
192         @Test
193         public void testPmData15m() {
194
195                 YangToolsMapper mapper = new YangToolsMapper();
196                 try {
197                         Data data =mapper.readValue(PMDATA15M_SERVERDB_JSON.getBytes(), Data.class);
198                         System.out.println(data);
199                 } catch (IOException e) {
200                         e.printStackTrace();
201                 }
202
203
204         }
205         private String getSearchJson(String dataType,String dbId, String source) {
206                 return String.format(SEARCHJSON_FORMAT,dataType,dataType, dbId,source);
207         }
208
209 }