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