2  * ============LICENSE_START=======================================================
 
   3  * ONAP : ccsdk features
 
   4  * ================================================================================
 
   5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
 
   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
 
  14  *     http://www.apache.org/licenses/LICENSE-2.0
 
  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=========================================================
 
  24 package org.onap.ccsdk.features.sdnr.wt.dataprovider.test;
 
  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;
 
  38 import java.util.concurrent.TimeUnit;
 
  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;
 
 147 public class TestCRUDforDatabase {
 
 149     private static DatabaseDataProvider dbProvider;
 
 150     private static HtDatabaseClient dbRawProvider;
 
 153     public static void init() throws Exception {
 
 155         HostInfo[] hosts = HostInfoForTest.get();
 
 156         dbProvider = new ElasticSearchDataProvider(hosts);
 
 157         dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
 
 158         dbRawProvider = HtDatabaseClient.getClient(hosts);
 
 161     public static void trySleep(long ms) {
 
 164         } catch (Exception e) {
 
 165             Thread.currentThread().interrupt();
 
 169     public static void trySleep() {
 
 174     public void testStatus() throws IOException {
 
 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");
 
 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 ================================
 
 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);
 
 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());
 
 223         //== DELETE ================================
 
 225         System.out.println("try to delete entries");
 
 227             dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
 
 228         } catch (Exception e) {
 
 229             fail("problem deleting entry: " + e.getMessage());
 
 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());
 
 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";
 
 250         // ==CLEAR BEFORE TEST============================
 
 251         System.out.println("try to clear entry");
 
 253             dbRawProvider.doRemove(Entity.MediatorServer.getName(), QueryBuilders.matchAllQuery());
 
 254         } catch (Exception e) {
 
 255             fail("problem deleting entry: " + e.getMessage());
 
 258         // ==CREATE============================
 
 259         System.out.println("try to create entry");
 
 260         CreateMediatorServerOutputBuilder createOutput = null;
 
 261         CreateMediatorServerInput input = new CreateMediatorServerInputBuilder().setName(NAME).setUrl(URL).build();
 
 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());
 
 271         assertNotNull(createOutput);
 
 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();
 
 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;
 
 295             updateOutput = dbProvider.updateMediatorServer(updateInput);
 
 296             System.out.println(updateOutput);
 
 297         } catch (Exception e) {
 
 298             fail("problem updating entry:" + e.getMessage());
 
 300         assertNotNull(updateOutput);
 
 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();
 
 320             dbProvider.deleteMediatorServer(deleteInput);
 
 321         } catch (Exception e) {
 
 322             fail("problem deleting entry: " + e.getMessage());
 
 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());
 
 339     public void testNetworkElementConnectionCurrent() {
 
 341         System.out.println("networkElementConnection test start");
 
 343         // ==CLEAR BEFORE TEST============================
 
 344         System.out.println("try to clear entry");
 
 346             dbRawProvider.doRemove(Entity.NetworkelementConnection.getName(), QueryBuilders.matchAllQuery());
 
 347         } catch (Exception e) {
 
 348             fail("problem deleting entry: " + e.getMessage());
 
 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;
 
 357         CreateNetworkElementConnectionOutputBuilder create = null;
 
 358         CreateNetworkElementConnectionInput input = new CreateNetworkElementConnectionInputBuilder().setNodeId(name)
 
 359                 .setIsRequired(true).setHost(url).setPort(YangHelper2.getLongOrUint32(port)).build();
 
 363             create = dbProvider.createNetworkElementConnection(input);
 
 364             dbId = create.getId();
 
 365         } catch (Exception e) {
 
 366             fail("networkElementConnection create failed" + e.getMessage());
 
 370         assertNotNull(create);
 
 372         // ==READ===========================
 
 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();
 
 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();
 
 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());
 
 390         // ==UPDATE============================
 
 391         System.out.println("Trying to update...");
 
 392         final String url2 = "10.5.10.2";
 
 393         final long port2 = 5960;
 
 395         UpdateNetworkElementConnectionInput updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId)
 
 396                 .setHost(url2).setPort(YangHelper2.getLongOrUint32(port2)).setIsRequired(false).build();
 
 397         UpdateNetworkElementConnectionOutputBuilder updateOutput = null;
 
 399             updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
 
 400         } catch (Exception e) {
 
 401             fail("update failed: " + e.getMessage());
 
 404         assertNotNull(updateOutput);
 
 406         // == Verify UPDATE============================
 
 407         System.out.println("Verfiying update...");
 
 409         readOperation = dbProvider.readNetworkElementConnectionList(readInput);
 
 410         data = readOperation.getData();
 
 413         assertEquals(url2, data.get(0).getHost());
 
 414         assertEquals(port2, data.get(0).getPort().longValue());
 
 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();
 
 421             updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
 
 422         } catch (Exception e) {
 
 423             fail("update failed: " + e.getMessage());
 
 426         assertNotNull(updateOutput);
 
 428         readOperation = dbProvider.readNetworkElementConnectionList(readInput);
 
 429         data = readOperation.getData();
 
 431         assertEquals(true, data.get(0).requireIsRequired());
 
 432         assertEquals(url2, data.get(0).getHost());
 
 433         assertEquals(port2, data.get(0).getPort().longValue());
 
 435         // ==DELETE============================
 
 436         System.out.println("Try delete...");
 
 438         DeleteNetworkElementConnectionInput deleteInput =
 
 439                 new DeleteNetworkElementConnectionInputBuilder().setId(dbId).build();
 
 441             dbProvider.deleteNetworkElementConnection(deleteInput);
 
 442         } catch (Exception e) {
 
 443             fail("problem deleting " + e.getMessage());
 
 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());
 
 457     public void testMaintenance() {
 
 458         System.out.println("Starting Maintenance tests...");
 
 460         // ==CLEAR BEFORE TEST============================
 
 461         System.out.println("try to clear entry");
 
 463             dbRawProvider.doRemove(Entity.Maintenancemode.getName(), QueryBuilders.matchAllQuery());
 
 464         } catch (Exception e) {
 
 465             fail("problem deleting entry: " + e.getMessage());
 
 468         // ==CREATE============================
 
 470         final String nodeId = "Lorem Ipsum";
 
 471         final boolean isActive = true;
 
 473         CreateMaintenanceOutputBuilder create = null;
 
 474         CreateMaintenanceInput input =
 
 475                 new CreateMaintenanceInputBuilder().setNodeId(nodeId).setActive(isActive).build();
 
 478             create = dbProvider.createMaintenance(input);
 
 479             dbId = create.getId();
 
 480         } catch (Exception e) {
 
 481             fail("Failed to create:" + e.getMessage());
 
 484         System.out.println(dbId);
 
 485         assertNotNull(create);
 
 488         // ==READ===========================
 
 489         System.out.println("Try read...");
 
 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();
 
 499         assertNotEquals(0, data.size());
 
 501         assertEquals(nodeId, data.get(0).getNodeId());
 
 502         assertEquals(isActive, data.get(0).requireActive());
 
 504         // ==UPDATE============================
 
 506         System.out.println("Trying to update...");
 
 507         final String nodeId2 = "Name2";
 
 508         final boolean isActive2 = false;
 
 510         UpdateMaintenanceInput updateInput =
 
 511                 new UpdateMaintenanceInputBuilder().setId(dbId).setNodeId(nodeId2).setActive(isActive2).build();
 
 512         UpdateMaintenanceOutputBuilder updateResult = null;
 
 514             updateResult = dbProvider.updateMaintenance(updateInput);
 
 515         } catch (Exception e) {
 
 516             fail("maintenance update failed..." + e.getMessage());
 
 519         assertNotNull(updateResult);
 
 521         // == VERIFY UPDATE============================
 
 522         System.out.println("Verfify update...");
 
 523         readResult = dbProvider.readMaintenanceList(readinput);
 
 524         data = readResult.getData();
 
 527         assertEquals(nodeId2, data.get(0).getNodeId());
 
 528         assertEquals(isActive2, data.get(0).getActive());
 
 530         // ==DELETE================================
 
 531         System.out.println("Trying to delete...");
 
 533         DeleteMaintenanceInput deleteInput = new DeleteMaintenanceInputBuilder().setId(dbId).build();
 
 535             dbProvider.deleteMaintenance(deleteInput);
 
 536         } catch (Exception e) {
 
 537             fail("Maintenance entry couldn't be deleted" + e.getMessage());
 
 540         readResult = dbProvider.readMaintenanceList(readinput);
 
 541         data = readResult.getData();
 
 543         assertEquals(0, data.size());
 
 547     public void testFaultLog() {
 
 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);
 
 554         // ==READ===========================
 
 555         System.out.println("try to read entry");
 
 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();
 
 562         ReadFaultlogListOutputBuilder readResult = null;
 
 564             readResult = dbProvider.readFaultLogList(readinput);
 
 566         } catch (Exception e) {
 
 567             fail("Fault log not read: " + e.getMessage());
 
 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();
 
 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());
 
 579         //== UPDATE ================================
 
 580         System.out.println("try to update entry");
 
 582         dbRawProvider.doUpdateOrCreate(Entity.Faultlog.getName(), "1",
 
 583                 "{'problem': 'CableLOS', 'severity': 'Major', 'node-id': 'test4657-78'}");
 
 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();
 
 591         //== VERIFY UPDATE ================================
 
 592         readResult = dbProvider.readFaultLogList(readinput);
 
 593         data = readResult.getData();
 
 597         System.out.println(data);
 
 598         assertEquals(0, data.size());
 
 600         System.out.println("try to search entry 2");
 
 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();
 
 607         readResult = dbProvider.readFaultLogList(readinput);
 
 608         data = readResult.getData();
 
 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());
 
 617         //== DELETE ================================
 
 619         System.out.println("try to clear entry");
 
 621             dbRawProvider.doRemove(Entity.Faultlog.getName(), dbId);
 
 622         } catch (Exception e) {
 
 623             fail("problem deleting entry: " + e.getMessage());
 
 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());
 
 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");
 
 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();
 
 647         ReadCmlogListOutputBuilder readResult = null;
 
 649             readResult = dbProvider.readCMLogList(readinput);
 
 651         } catch (Exception e) {
 
 652             fail("CM log not read: " + e.getMessage());
 
 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();
 
 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());
 
 669         //== UPDATE ================================
 
 670         System.out.println("try to update entry");
 
 672         dbRawProvider.doUpdateOrCreate(Entity.Cmlog.getName(), "1",
 
 673                 "{'node-id': 'test4657-78','operation': 'CREATE', 'notification-id': '1'}");
 
 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();
 
 681         //== VERIFY UPDATE ================================
 
 682         readResult = dbProvider.readCMLogList(readinput);
 
 683         data = readResult.getData();
 
 686         System.out.println(data);
 
 687         assertEquals(0, data.size());
 
 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();
 
 695         readResult = dbProvider.readCMLogList(readinput);
 
 696         data = readResult.getData();
 
 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());
 
 703         //== DELETE ================================
 
 705         System.out.println("try to clear entry");
 
 707             dbRawProvider.doRemove(Entity.Cmlog.getName(), dbId);
 
 708         } catch (Exception e) {
 
 709             fail("problem deleting entry: " + e.getMessage());
 
 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());
 
 721     public void testFaultCurrent() {
 
 722         System.out.println("Starting faultCurrent test...");
 
 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);
 
 729         // ==READ===========================
 
 730         System.out.println("Trying to read...");
 
 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();
 
 738         ReadFaultcurrentListOutputBuilder readResult = null;
 
 740             readResult = dbProvider.readFaultCurrentList(readinput);
 
 742         } catch (Exception e) {
 
 743             fail("Fault log not read: " + e.getMessage());
 
 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();
 
 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());
 
 761         // ==UPDATE============================
 
 762         System.out.println("Trying to update...");
 
 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" + "}";
 
 767         String updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Faultcurrent.getName(), dbId, json);
 
 768         assertEquals(dbId, updatedDbId);
 
 770         // ==READ============================
 
 773             readResult = dbProvider.readFaultCurrentList(readinput);
 
 775         } catch (Exception e) {
 
 776             fail("Fault log not read: " + e.getMessage());
 
 779         data = readResult.getData();
 
 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());
 
 788         // ==DELETE============================
 
 790             dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
 
 791         } catch (Exception e) {
 
 792             fail("problem deleting: " + e.getMessage());
 
 795         // ==READ/VERIFY DELETE============================
 
 798             readResult = dbProvider.readFaultCurrentList(readinput);
 
 800         } catch (Exception e) {
 
 801             fail("Fault log not read: " + e.getMessage());
 
 804         data = readResult.getData();
 
 807         assertEquals(0, data.size());
 
 811     public void testConnectionLog() {
 
 813         // ==CLEAR================================
 
 814         System.out.println("Clear before test");
 
 816             dbRawProvider.doRemove(Entity.Connectionlog.getName(), QueryBuilders.matchAllQuery());
 
 817         } catch (Exception e) {
 
 818             fail("problem deleting: " + e.getMessage());
 
 821         // ==CREATE================================
 
 823         System.out.println("Try create entry");
 
 824         final String initialDbId = "1";
 
 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"
 
 831         dbId = dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), initialDbId, json);
 
 833         assertEquals(initialDbId, dbId);
 
 835         // ==READ================================
 
 836         System.out.println("Try read entry");
 
 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();
 
 843         ReadConnectionlogListOutputBuilder readResult = null;
 
 845             readResult = dbProvider.readConnectionlogList(readinput);
 
 847         } catch (Exception e) {
 
 848             fail("Connection log not read: " + e.getMessage());
 
 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();
 
 855         assertEquals(1, data.size());
 
 856         assertEquals("Connecting", data.get(0).getStatus().toString());
 
 857         assertEquals("sim2230", data.get(0).getNodeId());
 
 860         // ==UPDATE================================
 
 861         System.out.println("Try update entry");
 
 863         dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), dbId, "{'status' : 'Connected'}");
 
 865         // ==READ 2================================
 
 866         System.out.println("Try read updated entry");
 
 868         readinput = new ReadConnectionlogListInputBuilder()
 
 869                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
 
 870                         new FilterBuilder().setProperty("status").setFiltervalue("Connected").build()))
 
 871                 .setPagination(getPagination(20, 1)).build();
 
 874             readResult = dbProvider.readConnectionlogList(readinput);
 
 876         } catch (Exception e) {
 
 877             fail("Connection log not read: " + e.getMessage());
 
 880         data = readResult.getData();
 
 883         assertEquals(1, data.size());
 
 884         assertEquals("Connected", data.get(0).getStatus().toString());
 
 885         assertEquals("sim2230", data.get(0).getNodeId());
 
 887         //== DELETE ================================
 
 889         System.out.println("try to clear entry");
 
 891             dbRawProvider.doRemove(Entity.Connectionlog.getName(), dbId);
 
 892         } catch (Exception e) {
 
 893             fail("problem deleting entry: " + e.getMessage());
 
 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());
 
 906     public void testEventLog() {
 
 907         System.out.println("Test event log starting...");
 
 909         // ==CLEAR================================
 
 910         System.out.println("Clear before test");
 
 912             dbRawProvider.doRemove(Entity.Eventlog.getName(), QueryBuilders.matchAllQuery());
 
 913         } catch (Exception e) {
 
 914             fail("problem deleting: " + e.getMessage());
 
 916         // ==CREATE============================
 
 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" + "}";
 
 924         dbId = dbRawProvider.doUpdateOrCreate(Entity.Eventlog.getName(), "1", json);
 
 927         // ==READ===========================
 
 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;
 
 935             readResult = dbProvider.readEventlogList(readinput);
 
 937         } catch (Exception e) {
 
 938             fail("problem reading eventlog");
 
 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());
 
 945         //== DELETE ================================
 
 947         System.out.println("try to clear entry");
 
 949             dbRawProvider.doRemove(Entity.Eventlog.getName(), dbId);
 
 950         } catch (Exception e) {
 
 951             fail("problem deleting entry: " + e.getMessage());
 
 954         //== VERIFY DELETE ===========================
 
 955         System.out.println("verify entries deleted");
 
 957             readResult = dbProvider
 
 958                     .readEventlogList(new ReadEventlogListInputBuilder().setPagination(getPagination(20, 1)).build());
 
 959         } catch (IOException e) {
 
 960             fail("problem reading eventlog");
 
 962         data = readResult.getData();
 
 963         assertEquals(0, data.size());
 
 968     public void testInventory() {
 
 970         System.out.println("Test inventory starting...");
 
 972         // ==CLEAR================================
 
 973         System.out.println("Clear before test");
 
 975             dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
 
 976         } catch (Exception e) {
 
 977             fail("problem deleting: " + e.getMessage());
 
 981         // ==CREATE============================
 
 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\"}";
 
 994         dbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), "1 1", json);
 
 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;
 
