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