a4b284e4fe6ae1e2d7eb99391ba25e3ebd3d264e
[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
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();
69         }
70     }
71
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" + "}";
77
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\"}";
81
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");
90
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 + "\"" + "}";
95
96
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" + "}";
115
116     //@Test
117     //  public void testMediatorServer() throws ClassNotFoundException {
118     //
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());
125     //
126     //  }
127     //@Test
128     //  public void testFaultCurrent() {
129     //
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());
139     //  }
140     //
141     @Test
142     public void testPmData15m() {
143
144         YangToolsMapper mapper = new YangToolsMapper();
145         try {
146             Data data = mapper.readValue(PMDATA15M_SERVERDB_JSON.getBytes(), Data.class);
147             System.out.println(data);
148         } catch (IOException e) {
149             e.printStackTrace();
150         }
151
152
153     }
154
155     private String getSearchJson(String dataType, String dbId, String source) {
156         return String.format(SEARCHJSON_FORMAT, dataType, dataType, dbId, source);
157     }
158
159 }