1004             readResult = dbProvider.readInventoryList(readinput);
 
1006         } catch (Exception e) {
 
1007             fail("Problem reading inventory list" + e.getMessage());
 
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());
 
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" + "}";
 
1030         updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), dbId, updatejson);
 
1031         assertEquals(dbId, updatedDbId);
 
1034             readResult = dbProvider.readInventoryList(readinput);
 
1036         } catch (Exception e) {
 
1037             fail("Problem reading inventory list" + e.getMessage());
 
1040         data = readResult.getData();
 
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]));
 
1056         // ==DELETE============================
 
1058         System.out.println("delete after test");
 
1060             dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
 
1061         } catch (Exception e) {
 
1062             fail("problem deleting: " + e.getMessage());
 
1065         // ==VERIFY DELETE ============================
 
1068             readResult = dbProvider.readInventoryList(readinput);
 
1070         } catch (Exception e) {
 
1071             fail("Problem reading inventory list" + e.getMessage());
 
1074         data = readResult.getData();
 
1075         assertEquals(0, data.size());
 
1080     public void test15MinPerformanceReadLtpListWithoutNodeIdSetThrowsException() {
 
1082         System.out.println("Reading 15m ltp list without node id filter set throws an exception test start...");
 
1085             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
 
1086         } catch (Exception e) {
 
1087             fail("problem deleting: " + e.getMessage());
 
1090         System.out.println("create entries...");
 
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");
 
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");
 
1100         System.out.println("trying to read, should throw exception...");
 
1103         ReadPmdata15mLtpListInput readLtp =
 
1104                 new ReadPmdata15mLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
 
1106         ReadPmdata15mLtpListOutputBuilder readltpResult = null;
 
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());
 
1117         assertNull(readltpResult);
 
1119         //== DELETE ================================
 
1121         System.out.println("try to clear entry");
 
1123             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
 
1124         } catch (Exception e) {
 
1125             fail("problem deleting entry: " + e.getMessage());
 
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 =
 
1133                                 new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build())
 
