d59a0784f876f70a4425dec54b394d44bcc80ebe
[ccsdk/features.git] / sdnr / wt / data-provider / provider / src / test / java / org / onap / ccsdk / features / sdnr / wt / dataprovider / test / TestCRUDforDatabase.java
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP : ccsdk features
4  * ================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
6  * All rights reserved.
7  * ================================================================================
8  * Update Copyright (C) 2021 Samsung Electronics Intellectual Property. All rights reserved.
9  * =================================================================================================
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  *     http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  * ============LICENSE_END=========================================================
22  *
23  */
24 package org.onap.ccsdk.features.sdnr.wt.dataprovider.test;
25
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertNotEquals;
28 import static org.junit.Assert.assertNotNull;
29 import static org.junit.Assert.assertNull;
30 import static org.junit.Assert.assertTrue;
31 import static org.junit.Assert.fail;
32 import java.io.IOException;
33 import java.math.BigInteger;
34 import java.util.List;
35 import java.util.concurrent.TimeUnit;
36 import org.junit.BeforeClass;
37 import org.junit.Test;
38 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
39 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchHit;
40 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchResult;
41 import org.onap.ccsdk.features.sdnr.wt.common.database.config.HostInfo;
42 import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilders;
43 import org.onap.ccsdk.features.sdnr.wt.common.database.requests.BaseRequest;
44 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.DatabaseDataProvider;
45 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.elasticsearch.impl.ElasticSearchDataProvider;
46 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.elasticsearch.impl.HtUserdataManagerImpl;
47 import org.onap.ccsdk.features.sdnr.wt.dataprovider.http.UserdataHttpServlet;
48 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.YangHelper2;
49 import org.onap.ccsdk.features.sdnr.wt.dataprovider.test.util.HostInfoForTest;
50 import org.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.DataProviderYangToolsMapper;
51 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CmNotificationType;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CmOperation;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CmSourceIndicator;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceInput;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceInputBuilder;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceOutputBuilder;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInput;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInputBuilder;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerOutputBuilder;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionInput;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionInputBuilder;
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionOutputBuilder;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInput;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInputBuilder;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInput;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInputBuilder;
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInput;
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInputBuilder;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadCmlogListInput;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadCmlogListInputBuilder;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadCmlogListOutputBuilder;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListInput;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListInputBuilder;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListOutputBuilder;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInput;
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInputBuilder;
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListOutputBuilder;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInput;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInputBuilder;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListOutputBuilder;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListInput;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListInputBuilder;
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListOutputBuilder;
89 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListInput;
90 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListInputBuilder;
91 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListOutputBuilder;
92 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInput;
93 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInputBuilder;
94 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListOutputBuilder;
95 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListInput;
96 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListInputBuilder;
97 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListOutputBuilder;
98 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInput;
99 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInputBuilder;
100 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListOutputBuilder;
101 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListInput;
102 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListInputBuilder;
103 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListOutputBuilder;
104 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListInput;
105 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListInputBuilder;
106 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListOutputBuilder;
107 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListInput;
108 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListInputBuilder;
109 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListOutputBuilder;
110 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListInput;
111 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListInputBuilder;
112 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListOutputBuilder;
113 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListInput;
114 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListInputBuilder;
115 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListOutputBuilder;
116 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListInput;
117 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListInputBuilder;
118 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListOutputBuilder;
119 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
120 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInput;
121 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInputBuilder;
122 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceOutputBuilder;
123 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInput;
124 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInputBuilder;
125 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerOutputBuilder;
126 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInput;
127 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInputBuilder;
128 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionOutputBuilder;
129 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder;
130 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterKey;
131 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Pagination;
132 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.PaginationBuilder;
133 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.mediator.server.list.output.Data;
134
135 public class TestCRUDforDatabase {
136
137     private static DatabaseDataProvider dbProvider;
138     private static HtDatabaseClient dbRawProvider;
139
140     @BeforeClass
141     public static void init() throws Exception {
142
143         HostInfo[] hosts = HostInfoForTest.get();
144         dbProvider = new ElasticSearchDataProvider(hosts);
145         dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
146         dbRawProvider = HtDatabaseClient.getClient(hosts);
147     }
148
149     public static void trySleep(long ms) {
150         try {
151             Thread.sleep(ms);
152         } catch (Exception e) {
153             Thread.currentThread().interrupt();
154         }
155     }
156
157     public static void trySleep() {
158         trySleep(0);
159     }
160
161     @Test
162     public void testStatus() throws IOException {
163
164         //== CLEAR AND CREATE ================================
165         clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
166                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
167                 SeverityType.Critical);
168         createFaultEntity("Lorem Ipsum", Entity.Faultcurrent.getName(),
169                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
170                 SeverityType.Major);
171         createFaultEntity("3", Entity.Faultcurrent.getName(),
172                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
173                 SeverityType.Minor);
174         createFaultEntity("4", Entity.Faultcurrent.getName(),
175                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
176                 SeverityType.Warning);
177
178         //== READ ================================
179
180         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.status.output.Data> readOutput =
181                 dbProvider.readStatus().getData();
182         System.out.println(readOutput);
183
184         assertEquals(1, readOutput.get(0).getFaults().getMajors().intValue());
185         assertEquals(1, readOutput.get(0).getFaults().getMinors().intValue());
186         assertEquals(1, readOutput.get(0).getFaults().getWarnings().intValue());
187         assertEquals(1, readOutput.get(0).getFaults().getCriticals().intValue());
188
189         //== DELETE ================================
190
191         System.out.println("try to delete entries");
192         try {
193             dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
194         } catch (Exception e) {
195             fail("problem deleting entry: " + e.getMessage());
196         }
197
198         //== VERIFY DELETE ===========================
199         System.out.println("verify entries were deleted");
200         readOutput = dbProvider.readStatus().getData();
201         assertEquals(0, readOutput.get(0).getFaults().getMajors().intValue());
202         assertEquals(0, readOutput.get(0).getFaults().getMinors().intValue());
203         assertEquals(0, readOutput.get(0).getFaults().getWarnings().intValue());
204         assertEquals(0, readOutput.get(0).getFaults().getCriticals().intValue());
205     }
206
207     @Test
208     public void testMediatorServer() {
209         final String NAME = "ms1";
210         final String URL = "http://11.23.45.55:4599";
211         final String NAME2 = "ms1-nu";
212         final String URL2 = "http://11.23.45.56:4599";
213
214         // ==CLEAR BEFORE TEST============================
215         System.out.println("try to clear entry");
216         try {
217             dbRawProvider.doRemove(Entity.MediatorServer.getName(), QueryBuilders.matchAllQuery());
218         } catch (Exception e) {
219             fail("problem deleting entry: " + e.getMessage());
220         }
221         trySleep();
222         // ==CREATE============================
223         System.out.println("try to create entry");
224         CreateMediatorServerOutputBuilder createOutput = null;
225         CreateMediatorServerInput input = new CreateMediatorServerInputBuilder().setName(NAME).setUrl(URL).build();
226         String dbId = null;
227
228         try {
229             createOutput = dbProvider.createMediatorServer(input);
230             dbId = createOutput.getId();
231             System.out.println(createOutput);
232         } catch (Exception e) {
233             fail("failed to create " + input.toString() + ":" + e.getMessage());
234         }
235         assertNotNull(createOutput);
236         assertNotNull(dbId);
237         trySleep();
238         // ==READ===========================
239         System.out.println("try to read entry");
240         ReadMediatorServerListInput readinput = new ReadMediatorServerListInputBuilder()
241                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
242                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
243                 .setPagination(getPagination(20, 1)).build();
244         ReadMediatorServerListOutputBuilder readoutput = dbProvider.readMediatorServerList(readinput);
245         List<Data> data = readoutput.getData();
246         assertNotNull(data);
247         assertEquals("no entry found", 1, data.size());
248         assertEquals(NAME, data.get(0).getName());
249         assertEquals(URL, data.get(0).getUrl());
250         String dbId2 = data.get(0).getId();
251         assertEquals(dbId, dbId2);
252         System.out.println(data);
253         // ==UPDATE============================
254         System.out.println("try to update entry");
255         UpdateMediatorServerInput updateInput =
256                 new UpdateMediatorServerInputBuilder().setId(dbId2).setName(NAME2).setUrl(URL2).build();
257         UpdateMediatorServerOutputBuilder updateOutput = null;
258         try {
259             updateOutput = dbProvider.updateMediatorServer(updateInput);
260             System.out.println(updateOutput);
261         } catch (Exception e) {
262             fail("problem updating entry:" + e.getMessage());
263         }
264         assertNotNull(updateOutput);
265         trySleep();
266         // ==READ============================
267         System.out.println("try to read entry");
268         readinput = new ReadMediatorServerListInputBuilder()
269                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
270                         new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
271                 .setPagination(getPagination(20, 1)).build();
272         readoutput = dbProvider.readMediatorServerList(readinput);
273         data = readoutput.getData();
274         System.out.println(data);
275         assertNotNull("no update response", data);
276         assertEquals("update not verifiied", 1, data.size());
277         assertEquals("update not verifiied", NAME2, data.get(0).getName());
278         assertEquals("update not verifiied", URL2, data.get(0).getUrl());
279         assertEquals("update not verifiied", dbId, data.get(0).getId());
280         // ==DELETE============================
281         System.out.println("try to delete entry");
282         DeleteMediatorServerInput deleteInput = new DeleteMediatorServerInputBuilder().setId(dbId).build();
283         try {
284             dbProvider.deleteMediatorServer(deleteInput);
285         } catch (Exception e) {
286             fail("problem deleting entry: " + e.getMessage());
287         }
288
289         trySleep();
290         // ==READ/VERIFY DELETE============================
291         System.out.println("try to read entry");
292         readinput = new ReadMediatorServerListInputBuilder()
293                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
294                         new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
295                 .setPagination(getPagination(20, 1)).build();
296         readoutput = dbProvider.readMediatorServerList(readinput);
297         data = readoutput.getData();
298         assertNotNull("delete not verifiied", data);
299         assertEquals("delete not verifiied", 0, data.size());
300     }
301
302     @Test
303     public void testNetworkElementConnectionCurrent() {
304
305         System.out.println("networkElementConnection test start");
306
307         // ==CLEAR BEFORE TEST============================
308         System.out.println("try to clear entry");
309         try {
310             dbRawProvider.doRemove(Entity.NetworkelementConnection.getName(), QueryBuilders.matchAllQuery());
311         } catch (Exception e) {
312             fail("problem deleting entry: " + e.getMessage());
313         }
314
315         // ==CREATE============================
316         System.out.println("try to create");
317         final String name = "sim87";
318         final String url = "10.5.10.1";
319         final long port = 5959;
320
321         CreateNetworkElementConnectionOutputBuilder create = null;
322         CreateNetworkElementConnectionInput input = new CreateNetworkElementConnectionInputBuilder().setNodeId(name)
323                 .setIsRequired(true).setHost(url).setPort(YangHelper2.getLongOrUint32(port)).build();
324         String dbId = null;
325
326         try {
327             create = dbProvider.createNetworkElementConnection(input);
328             dbId = create.getId();
329         } catch (Exception e) {
330             fail("networkElementConnection create failed" + e.getMessage());
331         }
332
333         assertNotNull(dbId);
334         assertNotNull(create);
335
336         // ==READ===========================
337
338         ReadNetworkElementConnectionListInput readInput = new ReadNetworkElementConnectionListInputBuilder()
339                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
340                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
341                 .setPagination(getPagination(20, 1)).build();
342
343         ReadNetworkElementConnectionListOutputBuilder readOperation =
344                 dbProvider.readNetworkElementConnectionList(readInput);
345         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.network.element.connection.list.output.Data> data =
346                 readOperation.getData();
347
348         assertNotNull(data);
349         assertEquals(dbId, data.get(0).getId());
350         assertEquals(name, data.get(0).getNodeId());
351         assertEquals(url, data.get(0).getHost());
352         assertEquals(port, data.get(0).getPort().longValue());
353
354         // ==UPDATE============================
355         System.out.println("Trying to update...");
356         final String url2 = "10.5.10.2";
357         final long port2 = 5960;
358
359         UpdateNetworkElementConnectionInput updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId)
360                 .setHost(url2).setPort(YangHelper2.getLongOrUint32(port2)).setIsRequired(false).build();
361         UpdateNetworkElementConnectionOutputBuilder updateOutput = null;
362         try {
363             updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
364         } catch (Exception e) {
365             fail("update failed: " + e.getMessage());
366         }
367
368         assertNotNull(updateOutput);
369
370         // == Verify UPDATE============================
371         System.out.println("Verfiying update...");
372
373         readOperation = dbProvider.readNetworkElementConnectionList(readInput);
374         data = readOperation.getData();
375
376         assertNotNull(data);
377         assertEquals(url2, data.get(0).getHost());
378         assertEquals(port2, data.get(0).getPort().longValue());
379
380         // ==PARTIAL UPDATE============================
381         System.out.println("Try partial update...");
382         assertEquals(false, data.get(0).isIsRequired());
383         updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build();
384         try {
385             updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
386         } catch (Exception e) {
387             fail("update failed: " + e.getMessage());
388         }
389
390         assertNotNull(updateOutput);
391
392         readOperation = dbProvider.readNetworkElementConnectionList(readInput);
393         data = readOperation.getData();
394
395         assertEquals(true, data.get(0).isIsRequired());
396         assertEquals(url2, data.get(0).getHost());
397         assertEquals(port2, data.get(0).getPort().longValue());
398
399         // ==DELETE============================
400         System.out.println("Try delete...");
401
402         DeleteNetworkElementConnectionInput deleteInput =
403                 new DeleteNetworkElementConnectionInputBuilder().setId(dbId).build();
404         try {
405             dbProvider.deleteNetworkElementConnection(deleteInput);
406         } catch (Exception e) {
407             fail("problem deleting " + e.getMessage());
408         }
409
410         readInput = new ReadNetworkElementConnectionListInputBuilder()
411                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
412                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
413                 .setPagination(getPagination(20, 1)).build();
414         readOperation = dbProvider.readNetworkElementConnectionList(readInput);
415         data = readOperation.getData();
416         assertEquals(0, data.size());
417
418     }
419
420     @Test
421     public void testMaintenance() {
422         System.out.println("Starting Maintenance tests...");
423
424         // ==CLEAR BEFORE TEST============================
425         System.out.println("try to clear entry");
426         try {
427             dbRawProvider.doRemove(Entity.Maintenancemode.getName(), QueryBuilders.matchAllQuery());
428         } catch (Exception e) {
429             fail("problem deleting entry: " + e.getMessage());
430         }
431
432         // ==CREATE============================
433
434         final String nodeId = "Lorem Ipsum";
435         final boolean isActive = true;
436
437         CreateMaintenanceOutputBuilder create = null;
438         CreateMaintenanceInput input =
439                 new CreateMaintenanceInputBuilder().setNodeId(nodeId).setActive(isActive).build();
440         String dbId = null;
441         try {
442             create = dbProvider.createMaintenance(input);
443             dbId = create.getId();
444         } catch (Exception e) {
445             fail("Failed to create:" + e.getMessage());
446         }
447
448         System.out.println(dbId);
449         assertNotNull(create);
450         assertNotNull(dbId);
451
452         // ==READ===========================
453         System.out.println("Try read...");
454
455         ReadMaintenanceListInput readinput = new ReadMaintenanceListInputBuilder()
456                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
457                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
458                 .setPagination(getPagination(20, 1)).build();
459         ReadMaintenanceListOutputBuilder readResult = dbProvider.readMaintenanceList(readinput);
460         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.maintenance.list.output.Data> data =
461                 readResult.getData();
462
463         assertNotEquals(0, data.size());
464         assertNotNull(data);
465         assertEquals(nodeId, data.get(0).getNodeId());
466         assertEquals(isActive, data.get(0).isActive());
467
468         // ==UPDATE============================
469
470         System.out.println("Trying to update...");
471         final String nodeId2 = "Name2";
472         final boolean isActive2 = false;
473
474         UpdateMaintenanceInput updateInput =
475                 new UpdateMaintenanceInputBuilder().setId(dbId).setNodeId(nodeId2).setActive(isActive2).build();
476         UpdateMaintenanceOutputBuilder updateResult = null;
477         try {
478             updateResult = dbProvider.updateMaintenance(updateInput);
479         } catch (Exception e) {
480             fail("maintenance update failed..." + e.getMessage());
481         }
482
483         assertNotNull(updateResult);
484
485         // == VERIFY UPDATE============================
486         System.out.println("Verfify update...");
487         readResult = dbProvider.readMaintenanceList(readinput);
488         data = readResult.getData();
489
490         assertNotNull(data);
491         assertEquals(nodeId2, data.get(0).getNodeId());
492         assertEquals(isActive2, data.get(0).isActive());
493
494         // ==DELETE================================
495         System.out.println("Trying to delete...");
496
497         DeleteMaintenanceInput deleteInput = new DeleteMaintenanceInputBuilder().setId(dbId).build();
498         try {
499             dbProvider.deleteMaintenance(deleteInput);
500         } catch (Exception e) {
501             fail("Maintenance entry couldn't be deleted" + e.getMessage());
502         }
503
504         readResult = dbProvider.readMaintenanceList(readinput);
505         data = readResult.getData();
506
507         assertEquals(0, data.size());
508     }
509
510     @Test
511     public void testFaultLog() {
512
513         System.out.println("Starting fault log tests...");
514         String dbId = clearAndCreatefaultEntity("1", Entity.Faultlog.getName(),
515                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultlogInput",
516                 SeverityType.Critical);
517
518         // ==READ===========================
519         System.out.println("try to read entry");
520
521         ReadFaultlogListInput readinput = new ReadFaultlogListInputBuilder()
522                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
523                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
524                 .setPagination(getPagination(20, 1)).build();
525
526         ReadFaultlogListOutputBuilder readResult = null;
527         try {
528             readResult = dbProvider.readFaultLogList(readinput);
529
530         } catch (Exception e) {
531             fail("Fault log not read: " + e.getMessage());
532         }
533
534         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultlog.list.output.Data> data =
535                 readResult.getData();
536
537         assertNotNull(data);
538         assertEquals(1, data.size());
539         assertEquals("signalIsLost", data.get(0).getProblem());
540         assertEquals("Critical", data.get(0).getSeverity().toString());
541         assertEquals("s1", data.get(0).getNodeId());
542
543         //== UPDATE ================================
544         System.out.println("try to update entry");
545
546         dbRawProvider.doUpdateOrCreate(Entity.Faultlog.getName(), "1",
547                 "{'problem': 'CableLOS', 'severity': 'Major', 'node-id': 'test4657-78'}");
548
549         System.out.println("try to search entry 1");
550         readinput = new ReadFaultlogListInputBuilder()
551                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
552                         new FilterBuilder().setProperty("node-id").setFiltervalue("test").build()))
553                 .setPagination(getPagination(20, 1)).build();
554
555         //== VERIFY UPDATE ================================
556         readResult = dbProvider.readFaultLogList(readinput);
557         data = readResult.getData();
558
559
560         assertNotNull(data);
561         System.out.println(data);
562         assertEquals(0, data.size());
563
564         System.out.println("try to search entry 2");
565
566         readinput = new ReadFaultlogListInputBuilder()
567                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
568                         new FilterBuilder().setProperty("node-id").setFiltervalue("test*").build()))
569                 .setPagination(getPagination(20, 1)).build();
570
571         readResult = dbProvider.readFaultLogList(readinput);
572         data = readResult.getData();
573
574
575         assertNotNull(data);
576         assertEquals(1, data.size());
577         assertEquals("CableLOS", data.get(0).getProblem());
578         assertEquals("Major", data.get(0).getSeverity().toString());
579         assertEquals("test4657-78", data.get(0).getNodeId());
580
581         //== DELETE ================================
582
583         System.out.println("try to clear entry");
584         try {
585             dbRawProvider.doRemove(Entity.Faultlog.getName(), dbId);
586         } catch (Exception e) {
587             fail("problem deleting entry: " + e.getMessage());
588         }
589
590         //== VERIFY DELETE ===========================
591         System.out.println("verify entries deleted");
592         readResult = dbProvider
593                 .readFaultLogList(new ReadFaultlogListInputBuilder().setPagination(getPagination(20, 1)).build());
594         data = readResult.getData();
595         assertEquals(0, data.size());
596     }
597
598     @Test
599     public void testCMLog() {
600         System.out.println("Starting CM log test...");
601         String dbId = clearAndCreateCMEntity("1", Entity.Cmlog.getName(),
602             "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateCmlogInput");
603         // ==READ===========================
604         System.out.println("try to read entry");
605
606         ReadCmlogListInput readinput = new ReadCmlogListInputBuilder()
607             .setFilter(YangHelper2.getListOrMap(FilterKey.class,
608                 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
609             .setPagination(getPagination(20, 1)).build();
610
611         ReadCmlogListOutputBuilder readResult = null;
612         try {
613             readResult = dbProvider.readCMLogList(readinput);
614
615         } catch (Exception e) {
616             fail("CM log not read: " + e.getMessage());
617         }
618
619         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.cmlog.list.output.Data>
620             data = readResult.getData();
621
622         assertNotNull(data);
623         assertEquals("1", dbId);
624         assertEquals(1, data.size());
625         assertEquals("node-1", data.get(0).getNodeId());
626         assertEquals(1, data.get(0).getCounter().intValue());
627         assertEquals(CmNotificationType.NotifyMOIChanges, data.get(0).getNotificationType());
628         assertEquals("123", data.get(0).getNotificationId());
629         assertEquals(CmSourceIndicator.MANAGEMENTOPERATION, data.get(0).getSourceIndicator());
630         assertEquals(CmOperation.REPLACE, data.get(0).getOperation());
631         assertEquals("pnf-registration:true", data.get(0).getValue());
632
633         //== UPDATE ================================
634         System.out.println("try to update entry");
635
636         dbRawProvider.doUpdateOrCreate(Entity.Cmlog.getName(), "1",
637             "{'node-id': 'test4657-78','operation': 'CREATE', 'notification-id': '1'}");
638
639         System.out.println("try to search entry 1");
640         readinput = new ReadCmlogListInputBuilder()
641             .setFilter(YangHelper2.getListOrMap(FilterKey.class,
642                 new FilterBuilder().setProperty("node-id").setFiltervalue("test").build()))
643             .setPagination(getPagination(20, 1)).build();
644
645         //== VERIFY UPDATE ================================
646         readResult = dbProvider.readCMLogList(readinput);
647         data = readResult.getData();
648
649         assertNotNull(data);
650         System.out.println(data);
651         assertEquals(0, data.size());
652
653         System.out.println("try to search entry 2");
654         readinput = new ReadCmlogListInputBuilder()
655             .setFilter(YangHelper2.getListOrMap(FilterKey.class,
656                 new FilterBuilder().setProperty("node-id").setFiltervalue("test*").build()))
657             .setPagination(getPagination(20, 1)).build();
658
659         readResult = dbProvider.readCMLogList(readinput);
660         data = readResult.getData();
661
662         assertEquals(1, data.size());
663         assertEquals("test4657-78", data.get(0).getNodeId());
664         assertEquals("CREATE", data.get(0).getOperation().toString());
665         assertEquals("1", data.get(0).getNotificationId());
666
667         //== DELETE ================================
668
669         System.out.println("try to clear entry");
670         try {
671             dbRawProvider.doRemove(Entity.Cmlog.getName(), dbId);
672         } catch (Exception e) {
673             fail("problem deleting entry: " + e.getMessage());
674         }
675
676         //== VERIFY DELETE ===========================
677         System.out.println("verify entries deleted");
678         readResult = dbProvider
679             .readCMLogList(new ReadFaultlogListInputBuilder().setPagination(getPagination(20, 1)).build());
680         data = readResult.getData();
681         assertEquals(0, data.size());
682     }
683
684     @Test
685     public void testFaultCurrent() {
686         System.out.println("Starting faultCurrent test...");
687         String dbId = null;
688         dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
689                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
690                 SeverityType.NonAlarmed);
691         assertEquals("1", dbId);
692
693         // ==READ===========================
694         System.out.println("Trying to read...");
695
696
697         ReadFaultcurrentListInput readinput = new ReadFaultcurrentListInputBuilder()
698                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
699                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
700                 .setPagination(getPagination(20, 1)).build();
701
702         ReadFaultcurrentListOutputBuilder readResult = null;
703         try {
704             readResult = dbProvider.readFaultCurrentList(readinput);
705
706         } catch (Exception e) {
707             fail("Fault log not read: " + e.getMessage());
708         }
709
710         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultcurrent.list.output.Data> data =
711                 readResult.getData();
712
713
714         assertNotNull(data);
715         assertEquals(1, data.size());
716         assertEquals("signalIsLost", data.get(0).getProblem());
717         assertEquals("NonAlarmed", data.get(0).getSeverity().toString());
718         assertEquals("s1", data.get(0).getNodeId());
719         assertEquals(4340, data.get(0).getCounter().intValue());
720         assertEquals(new DateAndTime("2019-10-28T11:55:58.3Z"), data.get(0).getTimestamp());
721         assertEquals(4340, data.get(0).getCounter().intValue());
722         assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
723
724
725         // ==UPDATE============================
726         System.out.println("Trying to update...");
727
728         String json = "{\n" + "\"timestamp\": \"2019-12-28T11:55:58.3Z\",\n" + "\"node-id\": \"SDN-Controller-0\",\n"
729                 + "\"counter\": 75,\n" + "\"problem\": \"connectionLossNeOAM\",\n" + "}";
730
731         String updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Faultcurrent.getName(), dbId, json);
732         assertEquals(dbId, updatedDbId);
733
734         // ==READ============================
735
736         try {
737             readResult = dbProvider.readFaultCurrentList(readinput);
738
739         } catch (Exception e) {
740             fail("Fault log not read: " + e.getMessage());
741         }
742
743         data = readResult.getData();
744
745         assertNotNull(data);
746         assertEquals(1, data.size());
747         assertEquals("connectionLossNeOAM", data.get(0).getProblem());
748         assertEquals("SDN-Controller-0", data.get(0).getNodeId());
749         assertEquals(75, data.get(0).getCounter().intValue());
750         assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
751
752         // ==DELETE============================
753         try {
754             dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
755         } catch (Exception e) {
756             fail("problem deleting: " + e.getMessage());
757         }
758
759         // ==READ/VERIFY DELETE============================
760
761         try {
762             readResult = dbProvider.readFaultCurrentList(readinput);
763
764         } catch (Exception e) {
765             fail("Fault log not read: " + e.getMessage());
766         }
767
768         data = readResult.getData();
769
770         assertNotNull(data);
771         assertEquals(0, data.size());
772     }
773
774     @Test
775     public void testConnectionLog() {
776
777         // ==CLEAR================================
778         System.out.println("Clear before test");
779         try {
780             dbRawProvider.doRemove(Entity.Connectionlog.getName(), QueryBuilders.matchAllQuery());
781         } catch (Exception e) {
782             fail("problem deleting: " + e.getMessage());
783         }
784
785         // ==CREATE================================
786
787         System.out.println("Try create entry");
788         final String initialDbId = "1";
789         String dbId = null;
790         String json = "{\n" + "\"timestamp\": \"2019-11-01T11:28:34.7Z\",\n" + "\"status\": \"Connecting\",\n"
791                 + "\"node-id\": \"sim2230\",\n"
792                 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateConnectionlogInput\"\n"
793                 + "}";
794
795         dbId = dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), initialDbId, json);
796
797         assertEquals(initialDbId, dbId);
798
799         // ==READ================================
800         System.out.println("Try read entry");
801
802         ReadConnectionlogListInput readinput = new ReadConnectionlogListInputBuilder()
803                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
804                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
805                 .setPagination(getPagination(20, 1)).build();
806
807         ReadConnectionlogListOutputBuilder readResult = null;
808         try {
809             readResult = dbProvider.readConnectionlogList(readinput);
810
811         } catch (Exception e) {
812             fail("Connection log not read: " + e.getMessage());
813         }
814
815         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.connectionlog.list.output.Data> data =
816                 readResult.getData();
817
818         assertNotNull(data);
819         assertEquals(1, data.size());
820         assertEquals("Connecting", data.get(0).getStatus().toString());
821         assertEquals("sim2230", data.get(0).getNodeId());
822
823
824         // ==UPDATE================================
825         System.out.println("Try update entry");
826
827         dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), dbId, "{'status' : 'Connected'}");
828
829         // ==READ 2================================
830         System.out.println("Try read updated entry");
831
832         readinput = new ReadConnectionlogListInputBuilder()
833                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
834                         new FilterBuilder().setProperty("status").setFiltervalue("Connected").build()))
835                 .setPagination(getPagination(20, 1)).build();
836
837         try {
838             readResult = dbProvider.readConnectionlogList(readinput);
839
840         } catch (Exception e) {
841             fail("Connection log not read: " + e.getMessage());
842         }
843
844         data = readResult.getData();
845
846         assertNotNull(data);
847         assertEquals(1, data.size());
848         assertEquals("Connected", data.get(0).getStatus().toString());
849         assertEquals("sim2230", data.get(0).getNodeId());
850
851         //== DELETE ================================
852
853         System.out.println("try to clear entry");
854         try {
855             dbRawProvider.doRemove(Entity.Connectionlog.getName(), dbId);
856         } catch (Exception e) {
857             fail("problem deleting entry: " + e.getMessage());
858         }
859
860         //== VERIFY DELETE ===========================
861         System.out.println("verify entries deleted");
862         readResult = dbProvider.readConnectionlogList(
863                 new ReadConnectionlogListInputBuilder().setPagination(getPagination(20, 1)).build());
864         data = readResult.getData();
865         assertEquals(0, data.size());
866
867     }
868
869     @Test
870     public void testEventLog() {
871         System.out.println("Test event log starting...");
872
873         // ==CLEAR================================
874         System.out.println("Clear before test");
875         try {
876             dbRawProvider.doRemove(Entity.Eventlog.getName(), QueryBuilders.matchAllQuery());
877         } catch (Exception e) {
878             fail("problem deleting: " + e.getMessage());
879         }
880         // ==CREATE============================
881
882         String dbId = null;
883         String json = " {\n" + "\"timestamp\": \"2019-11-08T16:39:23.0Z\",\n" + "\"new-value\": \"done\",\n"
884                 + "\"object-id\": \"SDN-Controller-0\",\n" + "\"attribute-name\": \"startup\",\n" + "\"counter\": 0,\n"
885                 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Eventlog\",\n"
886                 + "\"node-id\": \"SDN-Controller-0\"\n" + "}";
887
888         dbId = dbRawProvider.doUpdateOrCreate(Entity.Eventlog.getName(), "1", json);
889         assertNotNull(dbId);
890
891         // ==READ===========================
892
893         ReadEventlogListInput readinput = new ReadEventlogListInputBuilder()
894                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
895                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
896                 .setPagination(getPagination(20, 1)).build();
897         ReadEventlogListOutputBuilder readResult = null;
898         try {
899             readResult = dbProvider.readEventlogList(readinput);
900
901         } catch (Exception e) {
902             fail("problem reading eventlog");
903         }
904
905         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.eventlog.list.output.Data> data =
906                 readResult.getData();
907         assertEquals(1, data.size());
908
909         //== DELETE ================================
910
911         System.out.println("try to clear entry");
912         try {
913             dbRawProvider.doRemove(Entity.Eventlog.getName(), dbId);
914         } catch (Exception e) {
915             fail("problem deleting entry: " + e.getMessage());
916         }
917
918         //== VERIFY DELETE ===========================
919         System.out.println("verify entries deleted");
920         try {
921             readResult = dbProvider
922                     .readEventlogList(new ReadEventlogListInputBuilder().setPagination(getPagination(20, 1)).build());
923         } catch (IOException e) {
924             fail("problem reading eventlog");
925         }
926         data = readResult.getData();
927         assertEquals(0, data.size());
928
929     }
930
931     @Test
932     public void testInventory() {
933
934         System.out.println("Test inventory starting...");
935
936         // ==CLEAR================================
937         System.out.println("Clear before test");
938         try {
939             dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
940         } catch (Exception e) {
941             fail("problem deleting: " + e.getMessage());
942         }
943
944
945         // ==CREATE============================
946
947         String dbId = null;
948         String json = " {\"tree-level\": 1,\n" + "    \"parent-uuid\": \"SHELF-1.1.0.0\",\n"
949                 + "    \"node-id\": \"sim2\",\n" + "    \"uuid\": \"CARD-1.1.8.0\",\n"
950                 + "    \"contained-holder\": [ ],\n" + "    \"manufacturer-name\": \"Lorem Ipsum\",\n"
951                 + "    \"manufacturer-identifier\": \"ONF-Wireless-Transport\",\n" + "    \"serial\": \"sd-dsa-eqw\",\n"
952                 + "    \"date\": \"2008-10-21T00:00:00.0Z\",\n"
953                 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory\",\n"
954                 + "    \"version\": \"unknown\",\n" + "    \"description\": \"WS/DS3\",\n"
955                 + "    \"part-type-id\": \"unknown\",\n" + "    \"model-identifier\": \"model-id-s3s\",\n"
956                 + "    \"type-name\": \"p4.module\"}";
957
958         dbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), "1 1", json);
959         assertNotNull(dbId);
960
961         // ==READ===========================
962         ReadInventoryListInput readinput = new ReadInventoryListInputBuilder()
963                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
964                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
965                 .setPagination(getPagination(20, 1)).build();
966         ReadInventoryListOutputBuilder readResult = null;
967         try {
968             readResult = dbProvider.readInventoryList(readinput);
969
970         } catch (Exception e) {
971             fail("Problem reading inventory list" + e.getMessage());
972         }
973
974         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.inventory.list.output.Data> data =
975                 readResult.getData();
976         assertEquals(1, data.size());
977         assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
978         assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
979         assertEquals("sim2", data.get(0).getNodeId());
980         assertEquals("unknown", data.get(0).getVersion());
981         assertEquals("WS/DS3", data.get(0).getDescription());
982         assertEquals("2008-10-21T00:00:00.0Z", data.get(0).getDate());
983         assertEquals("sd-dsa-eqw", data.get(0).getSerial());
984         System.out.println(data.get(0).getDate());
985
986         // ==UPDATE============================
987         String updatedDbId = null;
988         final String[] holderArray = {"Lorem Ipsum 1", "Lorem Ipsum 2", "Lorem Ipsum &%/$_2"};
989         String updatejson = " {" + "    \"node-id\": \"sim5\",\n"
990                 + "    \"contained-holder\": [ \"Lorem Ipsum 1\", \"Lorem Ipsum 2\", \"Lorem Ipsum &%/$_2\" ],\n"
991                 + "    \"serial\": \"sd-dsa-eww\",\n" + "    \"date\": \"2008-11-21T00:00:00.0Z\",\n"
992                 + "    \"part-type-id\": \"not unknown\",\n" + "}";
993
994         updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), dbId, updatejson);
995         assertEquals(dbId, updatedDbId);
996
997         try {
998             readResult = dbProvider.readInventoryList(readinput);
999
1000         } catch (Exception e) {
1001             fail("Problem reading inventory list" + e.getMessage());
1002         }
1003
1004         data = readResult.getData();
1005
1006         assertEquals(1, data.size());
1007         assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
1008         assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
1009         assertEquals("sim5", data.get(0).getNodeId());
1010         assertEquals("not unknown", data.get(0).getPartTypeId());
1011         assertEquals("WS/DS3", data.get(0).getDescription());
1012         assertEquals("2008-11-21T00:00:00.0Z", data.get(0).getDate());
1013         assertEquals("sd-dsa-eww", data.get(0).getSerial());
1014         assertEquals(holderArray.length, data.get(0).getContainedHolder().size());
1015         assertEquals(holderArray[0], data.get(0).getContainedHolder().get(0));
1016         assertEquals(holderArray[1], data.get(0).getContainedHolder().get(1));
1017         assertEquals(holderArray[2], data.get(0).getContainedHolder().get(2));
1018
1019         // ==DELETE============================
1020
1021         System.out.println("delete after test");
1022         try {
1023             dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
1024         } catch (Exception e) {
1025             fail("problem deleting: " + e.getMessage());
1026         }
1027
1028         // ==VERIFY DELETE ============================
1029
1030         try {
1031             readResult = dbProvider.readInventoryList(readinput);
1032
1033         } catch (Exception e) {
1034             fail("Problem reading inventory list" + e.getMessage());
1035         }
1036
1037         data = readResult.getData();
1038         assertEquals(0, data.size());
1039
1040     }
1041
1042     @Test
1043     public void test15MinPerformanceReadLtpListWithoutNodeIdSetThrowsException() {
1044
1045         System.out.println("Reading 15m ltp list without node id filter set throws an exception test start...");
1046
1047         try {
1048             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1049         } catch (Exception e) {
1050             fail("problem deleting: " + e.getMessage());
1051         }
1052
1053         System.out.println("create entries...");
1054
1055         createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1056         createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1057
1058         createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1059         createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1060         createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1061         createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1062
1063         System.out.println("trying to read, should throw exception...");
1064
1065
1066         ReadPmdata15mLtpListInput readLtp =
1067                 new ReadPmdata15mLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
1068
1069         ReadPmdata15mLtpListOutputBuilder readltpResult = null;
1070
1071         try {
1072             readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
1073             fail("No exception thrown!");
1074         } catch (Exception e) {
1075             System.out.println(e);
1076             assertTrue(e instanceof IllegalArgumentException);
1077             assertEquals("no nodename in filter found ", e.getMessage());
1078         }
1079
1080         assertNull(readltpResult);
1081
1082         //== DELETE ================================
1083
1084         System.out.println("try to clear entry");
1085         try {
1086             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1087         } catch (Exception e) {
1088             fail("problem deleting entry: " + e.getMessage());
1089         }
1090
1091         //== VERIFY DELETE ===========================
1092         System.out.println("verify entries deleted");
1093         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data> data =
1094                 dbProvider
1095                         .readPmdata15mList(
1096                                 new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build())
1097                         .getData();
1098
1099         assertEquals(0, data.size());
1100     }
1101
1102     @Test
1103     public void test15MinPerformanceData() {
1104         // == CLEAR BEFORE TESTS ============================
1105         System.out.println("Test 15 min performance...");
1106
1107         try {
1108             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1109         } catch (Exception e) {
1110             fail("problem deleting: " + e.getMessage());
1111         }
1112
1113         // == CREATE ============================
1114
1115         System.out.println("create entries...");
1116
1117         createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1118         createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1119
1120         createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1121         createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1122         createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1123         createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1124
1125         // == READ ============================
1126         System.out.println("read list entries...");
1127
1128         ReadPmdata15mListInput read = new ReadPmdata15mListInputBuilder()
1129                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1130                         new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1131                 .setPagination(getPagination(20, 1)).build();
1132
1133         ReadPmdata15mListOutputBuilder readResult = null;
1134
1135         try {
1136             readResult = dbProvider.readPmdata15mList(read);
1137         } catch (Exception e) {
1138             fail("Problem reading 15m data");
1139         }
1140
1141         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data> data =
1142                 readResult.getData();
1143
1144         assertNotNull(data);
1145         assertEquals(2, data.size());
1146
1147         System.out.println("read ltp entries with node name set...");
1148
1149         ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
1150                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1151                         new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1152                 .setPagination(getPagination(20, 1)).build();
1153
1154         ReadPmdata15mLtpListOutputBuilder readltpResult = null;
1155
1156         try {
1157             readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
1158         } catch (Exception e) {
1159             fail("Problem reading 15m ltp data");
1160         }
1161
1162         List<String> dataLtp = readltpResult.getData();
1163
1164         assertNotNull(dataLtp);
1165         assertEquals(2, dataLtp.size());
1166         assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1167         assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1168
1169         System.out.println("read device entries...");
1170
1171         ReadPmdata15mDeviceListInput readDevices =
1172                 new ReadPmdata15mDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1173
1174         ReadPmdata15mDeviceListOutputBuilder readDeviceResult = null;
1175
1176         try {
1177             readDeviceResult = dbProvider.readPmdata15mDeviceList(readDevices);
1178         } catch (Exception e) {
1179             fail("Problem reading 15m device data");
1180         }
1181
1182         List<String> dataDevice = readDeviceResult.getData();
1183
1184         assertNotNull(dataDevice);
1185         assertEquals(2, dataDevice.size());
1186         assertTrue(dataDevice.contains("a2"));
1187         assertTrue(dataDevice.contains("a3"));
1188
1189         //== DELETE ================================
1190
1191         System.out.println("try to clear entry");
1192         try {
1193             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1194         } catch (Exception e) {
1195             fail("problem deleting entry: " + e.getMessage());
1196         }
1197
1198         //== VERIFY DELETE ===========================
1199         System.out.println("verify entries deleted");
1200         readResult = dbProvider
1201                 .readPmdata15mList(new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build());
1202         data = readResult.getData();
1203         assertEquals(0, data.size());
1204
1205     }
1206
1207     @Test
1208     public void test24hPerformanceData() {
1209         System.out.println("Test 24h performance...");
1210
1211         try {
1212             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1213         } catch (Exception e) {
1214             fail("problem deleting: " + e.getMessage());
1215         }
1216
1217         System.out.println("create entries...");
1218         GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1219         createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1220         createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1221         String aDbId = createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-06", "a2");
1222
1223         createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1224         createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1225         createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1226
1227         System.out.println("read all list entries...");
1228
1229         ReadPmdata24hListInput read = new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build();
1230
1231         ReadPmdata24hListOutputBuilder readResult = null;
1232
1233         try {
1234             readResult = dbProvider.readPmdata24hList(read);
1235         } catch (Exception e) {
1236             fail("Problem reading 24h data");
1237         }
1238
1239         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._24h.list.output.Data> data =
1240                 readResult.getData();
1241
1242         assertNotNull(data);
1243         assertEquals(6, data.size());
1244
1245
1246         System.out.println("filter list entries...");
1247
1248         read = new ReadPmdata24hListInputBuilder()
1249                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1250                         new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1251                 .setPagination(getPagination(20, 1)).build();
1252
1253         readResult = null;
1254
1255         try {
1256             readResult = dbProvider.readPmdata24hList(read);
1257         } catch (Exception e) {
1258             fail("Problem reading 24h data");
1259         }
1260
1261         data = readResult.getData();
1262
1263         assertNotNull(data);
1264         assertEquals(3, data.size());
1265
1266         System.out.println("read ltp entries with node name set...");
1267
1268         ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1269                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1270                         new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1271                 .setPagination(getPagination(20, 1)).build();
1272
1273         ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1274
1275         try {
1276             readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1277         } catch (Exception e) {
1278             fail("Problem reading 24h ltp data");
1279         }
1280
1281         List<String> dataLtp = readltpResult.getData();
1282
1283         assertNotNull(dataLtp);
1284         assertEquals(3, dataLtp.size());
1285         assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1286         assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1287         assertTrue(dataLtp.contains("LP-MWPS-TTP-06"));
1288
1289
1290         System.out.println("read device entries...");
1291
1292         ReadPmdata24hDeviceListInput readDevices =
1293                 new ReadPmdata24hDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1294
1295         ReadPmdata24hDeviceListOutputBuilder readDeviceResult = null;
1296
1297         try {
1298             readDeviceResult = dbProvider.readPmdata24hDeviceList(readDevices);
1299         } catch (Exception e) {
1300             fail("Problem reading 24h device data");
1301         }
1302
1303         List<String> dataDevice = readDeviceResult.getData();
1304
1305         assertNotNull(dataDevice);
1306         assertEquals(2, dataDevice.size());
1307         assertTrue(dataDevice.contains("a2"));
1308         assertTrue(dataDevice.contains("a3"));
1309
1310         // == UPDATE ==============================
1311
1312         boolean success = dbRawProvider.doUpdate(Entity.Historicalperformance24h.getName(),
1313                 "{'uuid-interface':'LTP-TEST-MWP-097'}", QueryBuilders.termQuery("_id", aDbId));
1314         assertTrue("update dbentry not succeeded", success);
1315         try {
1316             readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1317         } catch (Exception e) {
1318             fail("Problem reading 24h ltp data");
1319         }
1320
1321         // == VERIFY UPDATE ==============================
1322
1323         dataLtp = readltpResult.getData();
1324
1325         assertNotNull(dataLtp);
1326         assertEquals(3, dataLtp.size());
1327         assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1328         assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1329         assertTrue(dataLtp.contains("LTP-TEST-MWP-097"));
1330
1331
1332
1333         //== DELETE ===========================
1334
1335         System.out.println("try to clear entries");
1336         try {
1337             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1338         } catch (Exception e) {
1339             fail("problem deleting entry: " + e.getMessage());
1340         }
1341
1342         //== VERIFY DELETE ===========================
1343         System.out.println("verify entries deleted");
1344         readResult = dbProvider
1345                 .readPmdata24hList(new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build());
1346         data = readResult.getData();
1347         assertEquals(0, data.size());
1348     }
1349
1350     @Test
1351     public void test24hPerformanceDataReadLtpListWithoutNodeIdSetThrowsException() {
1352         System.out.println("Test 24 hour tp list without node id filter set throws an exception test start...\"...");
1353
1354         try {
1355             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1356         } catch (Exception e) {
1357             fail("problem deleting: " + e.getMessage());
1358         }
1359
1360         System.out.println("create entries...");
1361
1362         GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1363         createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1364         createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1365
1366         createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1367         createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1368         createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1369         createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1370
1371         System.out.println("trying to read, should throw exception...");
1372
1373
1374         ReadPmdata24hLtpListInput readLtp =
1375                 new ReadPmdata24hLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
1376
1377         ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1378
1379         try {
1380             readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1381             fail("No exception thrown!");
1382         } catch (Exception e) {
1383             System.out.println(e);
1384             assertTrue(e instanceof IllegalArgumentException);
1385             assertEquals("no nodename in filter found ", e.getMessage());
1386         }
1387
1388         assertNull(readltpResult);
1389
1390         try {
1391             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1392         } catch (Exception e) {
1393             fail("problem deleting: " + e.getMessage());
1394         }
1395     }
1396
1397     @Test
1398     public void testUrlEncoding() {
1399         System.out.println("Testing url encding");
1400
1401         final String test = "Lorem Ipsum";
1402         final String test1 = "Lorem/Ipsum";
1403         final String test2 = "Lorem_Ipsum";
1404         final String test3 = "Lorem%Ipsum";
1405
1406         assertEquals("Lorem%20Ipsum", BaseRequest.urlEncodeValue(test));
1407         assertEquals("Lorem%2FIpsum", BaseRequest.urlEncodeValue(test1));
1408         assertEquals("Lorem_Ipsum", BaseRequest.urlEncodeValue(test2));
1409         assertEquals("Lorem%25Ipsum", BaseRequest.urlEncodeValue(test3));
1410     }
1411
1412     @Test
1413     public void testDoUpdateOrCreateWithNullId() {
1414         System.out.println("Test DoUpdateOrCreate doesn't create new database entry if null is passed");
1415
1416         String dbId = clearAndCreatefaultEntity(null, Entity.Faultlog.getName(),
1417                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultlogInput",
1418                 SeverityType.Critical);
1419         assertNull(dbId);
1420     }
1421
1422     @Test
1423     public void readTestFaultCurrentViaRawDbProvider() {
1424         System.out.println("Starting faultCurrent test...");
1425         String dbId = null;
1426         dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
1427                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
1428                 SeverityType.Critical);
1429         assertEquals("1", dbId);
1430
1431         // ==READ===========================
1432         System.out.println("Trying to read...");
1433
1434         String readResult = null;
1435         try {
1436             readResult = dbRawProvider.doReadJsonData(Entity.Faultcurrent.getName(), dbId);
1437
1438         } catch (Exception e) {
1439             fail("Fault log not read: " + e.getMessage());
1440         }
1441
1442
1443         String expectedDbResult =
1444                 "{\"severity\":\"Critical\",\"node-id\":\"s1\",\"problem\":\"signalIsLost\",\"counter\":4340,\"object-id\":\"LP-MWPS-RADIO\",\"implemented-interface\":\"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput\",\"type\":\"ProblemNotificationXml\",\"timestamp\":\"2019-10-28T11:55:58.3Z\"}";
1445
1446         System.out.println(readResult);
1447         assertNotNull(readResult);
1448         assertEquals(expectedDbResult, readResult);
1449
1450         SearchResult<SearchHit> searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1451         assertNotNull(searchResult);
1452
1453         List<SearchHit> hits = searchResult.getHits();
1454
1455         assertNotNull(hits);
1456         assertEquals(1, searchResult.getTotal());
1457         assertEquals(expectedDbResult, hits.get(0).getSourceAsString());
1458
1459         //== DELETE ==============================
1460         try {
1461             dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
1462         } catch (Exception e) {
1463             fail("problem deleting: " + e.getMessage());
1464         }
1465         //== VERIFY DELETE ========================
1466         searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1467         hits = searchResult.getHits();
1468         assertNotNull(hits);
1469         assertEquals(0, searchResult.getTotal());
1470
1471     }
1472
1473     @Test
1474     public void testOutputCamelCase() throws ClassNotFoundException {
1475         try {
1476             String jsonString = "{\n" + "\"timestamp\": \"2020-02-20T09:31:22.3Z\",\n"
1477                     + "\"object-id\": \"LP-MWPS-RADIO\",\n" + "\"severity\": \"Critical\",\n" + "\"counter\": 10,\n"
1478                     + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog\",\n"
1479                     + "\"source-type\": \"Netconf\",\n" + "\"node-id\": \"sim4\",\n" + "\"problem\": \"signalIsLost\"\n"
1480                     + "}";
1481             DataProviderYangToolsMapper yangtoolsMapper = new DataProviderYangToolsMapper();
1482             Faultlog log = yangtoolsMapper.readValue(jsonString, Faultlog.class);
1483             System.out.println(yangtoolsMapper.writeValueAsString((new FaultlogBuilder(log).build())));
1484             System.out.println("Check3");
1485         } catch (IOException e) {
1486             e.printStackTrace();
1487             fail("Fail");
1488         }
1489
1490     }
1491
1492     @Test
1493     public void testUserdata() {
1494         final String USERNAME = "admin";
1495         final String DATA1 = "{\n" + "    \"networkMap\":{\n"
1496                 + "        \"startupPosition\": {\"lat\": 52.5095, \"lon\":13.329, \"zoom\": 10},\n"
1497                 + "        \"tileOpacity\": 90,\n" + "        \"styling\":{\n" + "            \"theme\": \"light\"\n"
1498                 + "        }\n" + "    },\n" + "    \"dashboard\":{\n" + "        \"color\":\"#F00\"\n" + "    }\n"
1499                 + "}";
1500         HtUserdataManagerImpl client = new HtUserdataManagerImpl(dbRawProvider);
1501         boolean success = client.setUserdata(USERNAME, DATA1);
1502         assertTrue(success);
1503         String data = client.getUserdata(USERNAME);
1504         //JSONAssert.assertEquals(DATA1,data,false);
1505
1506         assertEquals("admin", UserdataHttpServlet.decodeJWTPayloadUsername(String.format("Bearer %s",
1507                 "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbkBzZG4iLCJyb2xlcyI6WyJ1c2VyIiwiYWRtaW4iXSwiaXN"
1508                 + "zIjoiT3BlbmRheWxpZ2h0IiwibmFtZSI6ImFkbWluQHNkbiIsImV4cCI6MTYxNTc5NTg1NywiZmFtaWx5X25hbWUiOiIifQ.wB"
1509                 + "PdB45_bryU6_kSCu3be3dq3yth24niSXi6b2_1ufc"),
1510                 "sub"));
1511     }
1512
1513     private Pagination getPagination(long pageSize, int page) {
1514         return new PaginationBuilder().setPage(YangHelper2.getBigIntegerOrUint64(BigInteger.valueOf(page)))
1515                 .setSize(YangHelper2.getLongOrUint32(pageSize)).build();
1516     }
1517
1518
1519     private String clearAndCreatefaultEntity(String initialDbId, String entityType, String implementedInterface,
1520             SeverityType severity) {
1521         // ==CLEAR BEFORE TEST============================
1522         System.out.println("try to clear entry");
1523         try {
1524             dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
1525         } catch (Exception e) {
1526             fail("problem deleting: " + e.getMessage());
1527         }
1528
1529
1530         return createFaultEntity(initialDbId, entityType, implementedInterface, severity);
1531     }
1532
1533     private String createFaultEntity(String initialDbId, String entityType, String implementedInterface,
1534             SeverityType severity) {
1535         // ==CREATE============================
1536         System.out.println("try to create entry");
1537         String dbId = null;
1538
1539         try {
1540
1541             dbId = dbRawProvider.doUpdateOrCreate(entityType, initialDbId,
1542                     "{\n" + "\"timestamp\": \"2019-10-28T11:55:58.3Z\",\n" + "\"object-id\": \"LP-MWPS-RADIO\",\n"
1543                             + "\"severity\": \"" + severity.toString() + "\",\n" + "\"node-id\": \"s1\",\n"
1544                             + "\"implemented-interface\": \"" + implementedInterface + "\",\n" + "\"counter\": 4340,\n"
1545                             + "\"problem\": \"signalIsLost\",\n" + "\"type\": \"ProblemNotificationXml\"\n" + "}");
1546
1547
1548
1549         } catch (Exception e) {
1550             fail("Problem creating fault log entry" + e.getMessage());
1551         }
1552
1553         return dbId;
1554     }
1555
1556     private String clearAndCreateCMEntity(String initialDbId, String entityType, String implementedInterface) {
1557         // ==CLEAR BEFORE TEST============================
1558         System.out.println("try to clear entry");
1559         try {
1560             dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
1561         } catch (Exception e) {
1562             fail("problem deleting: " + e.getMessage());
1563         }
1564         return createCMEntity(initialDbId, entityType, implementedInterface);
1565     }
1566
1567     private String createCMEntity(String initialDbId, String entityType, String implementedInterface) {
1568         // ==CREATE============================
1569             System.out.println("try to create entry");
1570             String dbId = null;
1571
1572         try {
1573             dbId = dbRawProvider.doUpdateOrCreate(entityType, initialDbId,
1574                 "{\n" + "\"timestamp\": \"2019-10-28T11:55:58.3Z\",\n"
1575                     + "\" object-id\": \"LP-MWPS-RADIO\",\n"
1576                     + "\"node-id\": \"node-1\",\n"
1577                     + "\"counter\": 1,\n"
1578                     + "\"notification-type\": \"" + CmNotificationType.NotifyMOIChanges.toString() + "\",\n"
1579                     + "\"notification-id\": 123,\n"
1580                     + "\"source-indicator\": \"" + CmSourceIndicator.MANAGEMENTOPERATION.toString() + "\",\n"
1581                     + "\" path\": \"https://samsung.com/3GPP/simulation/network-function/ves=1\",\n"
1582                     + "\"operation\": \"" + CmOperation.REPLACE.toString() + "\",\n"
1583                     + "\"value\": \"pnf-registration:true\",\n"
1584                     + "\"implemented-interface\": \"" + implementedInterface + "\"\n"
1585                     + "}");
1586
1587         } catch (Exception e) {
1588             fail("Problem creating CM log entry" + e.getMessage());
1589         }
1590
1591         return dbId;
1592     }
1593
1594
1595     private String createPerformanceData(String initialDbId, GranularityPeriodType timeInterval, String scannerId,
1596             String uuidInterface, String nodename) {
1597
1598         String json = "{\n" + "\"node-name\": \"" + nodename + "\",\n" + "\"uuid-interface\": \"" + uuidInterface
1599                 + "\",\n" + "\"layer-protocol-name\": \"MWPS\",\n" + "\"radio-signal-id\": \"Test8\",\n"
1600                 + "\"time-stamp\": \"2017-03-01T06:15:00.0Z\",\n" + "\"granularity-period\": \""
1601                 + timeInterval.toString() + "\",\n" + "\"scanner-id\": \"" + scannerId + "\",\n"
1602                 + "\"performance-data\": {\n" + "\"cses\": 0,\n" + "\"ses\": 0,\n" + "\"es\": 0,\n"
1603                 + "\"tx-level-max\": 3,\n" + "\"tx-level-avg\": 3,\n" + "\"rx-level-min\": -44,\n"
1604                 + "\"rx-level-max\": -45,\n" + "\"rx-level-avg\": -44,\n" + "\"time2-states\": 0,\n"
1605                 + "\"time4-states-s\": 0,\n" + "\"time4-states\": 0,\n" + "\"time8-states\": -1,\n"
1606                 + "\"time16-states-s\": -1,\n" + "\"time16-states\": 0,\n" + "\"time32-states\": -1,\n"
1607                 + "\"time64-states\": 900,\n" + "\"time128-states\": -1,\n" + "\"time256-states\": -1,\n"
1608                 + "\"time512-states\": -1,\n" + "\"time512-states-l\": -1,\n" + "\"unavailability\": 0,\n"
1609                 + "\"tx-level-min\": 3,\n" + "\"time1024-states\": -1,\n" + "\"time1024-states-l\": -1,\n"
1610                 + "\"time2048-states\": -1,\n" + "\"time2048-states-l\": -1,\n" + "\"time4096-states\": -1,\n"
1611                 + "\"time4096-states-l\": -1,\n" + "\"time8192-states\": -1,\n" + "\"time8192-states-l\": -1,\n"
1612                 + "\"snir-min\": -99,\n" + "\"snir-max\": -99,\n" + "\"snir-avg\": -99,\n" + "\"xpd-min\": -99,\n"
1613                 + "\"xpd-max\": -99,\n" + "\"xpd-avg\": -99,\n" + "\"rf-temp-min\": -99,\n" + "\"rf-temp-max\": -99,\n"
1614                 + "\"rf-temp-avg\": -99,\n" + "\"defect-blocks-sum\": -1,\n" + "\"time-period\": 900\n" + "},\n"
1615                 + "\"suspect-interval-flag\": false\n" + "}";
1616
1617         if (timeInterval.equals(GranularityPeriodType.Period15Min)) {
1618             return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance15min.getName(), initialDbId, json);
1619         } else {
1620             return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance24h.getName(), initialDbId, json);
1621         }
1622     }
1623
1624 }