1136         assertEquals(0, data.size());
 
1140     public void test15MinPerformanceData() {
 
1141         // == CLEAR BEFORE TESTS ============================
 
1142         System.out.println("Test 15 min performance...");
 
1145             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
 
1146         } catch (Exception e) {
 
1147             fail("problem deleting: " + e.getMessage());
 
1150         // == CREATE ============================
 
1152         System.out.println("create entries...");
 
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");
 
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");
 
1162         // == READ ============================
 
1163         System.out.println("read list entries...");
 
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();
 
1170         ReadPmdata15mListOutputBuilder readResult = null;
 
1173             readResult = dbProvider.readPmdata15mList(read);
 
1174         } catch (Exception e) {
 
1175             fail("Problem reading 15m data");
 
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();
 
1181         assertNotNull(data);
 
1182         assertEquals(2, data.size());
 
1184         System.out.println("read ltp entries with node name set...");
 
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();
 
1191         ReadPmdata15mLtpListOutputBuilder readltpResult = null;
 
1194             readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
 
1195         } catch (Exception e) {
 
1196             fail("Problem reading 15m ltp data");
 
1199         Set<String> dataLtp = readltpResult.getData();
 
1201         assertNotNull(dataLtp);
 
1202         assertEquals(2, dataLtp.size());
 
1203         assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
 
1204         assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
 
1206         System.out.println("read device entries...");
 
1208         ReadPmdata15mDeviceListInput readDevices =
 
1209                 new ReadPmdata15mDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
 
1211         ReadPmdata15mDeviceListOutputBuilder readDeviceResult = null;
 
1214             readDeviceResult = dbProvider.readPmdata15mDeviceList(readDevices);
 
1215         } catch (Exception e) {
 
1216             fail("Problem reading 15m device data");
 
1219         Set<String> dataDevice = readDeviceResult.getData();
 
1221         assertNotNull(dataDevice);
 
1222         assertEquals(2, dataDevice.size());
 
1223         assertTrue(dataDevice.contains("a2"));
 
1224         assertTrue(dataDevice.contains("a3"));
 
1226         //== DELETE ================================
 
1228         System.out.println("try to clear entry");
 
1230             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
 
1231         } catch (Exception e) {
 
1232             fail("problem deleting entry: " + e.getMessage());
 
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());
 
1245     public void test24hPerformanceData() {
 
1246         System.out.println("Test 24h performance...");
 
1249             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
 
1250         } catch (Exception e) {
 
1251             fail("problem deleting: " + e.getMessage());
 
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");
 
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");
 
1264         System.out.println("read all list entries...");
 
1266         ReadPmdata24hListInput read = new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build();
 
1268         ReadPmdata24hListOutputBuilder readResult = null;
 
1271             readResult = dbProvider.readPmdata24hList(read);
 
1272         } catch (Exception e) {
 
1273             fail("Problem reading 24h data");
 
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();
 
1279         assertNotNull(data);
 
1280         assertEquals(6, data.size());
 
1283         System.out.println("filter list entries...");
 
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();
 
1293             readResult = dbProvider.readPmdata24hList(read);
 
1294         } catch (Exception e) {
 
1295             fail("Problem reading 24h data");
 
1298         data = readResult.getData();
 
1300         assertNotNull(data);
 
1301         assertEquals(3, data.size());
 
1303         System.out.println("read ltp entries with node name set...");
 
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();
 
1310         ReadPmdata24hLtpListOutputBuilder readltpResult = null;
 
1313             readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
 
1314         } catch (Exception e) {
 
1315             fail("Problem reading 24h ltp data");
 
1318         Set<String> dataLtp = readltpResult.getData();
 
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"));
 
1327         System.out.println("read device entries...");
 
1329         ReadPmdata24hDeviceListInput readDevices =
 
1330                 new ReadPmdata24hDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
 
1332         ReadPmdata24hDeviceListOutputBuilder readDeviceResult = null;
 
1335             readDeviceResult = dbProvider.readPmdata24hDeviceList(readDevices);
 
1336         } catch (Exception e) {
 
1337             fail("Problem reading 24h device data");
 
1340         Set<String> dataDevice = readDeviceResult.getData();
 
1342         assertNotNull(dataDevice);
 
1343         assertEquals(2, dataDevice.size());
 
1344         assertTrue(dataDevice.contains("a2"));
 
1345         assertTrue(dataDevice.contains("a3"));
 
1347         // == UPDATE ==============================
 
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);
 
1353             readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
 
1354         } catch (Exception e) {
 
1355             fail("Problem reading 24h ltp data");
 
1358         // == VERIFY UPDATE ==============================
 
1360         dataLtp = readltpResult.getData();
 
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"));
 
1370         //== DELETE ===========================
 
1372         System.out.println("try to clear entries");
 
1374             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
 
1375         } catch (Exception e) {
 
1376             fail("problem deleting entry: " + e.getMessage());
 
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());
 
1388     public void test24hPerformanceDataReadLtpListWithoutNodeIdSetThrowsException() {
 
1389         System.out.println("Test 24 hour tp list without node id filter set throws an exception test start...\"...");
 
1392             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
 
1393         } catch (Exception e) {
 
1394             fail("problem deleting: " + e.getMessage());
 
1397         System.out.println("create entries...");
 
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");
 
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");
 
1408         System.out.println("trying to read, should throw exception...");
 
1411         ReadPmdata24hLtpListInput readLtp =
 
1412                 new ReadPmdata24hLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
 
1414         ReadPmdata24hLtpListOutputBuilder readltpResult = null;
 
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());
 
1425         assertNull(readltpResult);
 
1428             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
 
1429         } catch (Exception e) {
 
1430             fail("problem deleting: " + e.getMessage());
 
1435     public void testUrlEncoding() {
 
1436         System.out.println("Testing url encding");
 
1438         final String test = "Lorem Ipsum";
 
1439         final String test1 = "Lorem/Ipsum";
 
1440         final String test2 = "Lorem_Ipsum";
 
1441         final String test3 = "Lorem%Ipsum";
 
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));
 
1450     public void testDoUpdateOrCreateWithNullId() {
 
1451         System.out.println("Test DoUpdateOrCreate doesn't create new database entry if null is passed");
 
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);
 
1460     public void readTestFaultCurrentViaRawDbProvider() {
 
1461         System.out.println("Starting faultCurrent test...");
 
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);
 
1468         // ==READ===========================
 
1469         System.out.println("Trying to read...");
 
1471         String readResult = null;
 
1473             readResult = dbRawProvider.doReadJsonData(Entity.Faultcurrent.getName(), dbId);
 
1475         } catch (Exception e) {
 
1476             fail("Fault log not read: " + e.getMessage());
 
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\"}";
 
1483         System.out.println(readResult);
 
1484         assertNotNull(readResult);
 
1485         assertEquals(expectedDbResult, readResult);
 
1487         SearchResult<SearchHit> searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
 
1488         assertNotNull(searchResult);
 
1490         List<SearchHit> hits = searchResult.getHits();
 
1492         assertNotNull(hits);
 
1493         assertEquals(1, searchResult.getTotal());
 
1494         assertEquals(expectedDbResult, hits.get(0).getSourceAsString());
 
1496         //== DELETE ==============================
 
1498             dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
 
1499         } catch (Exception e) {
 
1500             fail("problem deleting: " + e.getMessage());
 
1502         //== VERIFY DELETE ========================
 
1503         searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
 
1504         hits = searchResult.getHits();
 
1505         assertNotNull(hits);
 
1506         assertEquals(0, searchResult.getTotal());
 
1511     public void testOutputCamelCase() throws ClassNotFoundException {
 
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"
 
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();
 
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"
 
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);
 
1543         assertEquals("admin", UserdataHttpServlet.decodeJWTPayloadUsername(String.format("Bearer %s",
 
1544                 "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbkBzZG4iLCJyb2xlcyI6WyJ1c2VyIiwiYWRtaW4iXSwiaXN"
 
1545                         + "zIjoiT3BlbmRheWxpZ2h0IiwibmFtZSI6ImFkbWluQHNkbiIsImV4cCI6MTYxNTc5NTg1NywiZmFtaWx5X25hbWUiOiIifQ.wB"
 
1546                         + "PdB45_bryU6_kSCu3be3dq3yth24niSXi6b2_1ufc"),
 
1550     private Pagination getPagination(long pageSize, int page) {
 
1551         return new PaginationBuilder().setPage(YangHelper2.getBigIntegerOrUint64(BigInteger.valueOf(page)))
 
1552                 .setSize(YangHelper2.getLongOrUint32(pageSize)).build();
 
1555     private String clearAndCreatefaultEntity(String initialDbId, String entityType, String implementedInterface,
 
1556             SeverityType severity) {
 
1557         return clearAndCreatefaultEntity(initialDbId, entityType, implementedInterface, severity, "s1");
 
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");
 
1565             dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
 
1566         } catch (Exception e) {
 
1567             fail("problem deleting: " + e.getMessage());
 
1571         return createFaultEntity(initialDbId, entityType, implementedInterface, severity, nodeId);
 
1574     private void createNeConnection(String nodeId, String host, int port, ConnectionLogStatus connectionStatus) {
 
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();
 
1583     private String createFaultEntity(String initialDbId, String entityType, String implementedInterface,
 
1584             SeverityType severity) {
 
1585         return createFaultEntity(initialDbId, entityType, implementedInterface, severity, "s1");
 
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");
 
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" + "}");
 
1603         } catch (Exception e) {
 
1604             fail("Problem creating fault log entry" + e.getMessage());
 
1610     private String clearAndCreateCMEntity(String initialDbId, String entityType, String implementedInterface) {
 
1611         // ==CLEAR BEFORE TEST============================
 
1612         System.out.println("try to clear entry");
 
1614             dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
 
1615         } catch (Exception e) {
 
1616             fail("problem deleting: " + e.getMessage());
 
1618         return createCMEntity(initialDbId, entityType, implementedInterface);
 
1621     private String createCMEntity(String initialDbId, String entityType, String implementedInterface) {
 
1622         // ==CREATE============================
 
1623         System.out.println("try to create entry");
 
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" + "}");
 
1637         } catch (Exception e) {
 
1638             fail("Problem creating CM log entry" + e.getMessage());
 
1645     private String createPerformanceData(String initialDbId, GranularityPeriodType timeInterval, String scannerId,
 
1646             String uuidInterface, String nodename) {
 
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" + "}";
 
1667         if (timeInterval.equals(GranularityPeriodType.Period15Min)) {
 
1668             return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance15min.getName(), initialDbId, json);
 
1670             return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance24h.getName(), initialDbId, json);