diff options
author | herbert <herbert.eiselt@highstreet-technologies.com> | 2019-12-14 00:50:38 +0100 |
---|---|---|
committer | Herbert Eiselt <herbert.eiselt@highstreet-technologies.com> | 2019-12-16 11:26:39 +0000 |
commit | 6b98928b7b1b0ebc28d2ef286e8c932fca67c305 (patch) | |
tree | d734c78f257acfb7dd3dc4a74229ee23d93d79e3 /sdnr/wt/devicemanager/provider/src/test | |
parent | 2cf702de0b65fe132ec32b6abfffe4c2c976dca0 (diff) |
add new devicemanager
v2 add disaggregated devicemanager bundled
Issue-ID: SDNC-1007
Signed-off-by: herbert <herbert.eiselt@highstreet-technologies.com>
Change-Id: Ibb65f7f21deade7b3cef62c53b439519a931e301
Signed-off-by: herbert <herbert.eiselt@highstreet-technologies.com>
Diffstat (limited to 'sdnr/wt/devicemanager/provider/src/test')
47 files changed, 4868 insertions, 0 deletions
diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestAai.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestAai.java new file mode 100644 index 000000000..a94c80c22 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestAai.java @@ -0,0 +1,240 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.fail; +import com.google.common.io.Files; +import com.sun.net.httpserver.HttpExchange; +import com.sun.net.httpserver.HttpHandler; +import com.sun.net.httpserver.HttpServer; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.aaiconnector.impl.AaiProviderClient; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.aaiconnector.impl.config.AaiConfig; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.legacy.InventoryInformation; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util.ResourceFileLoader; + +public class TestAai { + + private static final String CONFIGURATIONTESTFILE = "test.properties"; // for + private static final String ENABLEDAAI_TESTCONFIG_FILENAME = "test2.properties"; + private static final File ENABLEDAAI_TESTCONFIG_FILE = new File(ENABLEDAAI_TESTCONFIG_FILENAME); + private static final int AAI_SERVER_PORT=45454; + private static final String TESTCONFIG_CONTENT="[dcae]\n" + + "dcaeUserCredentials=admin:admin\n" + + "dcaeUrl=off\n" + + "dcaeHeartbeatPeriodSeconds=120\n" + + "dcaeTestCollector=no\n" + + "\n" + + "[aots]\n" + + "userPassword=passwd\n" + + "soapurladd=off\n" + + "soapaddtimeout=10\n" + + "soapinqtimeout=20\n" + + "userName=user\n" + + "inqtemplate=inqreq.tmpl.xml\n" + + "assignedto=userid\n" + + "addtemplate=addreq.tmpl.xml\n" + + "severitypassthrough=critical,major,minor,warning\n" + + "systemuser=user\n" + + "prt-offset=1200\n" + + "soapurlinq=off\n" + + "#smtpHost=\n" + + "#smtpPort=\n" + + "#smtpUsername=\n" + + "#smtpPassword=\n" + + "#smtpSender=\n" + + "#smtpReceivers=\n" + + "\n" + + "[es]\n" + + "esCluster=sendateodl5\n" + + "\n" + + "[aai]\n" + + "#keep comment\n" + + "aaiHeaders=[\"X-TransactionId: 9999\"]\n" + + "aaiUrl=http://localhost:"+AAI_SERVER_PORT+"\n" + + "aaiUserCredentials=AAI:AAI\n" + + "aaiDeleteOnMountpointRemove=true\n" + + "aaiTrustAllCerts=false\n" + + "aaiApiVersion=aai/v13\n" + + "aaiPropertiesFile=aaiclient.properties\n" + + "aaiApplicationId=SDNR\n" + + "aaiPcks12ClientCertFile=/opt/logs/externals/data/stores/keystore.client.p12\n" + + "aaiPcks12ClientCertPassphrase=adminadmin\n" + + "aaiClientConnectionTimeout=30000\n" + + "\n" + + "[pm]\n" + + "pmCluster=sendateodl5\n" + + "pmEnabled=true\n" + + "\n" + + ""; + private HttpServer server; + private ExecutorService httpThreadPool; + private ConfigurationFileRepresentation globalCfg; + + @Test + public void test() { + + String testConfigurationFileName = ResourceFileLoader.getFile(this, CONFIGURATIONTESTFILE).getAbsolutePath(); + ConfigurationFileRepresentation cfg=new ConfigurationFileRepresentation(testConfigurationFileName); + + AaiProviderClient provider = new AaiProviderClient(cfg, null); + + String mountPointName = "testDevice 01"; + String type="Unit"; + String model="Horizon Compact+"; + String vendor="DragonWave-X"; + String ipv4="127.0.0.1"; + String ipv6="::1"; + List<String> ifInfos = new ArrayList<>(); + ifInfos.add("LP-MWPS-RADIO"); + InventoryInformation ii=new InventoryInformation(type, model, vendor, ipv4, ipv6, ifInfos); + System.out.println("registering device"); + provider.onDeviceRegistered(mountPointName,ii); + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + System.out.println("unregistering device"); + provider.onDeviceUnregistered(mountPointName); + System.out.println("finished"); + try { + provider.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + @Test + public void test2() { + try { + Thread.sleep(3000); + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + AaiProviderClient provider = new AaiProviderClient(globalCfg, null); + + String mountPointName = "testDevice 01"; + String type="Unit"; + String model="Horizon Compact+"; + String vendor="DragonWave-X"; + String ipv4="127.0.0.1"; + String ipv6="::1"; + List<String> ifInfos = new ArrayList<>(); + ifInfos.add("LP-MWPS-RADIO"); + InventoryInformation ii=new InventoryInformation(type, model, vendor, ipv4, ipv6, ifInfos); + System.out.println("registering device"); + provider.onDeviceRegistered(mountPointName); + provider.onDeviceRegistered(mountPointName,ii); + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + System.out.println("unregistering device"); + provider.onDeviceUnregistered(mountPointName); + System.out.println("finished"); + try { + provider.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + @Before + public void initAaiTestWebserver() throws IOException { + try { + Files.asCharSink(ENABLEDAAI_TESTCONFIG_FILE, StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT); + } catch (IOException e1) { + fail(e1.getMessage()); + } + //globalCfg=HtDevicemanagerConfiguration.getTestConfiguration(ENABLEDAAI_TESTCONFIG_FILENAME,true); + globalCfg = new ConfigurationFileRepresentation(ENABLEDAAI_TESTCONFIG_FILENAME); + this.server = HttpServer.create(new InetSocketAddress(AAI_SERVER_PORT), 0); + this.httpThreadPool = Executors.newFixedThreadPool(5); + this.server.setExecutor(this.httpThreadPool); + AaiConfig config = new AaiConfig(globalCfg); + this.server.createContext(config.getBaseUri(), new MyHandler()); + //server.createContext("/", new MyRootHandler()); + this.server.setExecutor(null); // creates a default executor + this.server.start(); + System.out.println("http server started"); + } + + @After + public void stopTestWebserver() { + if (this.server != null) { + this.server.stop(0); + this.httpThreadPool.shutdownNow(); + System.out.println("http server stopped" ); + } + if (ENABLEDAAI_TESTCONFIG_FILE.exists()) { + ENABLEDAAI_TESTCONFIG_FILE.delete(); + } + + } + static class MyHandler implements HttpHandler { + @Override + public void handle(HttpExchange t) throws IOException { + String method = t.getRequestMethod(); + System.out.println("req method: " + method); + OutputStream os = null; + try { + String res=""; + if (method.equals("GET")) { + t.sendResponseHeaders(404,res.length() ); + os = t.getResponseBody(); + os.write(res.getBytes()); + } else if (method.equals("DELETE")) { + t.sendResponseHeaders(200, res.length()); + os = t.getResponseBody(); + os.write(res.getBytes()); + } else if (method.equals("PUT")) { + t.sendResponseHeaders(200, res.length()); + os = t.getResponseBody(); + os.write(res.getBytes()); + } else { + t.sendResponseHeaders(404, 0); + } + System.out.println("req handled successful"); + + } catch (Exception e) { + System.out.println(e.getMessage()); + } + finally { + if (os != null) + { + os.close(); + } + } + } + } +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestAkkaConfig.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestAkkaConfig.java new file mode 100644 index 000000000..7bc30550f --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestAkkaConfig.java @@ -0,0 +1,136 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.fail; +import java.io.File; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.conf.odlAkka.AkkaConfig; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.conf.odlAkka.ClusterNodeInfo; + +public class TestAkkaConfig { + + private static String getAkkaConfigSingleNodeText() { + return "\n" + "odl-cluster-data {\n" + " akka {\n" + " remote {\n" + " artery {\n" + + " enabled = off\n" + " canonical.hostname = \"127.0.0.1\"\n" + + " canonical.port = 2550\n" + " }\n" + " netty.tcp {\n" + + " hostname = \"127.0.0.1\"\n" + " port = 2550\n" + " }\n" + + " # when under load we might trip a false positive on the failure detector\n" + + " # transport-failure-detector {\n" + " # heartbeat-interval = 4 s\n" + + " # acceptable-heartbeat-pause = 16s\n" + " # }\n" + " }\n" + "\n" + " cluster {\n" + + " # Remove \".tcp\" when using artery.\n" + + " seed-nodes = [\"akka.tcp://opendaylight-cluster-data@127.0.0.1:2550\"]\n" + "\n" + + " roles = [\n" + " \"member-1\"\n" + " ]\n" + "\n" + " }\n" + "\n" + + " persistence {\n" + + " # By default the snapshots/journal directories live in KARAF_HOME. You can choose to put it somewhere else by\n" + + " # modifying the following two properties. The directory location specified may be a relative or absolute path. \n" + + " # The relative path is always relative to KARAF_HOME.\n" + "\n" + + " # snapshot-store.local.dir = \"target/snapshots\"\n" + + " # journal.leveldb.dir = \"target/journal\"\n" + "\n" + " journal {\n" + + " leveldb {\n" + " # Set native = off to use a Java-only implementation of leveldb.\n" + + " # Note that the Java-only version is not currently considered by Akka to be production quality.\n" + + "\n" + " # native = off\n" + " }\n" + " }\n" + " }\n" + " }\n" + "}"; + } + + private static String getAkkaConfigClusterNodeText() { + return "\n" + "odl-cluster-data {\n" + "\n" + " akka {\n" + " loglevel = \"\"\n" + " remote {\n" + + " netty.tcp {\n" + " hostname = \"zltcmtn23arbc01.2f0377.mtn23a.tci.att.com\"\n" + + " port = 2550\n" + " }\n" + " }\n" + " actor {\n" + " debug{\n" + + " autoreceive = on\n" + " lifecycle = on\n" + " unhandled = on\n" + + " fsm = on\n" + " event-stream = on\n" + " }\n" + " }\n" + " cluster {\n" + + " seed-nodes = [\"akka.tcp://opendaylight-cluster-data@zltcmtn23arbc01.2f0377.mtn23a.tci.att.com:2550\", \"akka.tcp://opendaylight-cluster-data@zltcmtn23arbc02.2f0377.mtn23a.tci.att.com:2550\", \"akka.tcp://opendaylight-cluster-data@zltcmtn23arbc03.2f0377.mtn23a.tci.att.com:2550\", \"akka.tcp://opendaylight-cluster-data@zltcmtn23brbc01.f84e7a.mtn23b.tci.att.com:2550\", \"akka.tcp://opendaylight-cluster-data@zltcmtn23brbc02.f84e7a.mtn23b.tci.att.com:2550\", \"akka.tcp://opendaylight-cluster-data@zltcmtn23brbc03.f84e7a.mtn23b.tci.att.com:2550\"]\n" + + " seed-node-timeout = 15s\n" + " roles = [\"member-1\"]\n" + "\n" + " }\n" + + " persistence {\n" + " journal-plugin-fallback {\n" + " circuit-breaker {\n" + + " max-failures = 10\n" + " call-timeout = 60s\n" + + " reset-timeout = 30s\n" + " }\n" + " }\n" + " }\n" + " }\n" + "}\n" + "\n" + + "odl-cluster-rpc {\n" + "\n" + " akka {\n" + " loglevel = \"\"\n" + " remote {\n" + + " netty.tcp {\n" + " hostname = \"zltcmtn23arbc01.2f0377.mtn23a.tci.att.com\"\n" + + " port = 2551\n" + " }\n" + " }\n" + " actor {\n" + " debug{\n" + + " autoreceive = on\n" + " lifecycle = on\n" + " unhandled = on\n" + + " fsm = on\n" + " event-stream = on\n" + " }\n" + " }\n" + " cluster {\n" + + " seed-nodes = [\"akka.tcp://odl-cluster-rpc@zltcmtn23arbc01.2f0377.mtn23a.tci.att.com:2551\", \"akka.tcp://odl-cluster-rpc@zltcmtn23arbc02.2f0377.mtn23a.tci.att.com:2551\", \"akka.tcp://odl-cluster-rpc@zltcmtn23arbc03.2f0377.mtn23a.tci.att.com:2551\", \"akka.tcp://odl-cluster-rpc@zltcmtn23brbc01.f84e7a.mtn23b.tci.att.com:2551\", \"akka.tcp://odl-cluster-rpc@zltcmtn23brbc02.f84e7a.mtn23b.tci.att.com:2551\", \"akka.tcp://odl-cluster-rpc@zltcmtn23brbc03.f84e7a.mtn23b.tci.att.com:2551\"]\n" + + " seed-node-timeout = 15s\n" + " }\n" + " persistence {\n" + + " journal-plugin-fallback {\n" + " circuit-breaker {\n" + " max-failures = 10\n" + + " call-timeout = 60s\n" + " reset-timeout = 30s\n" + " }\n" + " }\n" + + " }\n" + " }\n" + "}\n" + "\n" + ""; + } + + @Test + public void test1() { + AkkaConfig cfg; + try { + System.out.println("testing clusternode config1"); + System.out.println("==========================="); + cfg = AkkaConfig.parse(getAkkaConfigClusterNodeText()); + System.out.println("succeeded: "); + System.out.println(cfg.toString()); + System.out.println(String.format("found %d cluster nodes", cfg.getClusterConfig().getSeedNodes().size())); + for (ClusterNodeInfo n : cfg.getClusterConfig().getSeedNodes()) { + System.out.println(n.toString()); + } + } catch (Exception e) { + String failMessage = "failed: " + e.getMessage(); + System.out.println(failMessage); + fail(failMessage); + } + } + + @Test + public void test2() { + AkkaConfig cfg; + try { + System.out.println("testing singlenode config1"); + System.out.println("==========================="); + cfg = AkkaConfig.parse(getAkkaConfigSingleNodeText()); + System.out.println("succeeded: "); + System.out.println(cfg.toString()); + } catch (Exception e) { + String failMessage = "failed: " + e.getMessage(); + System.out.println(failMessage); + fail(failMessage); + } + } + + @Test + public void test3() { + AkkaConfig cfg; + + ClassLoader classLoader = getClass().getClassLoader(); + File file = new File(classLoader.getResource("captured-akka.conf").getFile()); + System.out.println(file.getAbsolutePath()); + + try { + System.out.println("testing clusternode config1"); + System.out.println("==========================="); + cfg = AkkaConfig.load(file.getAbsolutePath()); + System.out.println("succeeded: "+cfg.hashCode()); + System.out.println(cfg.toString()); + System.out.println(String.format("found %d cluster nodes", cfg.getClusterConfig().getSeedNodes().size())); + for (ClusterNodeInfo n : cfg.getClusterConfig().getSeedNodes()) { + System.out.println(n.toString()); + } + } catch (Exception e) { + String failMessage = "failed: " + e.getMessage(); + System.out.println(failMessage); + fail(failMessage); + } + } +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestConfiguration.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestConfiguration.java new file mode 100644 index 000000000..596196faa --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestConfiguration.java @@ -0,0 +1,55 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= ONAP : ccsdk + * feature sdnr wt ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================ Licensed under + * the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import java.io.File; + +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation; +import org.onap.ccsdk.features.sdnr.wt.common.configuration.exception.ConfigurationException; +import org.onap.ccsdk.features.sdnr.wt.database.config.EsConfig; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util.ResourceFileLoader; + +public class TestConfiguration { + + private static final String CONFIGURATIONTESTFILE = "test.properties"; // for + + @Test + public void test1() throws ConfigurationException { + + System.out.println("Configuration file " + CONFIGURATIONTESTFILE); + + File testConfigurationFile = ResourceFileLoader.getFile(this, CONFIGURATIONTESTFILE); + System.out.println("Located at: "+testConfigurationFile.getAbsolutePath()); + + ConfigurationFileRepresentation configuration = new ConfigurationFileRepresentation(testConfigurationFile); + + System.out.println("Configuration: " + configuration.getSection(EsConfig.SECTION_MARKER_ES)); + EsConfig esConfig1 = new EsConfig(configuration); + + System.out.println("ES config getArchiveLifetimeSeconds: "+esConfig1.getArchiveLifetimeSeconds()); + + + // fail("Not yet implemented"); + } + + @Test + public void test2() { + + } + + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestDatabaseClient.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestDatabaseClient.java new file mode 100644 index 000000000..faea46180 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestDatabaseClient.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + ******************************************************************************/ + +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.IOException; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.common.database.ExtRestClient; +import org.onap.ccsdk.features.sdnr.wt.common.database.InvalidProtocolException; +import org.onap.ccsdk.features.sdnr.wt.common.database.config.HostInfo.Protocol; +import org.onap.ccsdk.features.sdnr.wt.common.database.requests.CreateIndexRequest; +import org.onap.ccsdk.features.sdnr.wt.common.database.requests.GetIndexRequest; +import org.onap.ccsdk.features.sdnr.wt.common.database.requests.IndexRequest; +import org.onap.ccsdk.features.sdnr.wt.common.database.responses.CreateIndexResponse; +import org.onap.ccsdk.features.sdnr.wt.common.database.responses.IndexResponse; + +public class TestDatabaseClient { + + + private static ExtRestClient client; + + @BeforeClass + public static void init() throws InvalidProtocolException { + + client = ExtRestClient.createInstance("localhost",9200,Protocol.HTTP); + + } + @AfterClass + public static void deinit() { + try { + client.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + @Ignore + @Test + public void testIndexExists() { + + GetIndexRequest request =new GetIndexRequest("mwtn"); + try { + boolean response = client.indicesExists(request); + assertTrue(response); + } catch (IOException e) { + fail(e.getMessage()); + } + request =new GetIndexRequest("mwrn"); + try { + boolean response = client.indicesExists(request); + assertFalse(response); + } catch (IOException e) { + fail(e.getMessage()); + } + + } + @Ignore + @Test + public void testIndexCreate() { + CreateIndexRequest request = new CreateIndexRequest("mwtn"); + try { + CreateIndexResponse response = client.createIndex(request); + assertTrue(response.isAcknowledged()); + } catch (IOException e) { + fail(e.getMessage()); + } + } + @Ignore + @Test + public void testAddPmEntry() { + String json="{\"node-name\":\"sim12600\",\"uuid-interface\":\"LP-MWPS-TTP-01\",\"layer-protocol-name\":\"MWPS\",\"radio-signal-id\":\"Test11\",\"time-stamp\":\"2017-07-04T00:00:00.0Z\",\"granularity-period\":\"PERIOD_24HOURS\",\"scanner-id\":\"PM_RADIO_24H_1\",\"performance-data\":{\"rx-level-avg\":-41,\"time2-states\":-1,\"time4-states-s\":9,\"time4-states\":0,\"time8-states\":0,\"time16-states-s\":-1,\"time16-states\":0,\"time32-states\":1,\"time64-states\":1,\"time128-states\":2,\"time256-states\":38319,\"time512-states\":-1,\"time512-states-l\":-1,\"time1024-states\":-1,\"time1024-states-l\":-1,\"time2048-states\":-1,\"time2048-states-l\":-1,\"time4096-states\":-1,\"time4096-states-l\":-1,\"time8192-states\":-1,\"time8192-states-l\":-1,\"snir-min\":-99,\"unavailability\":504,\"tx-level-max\":25,\"tx-level-avg\":25,\"rx-level-min\":-41,\"rx-level-max\":-41,\"ses\":2,\"tx-level-min\":20,\"snir-max\":-99,\"snir-avg\":-99,\"xpd-min\":-99,\"xpd-max\":-99,\"xpd-avg\":-99,\"rf-temp-min\":-99,\"rf-temp-max\":-99,\"rf-temp-avg\":-99,\"defect-blocks-sum\":-1,\"time-period\":86400,\"cses\":0,\"es\":5},\"suspect-interval-flag\":true}"; + IndexRequest request=new IndexRequest("historicalperformance24h", "historicalperformance24h","sim12600/LP-MWPS-TTP-01/2017-07-04T00:00:00.0+00:00"); + request.source(json); + try { + IndexResponse response = client.index(request); + + assertTrue(response.isCreated() || response.isUpdated()); + } catch (IOException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestDcae.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestDcae.java new file mode 100644 index 000000000..2b8f4b890 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestDcae.java @@ -0,0 +1,208 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.dcaeconnector.impl.DcaeProviderClient; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.util.InternalDateAndTime; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.util.InternalSeverity; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.xml.ProblemNotificationXml; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.legacy.InventoryInformation; +import com.google.common.io.Files; +import com.sun.net.httpserver.HttpExchange; +import com.sun.net.httpserver.HttpHandler; +import com.sun.net.httpserver.HttpServer; + +@SuppressWarnings("restriction") +public class TestDcae { + + private static final String ENABLEDDCAE_TESTCONFIG_FILENAME = "test2.properties"; + private static final File ENABLEDDCAE_TESTCONFIG_FILE = new File(ENABLEDDCAE_TESTCONFIG_FILENAME); + private static final int DCAE_SERVER_PORT=45451; + private static final String URI = "/abc"; + private static final String TESTCONFIG_CONTENT="[dcae]\n" + + "dcaeUserCredentials=admin:admin\n" + + "dcaeUrl=http://localhost:"+DCAE_SERVER_PORT+URI+"\n" + + "dcaeHeartbeatPeriodSeconds=120\n" + + "dcaeTestCollector=no\n" + + "\n" + + "[aots]\n" + + "userPassword=passwd\n" + + "soapurladd=off\n" + + "soapaddtimeout=10\n" + + "soapinqtimeout=20\n" + + "userName=user\n" + + "inqtemplate=inqreq.tmpl.xml\n" + + "assignedto=userid\n" + + "addtemplate=addreq.tmpl.xml\n" + + "severitypassthrough=critical,major,minor,warning\n" + + "systemuser=user\n" + + "prt-offset=1200\n" + + "soapurlinq=off\n" + + "#smtpHost=\n" + + "#smtpPort=\n" + + "#smtpUsername=\n" + + "#smtpPassword=\n" + + "#smtpSender=\n" + + "#smtpReceivers=\n" + + "\n" + + "[es]\n" + + "esCluster=sendateodl5\n" + + "\n" + + "[aai]\n" + + "#keep comment\n" + + "aaiHeaders=[\"X-TransactionId: 9999\"]\n" + + "aaiUrl=off\n" + + "aaiUserCredentials=AAI:AAI\n" + + "aaiDeleteOnMountpointRemove=true\n" + + "aaiTrustAllCerts=false\n" + + "aaiApiVersion=aai/v13\n" + + "aaiPropertiesFile=aaiclient.properties\n" + + "aaiApplicationId=SDNR\n" + + "aaiPcks12ClientCertFile=/opt/logs/externals/data/stores/keystore.client.p12\n" + + "aaiPcks12ClientCertPassphrase=adminadmin\n" + + "aaiClientConnectionTimeout=30000\n" + + "\n" + + "[pm]\n" + + "pmCluster=sendateodl5\n" + + "pmEnabled=true\n" + + "\n" + + ""; + private HttpServer server; + private ExecutorService httpThreadPool; + private ConfigurationFileRepresentation cfg; + + @Test + public void test2() { + try { + Thread.sleep(3000); + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + DcaeProviderClient provider = new DcaeProviderClient(cfg,"mountpoint",null); + + String mountPointName = "testDevice 01"; + String type="Unit"; + String model="Horizon Compact+"; + String vendor="DragonWave-X"; + String ipv4="127.0.0.1"; + String ipv6="::1"; + List<String> ifInfos = new ArrayList<>(); + ifInfos.add("LP-MWPS-RADIO"); + new InventoryInformation(type, model, vendor, ipv4, ipv6, ifInfos); + System.out.println("registering device"); + boolean neDeviceAlarm = false; + ProblemNotificationXml notification = new ProblemNotificationXml(mountPointName, "network-element", "problemName", InternalSeverity.Critical,123, InternalDateAndTime.getTestpattern()); + provider.sendProblemNotification(mountPointName, notification, neDeviceAlarm); + + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + try { + provider.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Before + public void initDcaeTestWebserver() throws IOException { + try { + Files.asCharSink(ENABLEDDCAE_TESTCONFIG_FILE, StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT); + } catch (IOException e1) { + fail(e1.getMessage()); + } + cfg = new ConfigurationFileRepresentation(ENABLEDDCAE_TESTCONFIG_FILENAME); + // cfg.reload(ENABLEDDCAE_TESTCONFIG_FILENAME); + /* + * cfg = new HtDevicemanagerConfiguration(ENABLEDDCAE_TESTCONFIG_FILENAME); + * DcaeConfig.reload(); + */ + try { + this.server = HttpServer.create(new InetSocketAddress(DCAE_SERVER_PORT), 0); + } catch (Exception e) { + fail(e.getMessage()); + } + this.httpThreadPool = Executors.newFixedThreadPool(5); + this.server.setExecutor(this.httpThreadPool); + this.server.createContext(URI, new MyHandler()); + // server.createContext("/", new MyRootHandler()); + this.server.setExecutor(null); // creates a default executor + this.server.start(); + System.out.println("http server started"); + } + + @After + public void stopTestWebserver() { + if (this.server != null) { + this.server.stop(0); + this.httpThreadPool.shutdownNow(); + System.out.println("http server stopped"); + } + if (ENABLEDDCAE_TESTCONFIG_FILE.exists()) { + ENABLEDDCAE_TESTCONFIG_FILE.delete(); + } + } + + static class MyHandler implements HttpHandler { + @Override + public void handle(HttpExchange t) throws IOException { + String method = t.getRequestMethod(); + System.out.println("req method: " + method); + OutputStream os = null; + try { + String res = ""; + if (method.equals("POST")) { + t.sendResponseHeaders(200, res.length()); + os = t.getResponseBody(); + os.write(res.getBytes()); + } else { + t.sendResponseHeaders(404, 0); + } + System.out.println("req handled successful"); + + } catch (Exception e) { + System.out.println(e.getMessage()); + } finally { + if (os != null) { + os.close(); + } + } + } + } +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestDevMgrPropertiesFile.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestDevMgrPropertiesFile.java new file mode 100644 index 000000000..3fe4f1abf --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestDevMgrPropertiesFile.java @@ -0,0 +1,284 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation; +import org.onap.ccsdk.features.sdnr.wt.database.config.EsConfig; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.aaiconnector.impl.config.AaiConfig; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.archiveservice.ArchiveCleanService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.dcaeconnector.impl.config.DcaeConfig; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.performancemanager.impl.config.PmConfig; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.toggleAlarmFilter.conf.ToggleAlarmConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.io.Files; + +public class TestDevMgrPropertiesFile { + + private static final Logger LOG = LoggerFactory.getLogger(ArchiveCleanService.class); + + private static final File FILENAME = new File("test.properties"); + private static final File AAIPROP_FILE=new File("aaiclient.properties"); + private int hasChanged; + + @Before + public void init() { + //if (! LOG.isDebugEnabled()) { + delete(FILENAME); + delete(AAIPROP_FILE); + //} + } + @After + public void deinit() { + this.init(); + } + + @Test + public void test1() { + + writeFile(FILENAME, this.getContent1()); + writeFile(AAIPROP_FILE, this.getAaiPropertiesConfig()); + + System.out.println("Read and verify"); + ConfigurationFileRepresentation cfg = new ConfigurationFileRepresentation(FILENAME.getPath()); + ConfigurationFileRepresentation cfg2 = cfg; + + AaiConfig aaiConfig = new AaiConfig(cfg2); + assertNotNull(aaiConfig); + DcaeConfig dcaeConfig = new DcaeConfig(cfg2); + assertNotNull(dcaeConfig); + PmConfig pmConfig = new PmConfig(cfg2); + assertNotNull(pmConfig); + EsConfig esConfig = new EsConfig(cfg2); + assertNotNull(esConfig); + ToggleAlarmConfig toggleAlarmConfig = new ToggleAlarmConfig(cfg2); + assertNotNull(toggleAlarmConfig); + + System.out.println("Verify\n"+aaiConfig+"\n"); + @SuppressWarnings("unused") + boolean res; + /* + res = cfg.getAai().equals(AaiConfig.getDefaultConfiguration()); + res = cfg.getDcae().equals(DcaeConfig.getDefaultConfiguration()); + res = cfg.getPm().equals(PmConfig.getDefaultConfiguration()); + res = cfg.getEs().equals(EsConfig.getDefaultConfiguration()); + res = cfg.getToggleAlarm().equals(ToggleAlarmConfig.getDefaultConfiguration()); + + res = cfg.getAai().hashCode() == AaiConfig.getDefaultConfiguration().hashCode(); + res = cfg.getDcae().hashCode() == DcaeConfig.getDefaultConfiguration().hashCode(); + res = cfg.getPm().hashCode() == PmConfig.getDefaultConfiguration().hashCode(); + res = cfg.getEs().hashCode() == EsConfig.getDefaultConfiguration().hashCode(); + res = cfg.getToggleAlarm().hashCode() == ToggleAlarmConfig.getDefaultConfiguration().hashCode(); + */ + } + + //-- Observer not working with all testcases, because config does not support different file types. + @Test + public void test2() { + + hasChanged=0; + writeFile(FILENAME, this.getContent1()); + writeFile(AAIPROP_FILE, this.getAaiPropertiesConfig()); + + System.out.println("Read and verify"); + ConfigurationFileRepresentation cfg2 = new ConfigurationFileRepresentation(FILENAME.getPath()); + + AaiConfig aaiConfig = new AaiConfig(cfg2); + assertNotNull(aaiConfig); + DcaeConfig dcaeConfig = new DcaeConfig(cfg2); + assertNotNull(dcaeConfig); + PmConfig pmConfig = new PmConfig(cfg2); + assertNotNull(pmConfig); + EsConfig esConfig = new EsConfig(cfg2); + assertNotNull(esConfig); + ToggleAlarmConfig toggleAlarmConfig = new ToggleAlarmConfig(cfg2); + assertNotNull(toggleAlarmConfig); + + cfg2.registerConfigChangedListener(() -> { + hasChanged++; + System.out.println("file changed listener triggered: "+hasChanged); + }); + + sleep(1000); + System.out.println("Write new content. Changes "+hasChanged); + writeFile(FILENAME, this.getContent2()); + sleep(1000); + + int i=10; + while(hasChanged == 0 && i-- > 0) { + System.out.println("Wait for Change indication."); + sleep(1000); + } + System.out.println("Changes "+hasChanged); + + assertTrue("fileChanged counter"+hasChanged, hasChanged > 0); + System.out.println("Test done"); + + } + + + private static void sleep(int milliseconds) { + try { + Thread.sleep(milliseconds); + } catch (InterruptedException e) { + } + } + + public static void writeFile(File f, String content) { + try { + Files.asCharSink(f, StandardCharsets.UTF_8).write(content); + } catch (IOException e) { + fail(e.getMessage()); + }; + sleep(500); + } + + private void delete(File f) { + if(f.exists()) { + f.delete(); + } + } + + + private String getContent2() { + return "[dcae]\n" + + "dcaeUserCredentials=admin:admin\n" + + "dcaeUrl=http://localhost:45451/abc\n" + + "dcaeHeartbeatPeriodSeconds=120\n" + + "dcaeTestCollector=no\n" + + "\n" + + "[aots]\n" + + "userPassword=passwd\n" + + "soapurladd=off\n" + + "soapaddtimeout=10\n" + + "soapinqtimeout=20\n" + + "userName=user\n" + + "inqtemplate=inqreq.tmpl.xml\n" + + "assignedto=userid\n" + + "addtemplate=addreq.tmpl.xml\n" + + "severitypassthrough=critical,major,minor,warning\n" + + "systemuser=user\n" + + "prt-offset=1200\n" + + "soapurlinq=off\n" + + "#smtpHost=\n" + + "#smtpPort=\n" + + "#smtpUsername=\n" + + "#smtpPassword=\n" + + "#smtpSender=\n" + + "#smtpReceivers=\n" + + "\n" + + "[es]\n" + + "esCluster=sendateodl5\n" + + "\n" + + "[aai]\n" + + "#keep comment\n" + + "aaiHeaders=[\"X-TransactionId: 9999\"]\n" + + "aaiUrl=off\n" + + "aaiUserCredentials=AAI:AAI\n" + + "aaiDeleteOnMountpointRemove=true\n" + + "aaiTrustAllCerts=false\n" + + "aaiApiVersion=aai/v13\n" + + "aaiPropertiesFile=aaiclient.properties\n" + + "aaiApplicationId=SDNR\n" + + "aaiPcks12ClientCertFile=/opt/logs/externals/data/stores/keystore.client.p12\n" + + "aaiPcks12ClientCertPassphrase=adminadmin\n" + + "aaiClientConnectionTimeout=30000\n" + + "\n" + + "[pm]\n" + + "pmCluster=sendateodl5\n" + + "pmEnabled=true\n" + + "[toggleAlarmFilter]\n" + + "taEnabled=true\n" + + "taDelay=5555\n" + + ""; + } + + private String getContent1() { + return "[dcae]\n" + + "dcaeUserCredentials=admin:admin\n" + + "dcaeUrl=http://localhost:45/abc\n" + + "dcaeHeartbeatPeriodSeconds=120\n" + + "dcaeTestCollector=no\n" + + "\n" + + "[aots]\n" + + "userPassword=passwd\n" + + "soapurladd=off\n" + + "soapaddtimeout=10\n" + + "soapinqtimeout=20\n" + + "userName=user\n" + + "inqtemplate=inqreq.tmpl.xml\n" + + "assignedto=userid\n" + + "addtemplate=addreq.tmpl.xml\n" + + "severitypassthrough=critical,major,minor,warning\n" + + "systemuser=user\n" + + "prt-offset=1200\n" + + "soapurlinq=off\n" + + "#smtpHost=\n" + + "#smtpPort=\n" + + "#smtpUsername=\n" + + "#smtpPassword=\n" + + "#smtpSender=\n" + + "#smtpReceivers=\n" + + "\n" + + "[es]\n" + + "esCluster=sendateodl5\n" + + "\n" + + "[aai]\n" + + "#keep comment\n" + + "aaiHeaders=[\"X-TransactionId: 9999\"]\n" + + "aaiUrl=off\n" + + "aaiUserCredentials=AAI:AAI\n" + + "aaiDeleteOnMountpointRemove=true\n" + + "aaiTrustAllCerts=false\n" + + "aaiApiVersion=aai/v13\n" + + "aaiPropertiesFile=aaiclient.properties\n" + + "\n" + + "[pm]\n" + + "pmCluster=sendateodl5\n" + + "pmEnabled=true\n" + + "[toggleAlarmFilter]\n" + + "taEnabled=false\n" + + "taDelay=5555\n" + + ""; + } + private String getAaiPropertiesConfig() { + return "org.onap.ccsdk.sli.adaptors.aai.ssl.key=keykey\"\"\n" + + "org.onap.ccsdk.sli.adaptors.aai.ssl.key.psswd=psswdpsswd\"\"\n" + + "org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=\"false\"\n" + + "org.onap.ccsdk.sli.adaptors.aai.application=appxyz\"\"\n" + + "org.onap.ccsdk.sli.adaptors.aai.uri=uriu\"\"\n" + + "connection.timeout=60000\n" + + "read.timeout=60000"; + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestDeviceManagerWithDatabase.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestDeviceManagerWithDatabase.java new file mode 100644 index 000000000..d9561e484 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestDeviceManagerWithDatabase.java @@ -0,0 +1,407 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= ONAP : ccsdk + * feature sdnr wt ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================ Licensed under + * the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.common.ResourcesFromDeviceManager; +import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation; +import org.onap.ccsdk.features.sdnr.wt.common.database.config.HostInfo; +import org.onap.ccsdk.features.sdnr.wt.database.config.EsConfig; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.IEntityDataProvider; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.archiveservice.ArchiveCleanService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.DeviceManagerImpl; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.NetconfNodeService.Action; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock.ClusterSingletonServiceProviderMock; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock.DataBrokerNetconfMock; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock.DataProviderMock; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock.MountPointMock; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock.MountPointServiceMock; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock.NotificationPublishServiceMock; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock.RpcProviderRegistryMock; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util.ReadOnlyTransactionMountpoint1211Mock; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util.ReadOnlyTransactionMountpoint1211pMock; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util.ReadOnlyTransactionMountpoint12Mock; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities; +import org.opendaylight.mdsal.binding.api.MountPointService; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; +import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class TestDeviceManagerWithDatabase { + + private static Path KARAF_ETC = Paths.get("etc"); + private static DeviceManagerImpl deviceManager; + private static MountPointMock mountPoint; + private static DataBrokerNetconfMock dataBrokerNetconf; + private static IEntityDataProvider dataProvider = new IEntityDataProvider() { + + @Override + public void setReadyStatus(boolean status) { + + } + + @Override + public DataProvider getDataProvider() { + return new DataProviderMock(); + } + }; + private static final Logger LOG = LoggerFactory.getLogger(TestDeviceManagerWithDatabase.class); + + @BeforeClass + public static void before() throws InterruptedException, IOException { + + System.out.println("Logger: " + LOG.getClass().getName() + " " + LOG.getName()); + // Call System property to get the classpath value + Path etc = KARAF_ETC; + delete(etc); + + System.out.println("Create empty:" + etc.toString()); + Files.createDirectories(etc); + //write db config for testing + ConfigurationFileRepresentation configfile = new ConfigurationFileRepresentation(etc.resolve("devicemanager.properties").toFile()); + EsConfig dbConfig = new EsConfig(configfile); + dbConfig.setHosts(new HostInfo[] {new HostInfo("localhost",Integer.valueOf(System.getProperty("databaseport")!=null?System.getProperty("databaseport"):"49200")) }); + + configfile.save(); + // Create mocks + ReadOnlyTransactionMountpoint12Mock readOnlyTransaction = new ReadOnlyTransactionMountpoint12Mock(); + dataBrokerNetconf = new DataBrokerNetconfMock(); + dataBrokerNetconf.setReadOnlyTransaction(readOnlyTransaction); + mountPoint = new MountPointMock(); + mountPoint.setReadOnlyTransaction(readOnlyTransaction); + ClusterSingletonServiceProvider clusterSingletonService = new ClusterSingletonServiceProviderMock(); + MountPointService mountPointService = new MountPointServiceMock(mountPoint); + NotificationPublishService notificationPublishService = new NotificationPublishServiceMock(); + RpcProviderService rpcProviderRegistry = new RpcProviderRegistryMock(); + + // start using blueprint interface + String msg = ""; + try { + deviceManager = new DeviceManagerImpl(); + + deviceManager.setDataBroker(dataBrokerNetconf); + deviceManager.setMountPointService(mountPointService); + deviceManager.setNotificationPublishService(notificationPublishService); + deviceManager.setRpcProviderRegistry(rpcProviderRegistry); + deviceManager.setClusterSingletonService(clusterSingletonService); + deviceManager.setEntityDataProvider(dataProvider); + deviceManager.init(); + } catch (Exception e) { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + e.printStackTrace(pw); + msg = sw.toString(); // stack trace as a string + e.printStackTrace(); + } + readOnlyTransaction.close(); + System.out.println("Initialization status: " + deviceManager.isDevicemanagerInitializationOk()); + assertTrue("Devicemanager not initialized: " + msg, deviceManager.isDevicemanagerInitializationOk()); + System.out.println("Initialization done"); + waitfordatabase(); + } + + @AfterClass + public static void after() throws InterruptedException, IOException { + + System.out.println("Start shutdown"); + // close using blueprint interface + try { + deviceManager.close(); + } catch (Exception e) { + System.out.println(e); + } + delete(KARAF_ETC); + + } + + @Test + public void test2() { + System.out.println("Test2: slave mountpoint"); + + ReadOnlyTransactionMountpoint12Mock readOnlyTransaction = new ReadOnlyTransactionMountpoint12Mock(); + dataBrokerNetconf.setReadOnlyTransaction(readOnlyTransaction); + mountPoint.setReadOnlyTransaction(readOnlyTransaction); + NetconfNode nNode = readOnlyTransaction.getMock().getNetconfNode(); + + mountPoint.setDatabrokerAbsent(true); + NodeId nodeId = new NodeId("mountpointTest2"); + try { + deviceManager.startListenerOnNodeForConnectedState(Action.CREATE, nodeId, nNode); + } catch (Exception e) { + e.printStackTrace(); + fail("Exception received."); + } + + readOnlyTransaction.close(); + System.out.println("Test2: Done"); + + } + + @Test + public void test3() { + System.out.println("Test3: master mountpoint ONF Model 12"); + + ReadOnlyTransactionMountpoint12Mock readOnlyTransaction = new ReadOnlyTransactionMountpoint12Mock(); + dataBrokerNetconf.setReadOnlyTransaction(readOnlyTransaction); + mountPoint.setReadOnlyTransaction(readOnlyTransaction); + NetconfNode nNode = readOnlyTransaction.getMock().getNetconfNode(); + + mountPoint.setDatabrokerAbsent(false); + NodeId nodeId = new NodeId("mountpointTest3"); + + Capabilities capabilities = Capabilities.getAvailableCapabilities(nNode); + System.out.println("Node capabilites: " + capabilities); + + try { + deviceManager.startListenerOnNodeForConnectedState(Action.CREATE, nodeId, nNode); + } catch (Exception e) { + e.printStackTrace(); + fail("Exception received."); + } + System.out.println("Devicemanager started ----"); + readOnlyTransaction.sendProblemNotification(); + try { + Thread.sleep(500); + } catch (InterruptedException e) { + } + + readOnlyTransaction.close(); + System.out.println("Test3: Done"); + + } + + @Test + public void test4() { + System.out.println("Test4: master mountpoint ONF Model 1211"); + + ReadOnlyTransactionMountpoint1211Mock readOnlyTransaction = new ReadOnlyTransactionMountpoint1211Mock(); + dataBrokerNetconf.setReadOnlyTransaction(readOnlyTransaction); + mountPoint.setReadOnlyTransaction(readOnlyTransaction); + + NetconfNode nNode = readOnlyTransaction.getMock().getNetconfNode(); + mountPoint.setDatabrokerAbsent(false); + NodeId nodeId = new NodeId("mountpointTest4"); + + Capabilities capabilities = Capabilities.getAvailableCapabilities(nNode); + System.out.println("Node capabilites: " + capabilities); + + try { + deviceManager.startListenerOnNodeForConnectedState(Action.CREATE, nodeId, nNode); + } catch (Exception e) { + e.printStackTrace(); + fail("Exception received."); + } + + readOnlyTransaction.sendProblemNotification(); + try { + Thread.sleep(500); + } catch (InterruptedException e) { + Thread.interrupted(); + } + + readOnlyTransaction.close(); + System.out.println("Test4: Done"); + + } + + @Test + public void test5() { + System.out.println("Test5: master mountpoint ONF Model 1211p"); + + ReadOnlyTransactionMountpoint1211pMock readOnlyTransaction = new ReadOnlyTransactionMountpoint1211pMock(); + dataBrokerNetconf.setReadOnlyTransaction(readOnlyTransaction); + mountPoint.setReadOnlyTransaction(readOnlyTransaction); + + NetconfNode nNode = readOnlyTransaction.getMock().getNetconfNode(); + mountPoint.setDatabrokerAbsent(false); + NodeId nodeId = new NodeId("mountpointTest5"); + + Capabilities capabilities = Capabilities.getAvailableCapabilities(nNode); + System.out.println("Node capabilites: " + capabilities); + + try { + deviceManager.startListenerOnNodeForConnectedState(Action.CREATE, nodeId, nNode); + } catch (Exception e) { + e.printStackTrace(); + fail("Exception received."); + } + readOnlyTransaction.sendProblemNotification(); + try { + Thread.sleep(500); + } catch (InterruptedException e) { + Thread.interrupted(); + } + + readOnlyTransaction.close(); + System.out.println("Test5: Done"); + + } + + @Test + public void test6() { + + System.out.println("Test6: Write zip data file file"); + File testFile = new File("etc/elasticsearch_update.zip"); + ResourcesFromDeviceManager.extractFileTo("elasticsearch_update.zip", testFile); + int wait = 130; + while (testFile.exists() && wait-- > 0) { + System.out.println("Waiting " + wait); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + Thread.interrupted(); + } + } + + + System.out.println("Test6: Done"); + + } + + /* + @Test + public void test7() throws Exception { + final int NUM = 5; + final int ARCHIVE_DAYS = 30; + final long ARCHIVE_LIMIT_SEC = TimeUnit.SECONDS.convert(ARCHIVE_DAYS, TimeUnit.DAYS); + final long ARCHIVE_INTERVAL_SEC = 10; + File propFile = KARAF_ETC.resolve("devicemanager.properties").toFile(); + + ArchiveCleanService service = deviceManager.getArchiveCleanService(); + DBCleanServiceHelper helper = new DBCleanServiceHelper(deviceManager); + + // setEsConfg + TestDevMgrPropertiesFile.writeFile(propFile, getContent(ARCHIVE_LIMIT_SEC, ARCHIVE_INTERVAL_SEC)); + //give time to read file + sleep(5); + System.out.println("Archive clean service configuration "+service); + System.out.println("To delete elements older: "+service.getDateForOldElements()); + System.out.println("Status of elements is: "+service.countOldEntries()); + + // create old data and check if the will be cleaned completely + int elements = helper.writeDataToLogs(NUM, ARCHIVE_DAYS+5, 0 ); //Hours + System.out.println("Written elements are: "+elements); + + waitForDeletion(service, 2 * ARCHIVE_INTERVAL_SEC, elements, "Entries are not cleared completely as expected"); + + // create partial old and newer data and check that only half of all data are cleaned + // New data are not counted as "old" .. + int elementsToRemove = elements = helper.writeDataToLogs(NUM, ARCHIVE_DAYS+5, 0); + elements += helper.writeDataToLogs(NUM, ARCHIVE_DAYS-5, 0); + waitForDeletion(service, 2 * ARCHIVE_INTERVAL_SEC, elementsToRemove, "Entries are not cleared exactly half as expected"); + + // create only newer data and check that nothing is cleaned + elements = helper.writeDataToLogs(NUM, ARCHIVE_DAYS+2, 0); + waitForDeletion(service, 2 * ARCHIVE_INTERVAL_SEC, elements, "Some entries were removed, but shouldn't."); + + service.close(); + } +*/ + // ********************* Private + + @SuppressWarnings("unused") + private void waitForDeletion(ArchiveCleanService service, long timeout, long numberAtBeginning, String faultMessage) { + int numberEntries = 0; + while (timeout-- > 0) { + sleep(1000); + numberEntries = service.countOldEntries(); + if (numberEntries <= 0) { + break; + } + } + if (timeout == 0) { + fail(faultMessage + " Timeout at:" + timeout + " Entries at beginning " + numberAtBeginning + + " remaining" + numberEntries); + } + } + + + private static void waitfordatabase() throws InterruptedException { +/* + System.out.println("Test1: Wait for database"); + int timeout = DATABASETIMEOUTSECONDS; + while (!deviceManager.isDatabaseInitializationFinished() && timeout-- > 0) { + System.out.println("Test1: " + timeout); + Thread.sleep(1000); // On second + } + System.out.println("Ddatabase initialized"); +*/ + } + + private static void sleep(int millis) { + try { + Thread.sleep(millis); + } catch (InterruptedException e) { + LOG.warn(e.getMessage()); + Thread.interrupted(); + } + } + + private static void delete(Path etc) throws IOException { + if (Files.exists(etc)) { + System.out.println("Found and remove:" + etc.toString()); + delete(etc.toFile()); + } + } + + private static void delete(File f) throws IOException { + if (f.isDirectory()) { + for (File c : f.listFiles()) { + delete(c); + } + } + if (!f.delete()) { + throw new FileNotFoundException("Failed to delete file: " + f); + } + } + + @SuppressWarnings("unused") + private String getContent(long archiveLimitSeconds, long esArchiveCheckIntervalSeconds) { + return "[dcae]\n" + "dcaeUserCredentials=admin:admin\n" + "dcaeUrl=http://localhost:45/abc\n" + + "dcaeHeartbeatPeriodSeconds=120\n" + "dcaeTestCollector=no\n" + "\n" + "[aots]\n" + + "userPassword=passwd\n" + "soapurladd=off\n" + "soapaddtimeout=10\n" + "soapinqtimeout=20\n" + + "userName=user\n" + "inqtemplate=inqreq.tmpl.xml\n" + "assignedto=userid\n" + + "addtemplate=addreq.tmpl.xml\n" + "severitypassthrough=critical,major,minor,warning\n" + + "systemuser=user\n" + "prt-offset=1200\n" + "soapurlinq=off\n" + "#smtpHost=\n" + "#smtpPort=\n" + + "#smtpUsername=\n" + "#smtpPassword=\n" + "#smtpSender=\n" + "#smtpReceivers=\n" + "\n" + "[es]\n" + + "esCluster=sendateodl5\n" + "esArchiveLifetimeSeconds=" + archiveLimitSeconds + "\n" + "esArchiveCheckIntervalSeconds=" + + esArchiveCheckIntervalSeconds + "\n" + "\n" + "[aai]\n" + "#keep comment\n" + + "aaiHeaders=[\"X-TransactionId: 9999\"]\n" + "aaiUrl=off\n" + "aaiUserCredentials=AAI:AAI\n" + + "aaiDeleteOnMountpointRemove=true\n" + "aaiTrustAllCerts=false\n" + "aaiApiVersion=aai/v13\n" + + "aaiPropertiesFile=aaiclient.properties\n" + "\n" + "[pm]\n" + "pmCluster=sendateodl5\n" + + "pmEnabled=true\n" + "[toggleAlarmFilter]\n" + "taEnabled=false\n" + "taDelay=5555\n" + ""; + } + + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestEquipment.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestEquipment.java new file mode 100644 index 000000000..f48395648 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestEquipment.java @@ -0,0 +1,90 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; +import org.mockito.Mockito; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.onfcore.container.ExtendedEquipment; +import org.onap.ccsdk.features.sdnr.wt.yangtools.YangToolsMapper; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.EquipmentBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.equipment.g.ContainedHolder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.equipment.g.ContainedHolderBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.equipment.g.ContainedHolderKey; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.extension.g.Extension; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.extension.g.ExtensionBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.InventoryEntity; + +import com.fasterxml.jackson.core.JsonProcessingException; + +public class TestEquipment extends Mockito { + + YangToolsMapper yangtoolsMapper = new YangToolsMapper(); + + @Test + public void test1() { + + ExtendedEquipment extendedEquipment = getTestEquipment(1); + String extendedEquipmentString = extendedEquipment.toString(); + System.out.println(extendedEquipmentString); + } + + @Test + public void test2() { + + List<ExtendedEquipment> equipmentList = new ArrayList<>(); + equipmentList.add(getTestEquipment(2)); + equipmentList.add(getTestEquipment(3)); + + InventoryEntity esEquipment; + for (ExtendedEquipment equipment1 : equipmentList) { + esEquipment = equipment1.getCreateInventoryInput(); + try { + String json = yangtoolsMapper.writeValueAsString(esEquipment); + System.out.println("JSON: "+json); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + // eventRWEquipment.write(esEquipment,equipment1.getNodeId()+"/"+equipment1.getParentUuid()); + } + } + + private ExtendedEquipment getTestEquipment(int number) { + // Move to InventoryEntity + EquipmentBuilder equipmentBuilder = new EquipmentBuilder(); + equipmentBuilder.setUuid(new UniversalId("EquipmentId")); + ContainedHolderBuilder containedHolderBuilder = new ContainedHolderBuilder(); + List<Extension> xy = new ArrayList<>(); + xy.add(new ExtensionBuilder().setValueName("Test1").setValue("TestValue").build()); + containedHolderBuilder.setExtension(xy); + containedHolderBuilder.withKey(new ContainedHolderKey(new UniversalId("MyKey" + number))); + List<ContainedHolder> z = new ArrayList<>(); + z.add(containedHolderBuilder.build()); + equipmentBuilder.setContainedHolder(z); + + ExtendedEquipment extendedEquipment = new ExtendedEquipment("node" + number, "Parent", equipmentBuilder.build(), + "X/" + number, number); + return extendedEquipment; + } +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestGeoConfig.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestGeoConfig.java new file mode 100644 index 000000000..6474a1eb6 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestGeoConfig.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.*; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.conf.odlGeo.GeoConfig; + +public class TestGeoConfig { + + @Test + public void test() { + GeoConfig config; + try { + System.out.println("testing clusternode geo config1"); + System.out.println("==========================="); + config = GeoConfig.parse(getClusterGeoConfigContent()); + System.out.println("succeeded: "); + System.out.println(config.toString()); + System.out.println("primary roles:"); + System.out.println(config.getPrimaryRoles().toString()); + System.out.println("secondary roles:"); + System.out.println(config.getSecondaryRoles().toString()); + + } catch (Exception e) { + fail("failed: " + e.getMessage()); + } + } + + + + private static String getClusterGeoConfigContent() { + return "\n" + "lumina-geo-cluster {\n" + " primary_roles = [\n" + + " \"member-1\",\"member-2\",\"member-3\"\n" + " ]\n" + " secondary_roles = [\n" + + " \"member-4\",\"member-5\",\"member-6\"\n" + " ]\n" + " ip_roles_table = [\n" + "\n" + + " {\n" + "role=\"member-1\"\n" + "ip=\"zltcmtn23arbc01.2f0377.mtn23a.tci.att.com\"\n" + "},\n" + + "{\n" + "role=\"member-2\"\n" + "ip=\"zltcmtn23arbc02.2f0377.mtn23a.tci.att.com\"\n" + "},\n" + "{\n" + + "role=\"member-3\"\n" + "ip=\"zltcmtn23arbc03.2f0377.mtn23a.tci.att.com\"\n" + "},\n" + "{\n" + + "role=\"member-4\"\n" + "ip=\"zltcmtn23brbc01.f84e7a.mtn23b.tci.att.com\"\n" + "},\n" + "{\n" + + "role=\"member-5\"\n" + "ip=\"zltcmtn23brbc02.f84e7a.mtn23b.tci.att.com\"\n" + "},\n" + "{\n" + + "role=\"member-6\"\n" + "ip=\"zltcmtn23brbc03.f84e7a.mtn23b.tci.att.com\"\n" + "}\n" + " \n" + + " ]\n" + "}\n" + "\n" + "\n" + "\n" + "\n" + ""; + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestMaintenanceTimeFilter.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestMaintenanceTimeFilter.java new file mode 100644 index 000000000..932ad52d2 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestMaintenanceTimeFilter.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import java.time.ZonedDateTime; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.maintenance.impl.MaintenanceCalculator; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; + +public class TestMaintenanceTimeFilter { + + private static String DEFAULT1 = "EsMaintenanceFilter [start=1970-01-01T00:00Z[UTC], end=1970-01-01T00:00Z[UTC], definition=EsMaintenanceFilterDefinition [objectIdRef=, problem=], description=]"; + private static String DEFAULT2 = "EsMaintenanceFilter [start=1970-01-01T00:00Z[UTC], end=2018-01-01T10:00+05:00, definition=EsMaintenanceFilterDefinition [objectIdRef=, problem=], description=]"; + + @Test + public void test1() { + + boolean res; + + DateAndTime start = new DateAndTime("2018-01-01T10:00:00+05:00"); + DateAndTime end = new DateAndTime("2019-01-01T10:00:00+05:00"); + ZonedDateTime now; + + now = ZonedDateTime.parse("2017-05-01T10:00:00+05:00"); + res = MaintenanceCalculator.isInPeriod(start, end, now); + System.out.println("Before: " + res); + assertFalse("before period", res); + + now = ZonedDateTime.parse("2018-05-01T10:00:00+05:00"); + res = MaintenanceCalculator.isInPeriod(start, end, now); + System.out.println("Within: " + res); + assertTrue("within period",res); + + now = ZonedDateTime.parse("2019-05-01T10:00:00+05:00"); + res = MaintenanceCalculator.isInPeriod(start, end, now); + System.out.println("After: " + res); + assertFalse("after period", res); + + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestMapper.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestMapper.java new file mode 100644 index 000000000..837784aec --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestMapper.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= ONAP : ccsdk + * feature sdnr wt ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================ Licensed under + * the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.database.HtMapper; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.performancemanager.impl.database.types.EsHistoricalPerformance15Minutes; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.LayerProtocolName; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.LpBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder; + +public class TestMapper { + + @Test + public void test1() { + + int t = 0; + System.out.println(t++); + + HtMapper<EsHistoricalPerformance15Minutes> mapper = new HtMapper<>(EsHistoricalPerformance15Minutes.class); + System.out.println(t++); + + + Lp layerProtocol = new LpBuilder().setUuid(new UniversalId("TestId")) + .setLayerProtocolName(new LayerProtocolName("LayprotcolTest")).build(); + System.out.println(t++); + EsHistoricalPerformance15Minutes pmData = new EsHistoricalPerformance15Minutes("Testnode", layerProtocol); + System.out.println(t++); + + // AirInterfaceHistoricalPerformancesBuilder builder1 = new + // AirInterfaceHistoricalPerformancesBuilder(); + // System.out.println(t++); + + + HistoricalPerformanceDataListBuilder builder2 = new HistoricalPerformanceDataListBuilder(); + System.out.println(t++); + builder2.setPeriodEndTime(new DateAndTime("2019-06-06T12:12:12.1Z")); + System.out.println(t++); + + String json = mapper.objectToJson(pmData); + + System.out.println("Result: " + pmData); + System.out.println("Result: " + json); + + // fail("Not yet implemented"); + } +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestNameSpace.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestNameSpace.java new file mode 100644 index 000000000..4a85299d7 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestNameSpace.java @@ -0,0 +1,43 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import org.junit.Test; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement; +import org.opendaylight.yangtools.yang.common.QName; + +public class TestNameSpace { + + @Test + public void test() { + + QName qname = QName.create("(urn:o-ran:hardware:1.0?revision=2019-03-28)o-ran-hardware"); + + System.out.println("QName getNamespace"+qname.getNamespace()); + System.out.println("QName getRevision"+qname.getRevision()); + + + System.out.println(NetworkElement.QNAME.getNamespace().toString()); + + } + + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestNotification.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestNotification.java new file mode 100644 index 000000000..7e54f16b1 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestNotification.java @@ -0,0 +1,41 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.toggleAlarmFilter.NotificationWithServerTimeStamp; + +public class TestNotification { + + @Test + public void test() { + + NotificationWithServerTimeStamp<Integer> test = new NotificationWithServerTimeStamp<>(1000); + + test.refresh(1000); + test.getStartTime(); + + System.out.println(test); + + } + + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData12.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData12.java new file mode 100644 index 000000000..0037724bf --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData12.java @@ -0,0 +1,91 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.performancemanager.impl.database.types.EsPerformanceData; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.historical.performance.type.g.PerformanceDataBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder; + +public class TestPerformanceData12 { + + @Test + public void test1() { + + PerformanceDataBuilder p = new PerformanceDataBuilder(); + byte b=100; + short s=100; + p.setEs(100); + p.setCses(100); + p.setEs(100); + p.setSes(100); + p.setCses(100); + p.setUnavailability(100); + p.setTxLevelMin(b); + p.setTxLevelMax(b); + p.setTxLevelAvg(b); + p.setRxLevelMin(b); + p.setRxLevelMax(b); + p.setRxLevelAvg(b); + p.setTime2States(100); + p.setTime4StatesS(100); + p.setTime4States(100); + p.setTime8States(100); + p.setTime16StatesS(100); + p.setTime16States(100); + p.setTime32States(100); + p.setTime64States(100); + p.setTime128States(100); + p.setTime256States(100); + p.setTime512States(100); + p.setTime512StatesL(100); + p.setTime1024States(100); + p.setTime1024StatesL(100); + p.setTime2048States(100); + p.setTime2048StatesL(100); + p.setTime4096States(100); + p.setTime4096StatesL(100); + p.setTime8192States(100); + p.setTime8192StatesL(100); + p.setSnirMin(b); + p.setSnirMax(b); + p.setSnirAvg(b); + p.setXpdMin(b); + p.setXpdMax(b); + p.setXpdAvg(b); + p.setRfTempMin(b); + p.setRfTempMax(b); + p.setRfTempAvg(b); + p.setDefectBlocksSum(s); + p.setTimePeriod(100); + + HistoricalPerformanceDataListBuilder pmList = new HistoricalPerformanceDataListBuilder(); + pmList.setPerformanceData(p.build()); + + EsPerformanceData pmData = new EsPerformanceData(pmList.build()); + + assertTrue("Verify value", pmData.getEs() == 100); + + System.out.println(pmData.toString()); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData1211.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData1211.java new file mode 100644 index 000000000..ffd460c3c --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData1211.java @@ -0,0 +1,91 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.performancemanager.impl.database.types.EsPerformanceData; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.historical.performance.type.g.PerformanceDataBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder; + +public class TestPerformanceData1211 { + + @Test + public void test() { + + PerformanceDataBuilder p = new PerformanceDataBuilder(); + byte b=100; + short s=100; + p.setEs(100); + p.setCses(100); + p.setEs(100); + p.setSes(100); + p.setCses(100); + p.setUnavailability(100); + p.setTxLevelMin(b); + p.setTxLevelMax(b); + p.setTxLevelAvg(b); + p.setRxLevelMin(b); + p.setRxLevelMax(b); + p.setRxLevelAvg(b); + p.setTime2States(100); + p.setTime4StatesS(100); + p.setTime4States(100); + p.setTime8States(100); + p.setTime16StatesS(100); + p.setTime16States(100); + p.setTime32States(100); + p.setTime64States(100); + p.setTime128States(100); + p.setTime256States(100); + p.setTime512States(100); + p.setTime512StatesL(100); + p.setTime1024States(100); + p.setTime1024StatesL(100); + p.setTime2048States(100); + p.setTime2048StatesL(100); + p.setTime4096States(100); + p.setTime4096StatesL(100); + p.setTime8192States(100); + p.setTime8192StatesL(100); + p.setSnirMin(b); + p.setSnirMax(b); + p.setSnirAvg(b); + p.setXpdMin(b); + p.setXpdMax(b); + p.setXpdAvg(b); + p.setRfTempMin(b); + p.setRfTempMax(b); + p.setRfTempAvg(b); + p.setDefectBlocksSum(s); + p.setTimePeriod(100); + + HistoricalPerformanceDataListBuilder pmList = new HistoricalPerformanceDataListBuilder(); + pmList.setPerformanceData(p.build()); + + EsPerformanceData pmData = new EsPerformanceData(pmList.build()); + + assertTrue("Verify value", pmData.getEs() == 100); + + System.out.println(pmData.toString()); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData1211Ethernet.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData1211Ethernet.java new file mode 100644 index 000000000..60706771e --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData1211Ethernet.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.performancemanager.impl.database.types.EsPerformanceData; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.container.historical.performance.type.g.PerformanceDataBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder; + +public class TestPerformanceData1211Ethernet { + + @Test + public void test1() { + PerformanceDataBuilder p = new PerformanceDataBuilder(); + p.setTimePeriod(1); + p.setTxEthernetBytesMaxM(2L); + p.setTxEthernetBytesMaxS(3); + p.setTxEthernetBytesSum(4L); + p.setTimePeriod(100); + + HistoricalPerformanceDataListBuilder pmElement = new HistoricalPerformanceDataListBuilder(); + pmElement.setPerformanceData(p.build()); + + //EthernetContainerHistoricalPerformancesBuilder pmList = new EthernetContainerHistoricalPerformancesBuilder(); + //pmList.setHistoricalPerformanceDataList(Arrays.asList(pmElement.build())); + + EsPerformanceData pmData = new EsPerformanceData(pmElement.build()); + + assertTrue("Verify value", pmData.getEs() == null); + assertTrue("Verify value", pmData.getTxEthernetBytesSum() == 4L); + + System.out.println(pmData.toString()); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData1211p.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData1211p.java new file mode 100644 index 000000000..dff517de9 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData1211p.java @@ -0,0 +1,91 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.performancemanager.impl.database.types.EsPerformanceData; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.historical.performance.type.g.PerformanceDataBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder; + +public class TestPerformanceData1211p { + + @Test + public void test() { + + PerformanceDataBuilder p = new PerformanceDataBuilder(); + byte b=100; + short s=100; + p.setEs(100); + p.setCses(100); + p.setEs(100); + p.setSes(100); + p.setCses(100); + p.setUnavailability(100); + p.setTxLevelMin(b); + p.setTxLevelMax(b); + p.setTxLevelAvg(b); + p.setRxLevelMin(b); + p.setRxLevelMax(b); + p.setRxLevelAvg(b); + p.setTime2States(100); + p.setTime4StatesS(100); + p.setTime4States(100); + p.setTime8States(100); + p.setTime16StatesS(100); + p.setTime16States(100); + p.setTime32States(100); + p.setTime64States(100); + p.setTime128States(100); + p.setTime256States(100); + p.setTime512States(100); + p.setTime512StatesL(100); + p.setTime1024States(100); + p.setTime1024StatesL(100); + p.setTime2048States(100); + p.setTime2048StatesL(100); + p.setTime4096States(100); + p.setTime4096StatesL(100); + p.setTime8192States(100); + p.setTime8192StatesL(100); + p.setSnirMin(b); + p.setSnirMax(b); + p.setSnirAvg(b); + p.setXpdMin(b); + p.setXpdMax(b); + p.setXpdAvg(b); + p.setRfTempMin(b); + p.setRfTempMax(b); + p.setRfTempAvg(b); + p.setDefectBlocksSum(s); + p.setTimePeriod(100); + + HistoricalPerformanceDataListBuilder pmList = new HistoricalPerformanceDataListBuilder(); + pmList.setPerformanceData(p.build()); + + EsPerformanceData pmData = new EsPerformanceData(pmList.build()); + + assertTrue("Verify value", pmData.getEs() == 100); + + System.out.println(pmData.toString()); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData1211pEthernet.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData1211pEthernet.java new file mode 100644 index 000000000..68cb5ca3d --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData1211pEthernet.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.performancemanager.impl.database.types.EsPerformanceData; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.container.historical.performance.type.g.PerformanceDataBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder; + +public class TestPerformanceData1211pEthernet { + + @Test + public void test1() { + PerformanceDataBuilder p = new PerformanceDataBuilder(); + p.setTimePeriod(1); + p.setTxEthernetBytesMaxM(2L); + p.setTxEthernetBytesMaxS(3); + p.setTxEthernetBytesSum(4L); + p.setTimePeriod(100); + + HistoricalPerformanceDataListBuilder pmElement = new HistoricalPerformanceDataListBuilder(); + pmElement.setPerformanceData(p.build()); + + //EthernetContainerHistoricalPerformancesBuilder pmList = new EthernetContainerHistoricalPerformancesBuilder(); + //pmList.setHistoricalPerformanceDataList(Arrays.asList(pmElement.build())); + + EsPerformanceData pmData = new EsPerformanceData(pmElement.build()); + + assertTrue("Verify value", pmData.getEs() == null); + assertTrue("Verify value", pmData.getTxEthernetBytesSum() == 4L); + + System.out.println(pmData.toString()); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData12Ethernet.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData12Ethernet.java new file mode 100644 index 000000000..96491af9f --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestPerformanceData12Ethernet.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.performancemanager.impl.database.types.EsPerformanceData; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.container.historical.performance.type.g.PerformanceDataBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder; + +public class TestPerformanceData12Ethernet { + + @Test + public void test1() { + PerformanceDataBuilder p = new PerformanceDataBuilder(); + p.setTimePeriod(1); + p.setTxEthernetBytesMaxM(2L); + p.setTxEthernetBytesMaxS(3); + p.setTxEthernetBytesSum(4L); + + HistoricalPerformanceDataListBuilder pmElement = new HistoricalPerformanceDataListBuilder(); + pmElement.setPerformanceData(p.build()); + + //EthernetContainerHistoricalPerformancesBuilder pmList = new EthernetContainerHistoricalPerformancesBuilder(); + //pmList.setHistoricalPerformanceDataList(Arrays.asList(pmElement.build())); + + EsPerformanceData pmData = new EsPerformanceData(pmElement.build()); + + assertTrue("Verify value", pmData.getEs() == null); + assertTrue("Verify value", pmData.getTxEthernetBytesSum() == 4L); + + System.out.println(pmData.toString()); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestYangCloning.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestYangCloning.java new file mode 100644 index 000000000..363d84f3a --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestYangCloning.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + ******************************************************************************/ + +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import java.util.Arrays; + +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.util.InternalDateAndTime; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.util.InternalSeverity; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.xml.ProblemNotificationXml; +import org.onap.ccsdk.features.sdnr.wt.yangtools.YangToolsCloner; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.AdministrativeState; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.Equipment; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.EquipmentBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.equipment.g.ContainedHolderBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Faultcurrent; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.FaultcurrentEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.InventoryBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.InventoryEntity; + +public class TestYangCloning { + + @Test + public void testEquipment() { + EquipmentBuilder equipmentBuilder = new EquipmentBuilder(); + equipmentBuilder.setUuid( new UniversalId("EquipmentId")); + equipmentBuilder.setContainedHolder(Arrays.asList(new ContainedHolderBuilder() + .setUuid(new UniversalId("HolderId")) + .setAdministrativeState(AdministrativeState.Locked) + .setSupportedEquipment(Arrays.asList("eq1")) + .build())); + Equipment equipment = equipmentBuilder.build(); + InventoryEntity output = YangToolsCloner.instance().cloneToBuilder(equipment, new InventoryBuilder()) + .setNodeId("node1").setUuid("a.a.a").setId("node1"+"/"+"a.a.a").build(); + + + System.out.println("source:"); + System.out.println(equipment); + System.out.println("result:"); + System.out.println(output); + + + } + @Test + public void testFaultCurrent() { + ProblemNotificationXml source = new ProblemNotificationXml("node", "uuid", "problem", InternalSeverity.Critical,54,InternalDateAndTime.getTestpattern()); + FaultcurrentEntity output = YangToolsCloner.instance().clone(source,Faultcurrent.class); + + System.out.println("source:"); + System.out.println(source); + System.out.println("result:"); + System.out.println(output); + } +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestsCapability.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestsCapability.java new file mode 100644 index 000000000..3108aa5ce --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestsCapability.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.assertTrue; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.onfcore.wrapperc.WrapperMicrowaveModelRev170324; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util.Model12ObjectMock; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; + +public class TestsCapability { + + private static NetconfNode nNode; + + @BeforeClass + public static void before() { + nNode = new Model12ObjectMock().getNetconfNode(); + } + + @Test + public void test1() { + + Capabilities capabilities = Capabilities.getAvailableCapabilities(nNode); + assertTrue(capabilities.isSupportingNamespaceAndRevision(NetworkElement.QNAME)); + + } + + @Test + public void test2() { + + Capabilities capabilities = Capabilities.getAvailableCapabilities(nNode); + assertTrue(capabilities.isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev170324.QNAME)); + + } + + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestsNectconfDateTime.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestsNectconfDateTime.java new file mode 100644 index 000000000..fc01274c0 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/TestsNectconfDateTime.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test; + +import static org.junit.Assert.assertTrue; + +import java.util.Date; + +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.base.netconf.util.NetconfTimeStamp; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util.NetconfTimeStampOld; + +public class TestsNectconfDateTime { + + private static String[] testPatterPostive = { + "2017-01-18T11:44:49.482-0500", + "2017-01-18T11:44:49.482-05:00", + "20170118114449.123Z", + "20170118114449.1Z", + "20170118114449.1-0500", + "2017-01-23T13:32:38-05:00", + "2017-01-23T13:32-05:00", + "2017-01-18T11:44:49Z" + }; + private static String[] testPatterProblem = { + "2017-01-18T11:44:49" + }; + + + private final NetconfTimeStampOld netconfTimeConverterOld = NetconfTimeStampOld.getConverter(); + private final NetconfTimeStamp netconfTimeConverterNew = NetconfTimeStamp.getConverter(); + + @Test + public void test1() { + + int t = 1; + String timeNew, timeOld; + for (String testTime : testPatterPostive) { + timeNew = netconfTimeConverterNew.getTimeStampFromNetconf(testTime); + timeOld = netconfTimeConverterOld.getTimeStampFromNetconf(testTime); + + System.out.println("No "+t+++" Pattern: "+testTime); + System.out.println(" to old "+timeOld); + System.out.println(" to new "+timeNew); + System.out.println(); + + assertTrue("Old/New implementation not same "+timeOld+"/"+timeNew, timeOld.equals(timeNew)); + } + + for (String testTime : testPatterProblem) { + timeNew = netconfTimeConverterNew.getTimeStampFromNetconf(testTime); + timeOld = netconfTimeConverterOld.getTimeStampFromNetconf(testTime); + + System.out.println("No "+t+++" Pattern: "+testTime); + System.out.println(" to old "+timeOld); + System.out.println(" to new "+timeNew); + System.out.println(); + + assertTrue("Old/New implementation not same "+timeOld+"/"+timeNew, timeOld.equals(timeNew)); + } + } + + @Test + public void test2() { + + int t = 1; + Long timeNew, timeOld; + for (String testTime : testPatterPostive) { + timeNew = netconfTimeConverterNew.getTimeStampFromNetconfAsMilliseconds(testTime); + timeOld = netconfTimeConverterOld.getTimeStampFromNetconfAsMilliseconds(testTime); + + System.out.println("No "+t+++" Pattern: "+testTime); + System.out.println(" to old "+timeOld); + System.out.println(" to new "+timeNew); + System.out.println(); + + assertTrue("Old/New implementation not same "+timeOld+"/"+timeNew, timeOld.equals(timeNew)); + } + + } + + + @Test + public void test3() { + + Date now = new Date(); + String timeNew = netconfTimeConverterNew.getTimeStampAsNetconfString(now); + String timeOld = netconfTimeConverterOld.getTimeStampAsNetconfString(now); + + System.out.println("Old/New: "+timeOld+"/"+timeNew); + + assertTrue("Old/New implementation not same "+timeOld+"/"+timeNew, timeOld.equals(timeNew)); + + + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/ClusterSingletonServiceProviderMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/ClusterSingletonServiceProviderMock.java new file mode 100644 index 000000000..a215e1883 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/ClusterSingletonServiceProviderMock.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + ******************************************************************************/ + +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock; + +import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; +import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration; + +public class ClusterSingletonServiceProviderMock implements ClusterSingletonServiceProvider { + + @Override + public void close() throws Exception { + + } + + @Override + public ClusterSingletonServiceRegistration registerClusterSingletonService(ClusterSingletonService service) { + return null; + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/DataBrokerMountpointMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/DataBrokerMountpointMock.java new file mode 100644 index 000000000..2bd5a9272 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/DataBrokerMountpointMock.java @@ -0,0 +1,77 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock; + +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.mdsal.binding.api.BindingService; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.binding.api.ReadTransaction; +import org.opendaylight.mdsal.binding.api.ReadWriteTransaction; +import org.opendaylight.mdsal.binding.api.TransactionChain; +import org.opendaylight.mdsal.binding.api.TransactionChainListener; +import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.yang.binding.DataObject; + +/** + * @author herbert + * + */ +@SuppressWarnings("deprecation") +public class DataBrokerMountpointMock implements DataBroker, BindingService { + + ReadTransaction readOnlyTransaction; + + public void setReadOnlyTransaction(ReadTransaction readOnlyTransaction) { + this.readOnlyTransaction = readOnlyTransaction; + } + + @Override + public @NonNull ReadTransaction newReadOnlyTransaction() { + return readOnlyTransaction; + } + + @Override + public @NonNull ReadWriteTransaction newReadWriteTransaction() { + return null; + } + + @Override + public @NonNull WriteTransaction newWriteOnlyTransaction() { + return null; + } + + @Override + public <T extends DataObject, L extends DataTreeChangeListener<T>> @NonNull ListenerRegistration<L> registerDataTreeChangeListener( + @NonNull DataTreeIdentifier<T> treeId, @NonNull L listener) { + return null; + } + + @Override + public @NonNull TransactionChain createTransactionChain(@NonNull TransactionChainListener listener) { + return null; + } + + + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/DataBrokerNetconfMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/DataBrokerNetconfMock.java new file mode 100644 index 000000000..0b5052632 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/DataBrokerNetconfMock.java @@ -0,0 +1,76 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock; + +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.binding.api.ReadTransaction; +import org.opendaylight.mdsal.binding.api.ReadWriteTransaction; +import org.opendaylight.mdsal.binding.api.TransactionChain; +import org.opendaylight.mdsal.binding.api.TransactionChainListener; +import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.yang.binding.DataObject; + +/** + * @author herbert + * + */ +@SuppressWarnings("deprecation") +public class DataBrokerNetconfMock implements DataBroker { + + + ReadTransaction readOnlyTransaction; + + public void setReadOnlyTransaction(ReadTransaction readOnlyTransaction) { + this.readOnlyTransaction = readOnlyTransaction; + } + + @Override + public @NonNull ReadTransaction newReadOnlyTransaction() { + return readOnlyTransaction; + } + + @Override + public @NonNull ReadWriteTransaction newReadWriteTransaction() { + return null; + } + + @Override + public @NonNull WriteTransaction newWriteOnlyTransaction() { + return null; + } + + @Override + public <T extends DataObject, L extends DataTreeChangeListener<T>> @NonNull ListenerRegistration<L> registerDataTreeChangeListener( + @NonNull DataTreeIdentifier<T> treeId, @NonNull L listener) { + return null; + } + + @Override + public @NonNull TransactionChain createTransactionChain(@NonNull TransactionChainListener listener) { + return null; + } + + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/DataProviderMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/DataProviderMock.java new file mode 100644 index 000000000..5fbef21f3 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/DataProviderMock.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2019 Red Hat, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ConnectionlogEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.EventlogEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.FaultcurrentEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.FaultlogEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Inventory; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.NetworkElementConnectionEntity; + +public class DataProviderMock implements DataProvider { + + @Override + public void writeConnectionLog(ConnectionlogEntity event) { + } + + @Override + public void writeEventLog(EventlogEntity event) { + } + + @Override + public void writeFaultLog(FaultlogEntity fault) { + } + + @Override + public void updateFaultCurrent(FaultcurrentEntity fault) { + } + + @Override + public int clearFaultsCurrentOfNode(String nodeName) { + return 0; + } + + @Override + public int clearFaultsCurrentOfNodeWithObjectId(String nodeName, String objectId) { + return 0; + } + + @Override + public List<String> getAllNodesWithCurrentAlarms() { + return new ArrayList<>(); + } + + @Override + public void writeInventory(Inventory internalEquipment) { + } + + @Override + public void updateNetworkConnectionDeviceType(NetworkElementConnectionEntity networkElementConnectionEntitiy, + String nodeId) { + } + + @Override + public void updateNetworkConnection22(NetworkElementConnectionEntity networkElementConnectionEntitiy, + String nodeId) { + } + + @Override + public void removeNetworkConnection(String nodeId) { + } + + @Override + public int doIndexClean(Date olderAreOutdated) { + return 0; + } + + @Override + public int getNumberOfOldObjects(Date olderAreOutdated) { + return 0; + } + + @Override + public List<NetworkElementConnectionEntity> getNetworkElementConnections() { + return new ArrayList<>(); + } +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/MountPointMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/MountPointMock.java new file mode 100644 index 000000000..73d32e418 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/MountPointMock.java @@ -0,0 +1,90 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt sdnr-wt-devicemanager-provider + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ + +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock; + +import java.util.Optional; +import org.opendaylight.mdsal.binding.api.BindingService; +import org.opendaylight.mdsal.binding.api.MountPoint; +import org.opendaylight.mdsal.binding.api.NotificationService; +import org.opendaylight.mdsal.binding.api.ReadTransaction; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.network.topology.topology.topology.types.TopologyNetconf; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; + +/** + * @author herbert + * + */ +@SuppressWarnings("deprecation") +public class MountPointMock implements MountPoint { + + private boolean databrokerAbsent = true; + private final DataBrokerMountpointMock dataBroker = new DataBrokerMountpointMock(); + private final RpcConsumerRegistryMock rpcConsumerRegistry = new RpcConsumerRegistryMock(); + private NotificationService setReadOnlyTransaction; + + private static final InstanceIdentifier<Topology> NETCONF_TOPO_IID = + InstanceIdentifier.create(NetworkTopology.class).child(Topology.class, + new TopologyKey(new TopologyId(TopologyNetconf.QNAME.getLocalName()))); + + @Override + public InstanceIdentifier<?> getIdentifier() { + return NETCONF_TOPO_IID; + } + + @SuppressWarnings("unchecked") + @Override + public <T extends BindingService> Optional<T> getService(Class<T> service) { + + System.out.println("Requested mountpoint service: "+service.getSimpleName()+" databrokerAbsent state: "+databrokerAbsent); + + Optional<?> res; + if (service.isInstance(dataBroker)) { + System.out.println("Delivering databroker"); + res = databrokerAbsent ? Optional.empty() : Optional.of(dataBroker); + } else if (service.isInstance(rpcConsumerRegistry)) { + System.out.println("Delivering RpcConsumerRegistryMock"); + res = Optional.of(rpcConsumerRegistry); + } else if (service.isInstance(setReadOnlyTransaction)) { + System.out.println("Delivering notificationService"); + res = Optional.of(setReadOnlyTransaction); + } else { + System.out.println("Delivering no service"); + res = Optional.empty(); + } + return (Optional<T>)res; + } + + public void setDatabrokerAbsent( boolean state) { + this.databrokerAbsent = state; + } + + public <T extends NotificationService&ReadTransaction>void setReadOnlyTransaction(T readOnlyTransaction) { + this.setReadOnlyTransaction = readOnlyTransaction; + dataBroker.setReadOnlyTransaction(readOnlyTransaction); + } + + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/MountPointServiceMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/MountPointServiceMock.java new file mode 100644 index 000000000..113ead29f --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/MountPointServiceMock.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock; + +import java.util.Optional; +import org.opendaylight.mdsal.binding.api.MountPoint; +import org.opendaylight.mdsal.binding.api.MountPointService; +import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; + +/** + * @author herbert + * + */ +public class MountPointServiceMock implements MountPointService { + + private final MountPoint mountpoint; + + public MountPointServiceMock(MountPoint mountpoint) { + this.mountpoint = mountpoint; + } + + @Override + public Optional<MountPoint> getMountPoint(InstanceIdentifier<?> instanceId) { + + Optional<MountPoint> optional = Optional.of(mountpoint); + return optional; + } + + @Override + public <T extends MountPointListener> ListenerRegistration<T> registerListener(InstanceIdentifier<?> path, + T listener) { + return null; + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/NotificationPublishServiceMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/NotificationPublishServiceMock.java new file mode 100644 index 000000000..fc3318b9e --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/NotificationPublishServiceMock.java @@ -0,0 +1,49 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock; + +import com.google.common.util.concurrent.ListenableFuture; +import java.util.concurrent.TimeUnit; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; +import org.opendaylight.yangtools.yang.binding.Notification; + +/** + * @author herbert + * + */ +public class NotificationPublishServiceMock implements NotificationPublishService { + + @Override + public ListenableFuture<?> offerNotification(Notification notification) { + return null; + } + + @Override + public ListenableFuture<?> offerNotification(Notification notification, int timeout, TimeUnit unit) + throws InterruptedException { + return null; + } + + @Override + public void putNotification(Notification notification) throws InterruptedException { + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/RpcConsumerRegistryMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/RpcConsumerRegistryMock.java new file mode 100644 index 000000000..89864c2c5 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/RpcConsumerRegistryMock.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt sdnr-wt-devicemanager-provider + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ + +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock; + +import org.opendaylight.controller.sal.binding.api.RpcConsumerRegistry; +import org.opendaylight.yangtools.yang.binding.RpcService; + +/** + * @author herbert + * + */ +@SuppressWarnings("deprecation") +public class RpcConsumerRegistryMock implements RpcConsumerRegistry { + + @Override + public <T extends RpcService> T getRpcService(Class<T> serviceInterface) { + return null; + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/RpcProviderRegistryMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/RpcProviderRegistryMock.java new file mode 100644 index 000000000..4aaa1ed48 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/mock/RpcProviderRegistryMock.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.mock; + +import java.util.Set; +import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.RpcService; + +public class RpcProviderRegistryMock implements RpcProviderService { + + @Override + public <S extends RpcService, T extends S> ObjectRegistration<T> registerRpcImplementation(Class<S> type, + T implementation) { + System.out.println("Register class "+implementation); + return null; + } + + @Override + public <S extends RpcService, T extends S> ObjectRegistration<T> registerRpcImplementation(Class<S> type, + T implementation, Set<InstanceIdentifier<?>> paths) { + return null; + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/DBCleanServiceHelper.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/DBCleanServiceHelper.java new file mode 100644 index 000000000..2ac81ce46 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/DBCleanServiceHelper.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util; + +import java.util.Date; +import java.util.concurrent.TimeUnit; +import org.onap.ccsdk.features.sdnr.wt.base.netconf.util.NetconfTimeStamp; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.DeviceManagerImpl; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.util.InternalDateAndTime; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.util.InternalSeverity; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.xml.ObjectCreationNotificationXml; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.xml.ProblemNotificationXml; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.SourceType; + +public class DBCleanServiceHelper { + + private static final NetconfTimeStamp NETCONFTIME_CONVERTER = NetconfTimeStamp.getConverter(); + + private final DataProvider databaseEventService; + + /** + * Helper to fill data into the database + * @param deviceManager devicemanger to get services + */ + public DBCleanServiceHelper(DeviceManagerImpl deviceManager) { + this.databaseEventService = deviceManager.getDatabaseClientEvents(); + } + + /** + * Write data into database with specific date and content profile. + * @param number of data to be written for each log + * @param days starting day, relative to actual date + * @param hours starting hour ... increased by one hour for each write + * @return integer with the amount of written data + */ + public int writeDataToLogs(int number, int days, int hours) { + int res = 0; + for (Integer t=0; t < number; t++) { //Test "sdnevents", "eventlog" + ObjectCreationNotificationXml notificationXml = new ObjectCreationNotificationXml( + "Testpoint"+t, t, getInternalDateAndTime(days, hours+t), "ObjectId"+t); + databaseEventService.writeConnectionLog(notificationXml.getConnectionlogEntity()); + res++; + } + + for (Integer t=0; t < number; t++) { //Test "sdnevents", "faultlog" + ProblemNotificationXml fault = new ProblemNotificationXml( + "ProblemNode"+t, "Problemuuid", "Problemname", InternalSeverity.Major, t, getInternalDateAndTime(days, hours+t)); + databaseEventService.writeFaultLog(fault.getFaultlog(SourceType.Unknown)); + res++; + } + + return res; + } + + /************************************************************** + * Private section + */ + + private InternalDateAndTime getInternalDateAndTime(int days, int hours) { + Date actual = new Date(new Date().getTime() - TimeUnit.MILLISECONDS.convert(days, TimeUnit.DAYS) - TimeUnit.MILLISECONDS.convert(hours, TimeUnit.HOURS)); + InternalDateAndTime timeStamp = InternalDateAndTime.valueOf(NETCONFTIME_CONVERTER.getTimeStamp(actual)); + return timeStamp; + } + + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/Model1211ObjectMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/Model1211ObjectMock.java new file mode 100644 index 000000000..124ac984a --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/Model1211ObjectMock.java @@ -0,0 +1,156 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= ONAP : ccsdk + * feature sdnr wt ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================ Licensed under + * the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.List; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.onfcore.container.ONFLayerProtocolName; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.onfcore.wrapperc.WrapperMicrowaveModelRev180907; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.util.InternalDateAndTime; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElementBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ProblemNotification; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ProblemNotificationBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwAirInterfaceDiversityPac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwHybridMwStructurePac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwPureEthernetStructurePac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwAirInterfacePac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwEthernetContainerPac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwTdmContainerPac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.SeverityType; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.AvailableCapabilitiesBuilder; +import org.opendaylight.yangtools.concepts.Builder; + +public class Model1211ObjectMock { + + public NetconfNode getNetconfNode() { + + AvailableCapabilitiesBuilder availableCapabilitiesBuilder = + ObjectBuilder.getAvailableCababilitiesList(NetworkElement.QNAME, WrapperMicrowaveModelRev180907.QNAME); + + NetconfNodeBuilder nNodeBuilder = new NetconfNodeBuilder(); + nNodeBuilder.setAvailableCapabilities(availableCapabilitiesBuilder.build()); + nNodeBuilder.setConnectionStatus(ConnectionStatus.Connected); + nNodeBuilder.setHost(new Host(new IpAddress(new Ipv4Address("1.2.3.4")))); + nNodeBuilder.setPort(new PortNumber(2230)); + // build + NetconfNode nNode = nNodeBuilder.build(); + return nNode; + } + + public NetworkElement getNetworkElement() { + + NetworkElementBuilder networkElementBuilder = new NetworkElementBuilder(); + + // LTP/LP1 + /* + * LpBuilder lpBuilder1 = new LpBuilder(); lpBuilder1.withKey(new LpKey(new + * UniversalId("MwAirInterfacePacLpKey"))); lpBuilder1.setLayerProtocolName(new + * LayerProtocolName(ONFLayerProtocolName.MWAirInterface.getValue())); + * lpBuilder1.setExtension(Arrays.asList(getExtension("e1", "capability", + * MwAirInterfacePac.QNAME.getLocalName()), getExtension("e1", "revision", + * MwAirInterfacePac.QNAME.getRevision().get().toString()), getExtension("e1", + * "conditional-package", MwAirInterfacePac.QNAME.getModule().toString()))); LtpBuilder ltpBuilder1 + * = new LtpBuilder(); ltpBuilder1.setUuid(new UniversalId("MwAirInterfacePac")); + * ltpBuilder1.withKey(new LtpKey(new UniversalId("MwAirInterfacePacKey"))); + * ltpBuilder1.setLp(values) + */ + // ---- LTP List + networkElementBuilder.setLtp(Arrays.asList( + ObjectBuilder.getLtp(MwAirInterfacePac.class, MwAirInterfacePac.QNAME, + ONFLayerProtocolName.MWAirInterface), + ObjectBuilder.getLtp(MwEthernetContainerPac.class, MwEthernetContainerPac.QNAME, + ONFLayerProtocolName.EthernetContainer12), + ObjectBuilder.getLtp(MwTdmContainerPac.class, MwTdmContainerPac.QNAME, + ONFLayerProtocolName.TDMContainer), + ObjectBuilder.getLtp(MwHybridMwStructurePac.class, MwHybridMwStructurePac.QNAME, + ONFLayerProtocolName.Structure), + ObjectBuilder.getLtp(MwAirInterfaceDiversityPac.class, MwAirInterfaceDiversityPac.QNAME, + ONFLayerProtocolName.Structure), + ObjectBuilder.getLtp(MwPureEthernetStructurePac.class, MwPureEthernetStructurePac.QNAME, + ONFLayerProtocolName.Structure))); + // build + NetworkElement networkElement = networkElementBuilder.build(); + return networkElement; + } + + public <R, RB extends Builder<R>, PLB extends Builder<?>> R getCurrentProblems(Class<PLB> plbClazz, + Class<RB> rbClazz) { + + try { + PLB currentProblemListBuilder = plbClazz.newInstance(); + + // currentProblemListBuilder.setProblemName("Problem1"); + Method setProblemName = plbClazz.getDeclaredMethod("setProblemName", String.class); + setProblemName.setAccessible(true); + setProblemName.invoke(currentProblemListBuilder, "Problem1"); + + // currentProblemListBuilder.setProblemSeverity(SeverityType.Critical); + Method setProblemSeverity = plbClazz.getDeclaredMethod("setProblemSeverity", SeverityType.class); + setProblemSeverity.setAccessible(true); + setProblemSeverity.invoke(currentProblemListBuilder, SeverityType.Critical); + + // currentProblemListBuilder.setSequenceNumber(1); + Method setSequenceNumber = plbClazz.getDeclaredMethod("setSequenceNumber", Integer.class); + setSequenceNumber.setAccessible(true); + setSequenceNumber.invoke(currentProblemListBuilder, 1); + + // currentProblemListBuilder.setTimeStamp(new + // DateAndTime(InternalDateAndTime.getTestpattern().getValue())); + Method setTimeStamp = plbClazz.getDeclaredMethod("setTimeStamp", DateAndTime.class); + setTimeStamp.setAccessible(true); + setTimeStamp.invoke(currentProblemListBuilder, + new DateAndTime(InternalDateAndTime.getTestpattern().getValue())); + + // AirInterfaceCurrentProblemsBuilder airInterfaceCurrentProblemsBuilder = new + // AirInterfaceCurrentProblemsBuilder(); + Builder<R> airInterfaceCurrentProblemsBuilder = rbClazz.newInstance(); + // airInterfaceCurrentProblemsBuilder.setCurrentProblemList(Arrays.asList(currentProblemListBuilder.build())); + Method setCurrentProblemList = rbClazz.getDeclaredMethod("setCurrentProblemList", List.class); + setCurrentProblemList.setAccessible(true); + setCurrentProblemList.invoke(airInterfaceCurrentProblemsBuilder, + Arrays.asList(currentProblemListBuilder.build())); + + return airInterfaceCurrentProblemsBuilder.build(); + } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | SecurityException + | IllegalArgumentException | InvocationTargetException e) { + e.printStackTrace(); + return null; + } + } + + public ProblemNotification getProblemNotification() { + ProblemNotificationBuilder b = new ProblemNotificationBuilder(); + b.setProblem("ProblemNotification"); + b.setSeverity(SeverityType.Minor); + b.setCounter(2); + b.setObjectIdRef(new UniversalId("test")); + b.setTimeStamp(new DateAndTime(InternalDateAndTime.getTestpattern().getValue())); + return b.build(); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/Model1211pObjectMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/Model1211pObjectMock.java new file mode 100644 index 000000000..b042fd82a --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/Model1211pObjectMock.java @@ -0,0 +1,143 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= ONAP : ccsdk + * feature sdnr wt ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================ Licensed under + * the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.List; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.onfcore.container.ONFLayerProtocolName; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.onfcore.wrapperc.WrapperMicrowaveModelRev181010; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.util.InternalDateAndTime; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElementBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ProblemNotification; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ProblemNotificationBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwAirInterfaceDiversityPac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwHybridMwStructurePac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwPureEthernetStructurePac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwAirInterfacePac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwEthernetContainerPac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwTdmContainerPac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.SeverityType; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.AvailableCapabilitiesBuilder; +import org.opendaylight.yangtools.concepts.Builder; + +public class Model1211pObjectMock { + + public NetconfNode getNetconfNode() { + + AvailableCapabilitiesBuilder availableCapabilitiesBuilder = + ObjectBuilder.getAvailableCababilitiesList(NetworkElement.QNAME, WrapperMicrowaveModelRev181010.QNAME); + + NetconfNodeBuilder nNodeBuilder = new NetconfNodeBuilder(); + nNodeBuilder.setAvailableCapabilities(availableCapabilitiesBuilder.build()); + nNodeBuilder.setConnectionStatus(ConnectionStatus.Connected); + nNodeBuilder.setHost(new Host(new IpAddress(new Ipv4Address("1.2.3.4")))); + nNodeBuilder.setPort(new PortNumber(2230)); + // build + NetconfNode nNode = nNodeBuilder.build(); + return nNode; + } + + public NetworkElement getNetworkElement() { + + NetworkElementBuilder networkElementBuilder = new NetworkElementBuilder(); + + // ---- LTP List + networkElementBuilder.setLtp(Arrays.asList( + ObjectBuilder.getLtp(MwAirInterfacePac.class, MwAirInterfacePac.QNAME, + ONFLayerProtocolName.MWAirInterface), + ObjectBuilder.getLtp(MwEthernetContainerPac.class, MwEthernetContainerPac.QNAME, + ONFLayerProtocolName.EthernetContainer12), + ObjectBuilder.getLtp(MwTdmContainerPac.class, MwTdmContainerPac.QNAME, + ONFLayerProtocolName.TDMContainer), + ObjectBuilder.getLtp(MwHybridMwStructurePac.class, MwHybridMwStructurePac.QNAME, + ONFLayerProtocolName.Structure), + ObjectBuilder.getLtp(MwAirInterfaceDiversityPac.class, MwAirInterfaceDiversityPac.QNAME, + ONFLayerProtocolName.Structure), + ObjectBuilder.getLtp(MwPureEthernetStructurePac.class, MwPureEthernetStructurePac.QNAME, + ONFLayerProtocolName.Structure))); + // build + NetworkElement networkElement = networkElementBuilder.build(); + return networkElement; + } + + public <R, RB extends Builder<R>, PLB extends Builder<?>> R getCurrentProblems(Class<PLB> plbClazz, + Class<RB> rbClazz) { + + try { + PLB currentProblemListBuilder = plbClazz.newInstance(); + + // currentProblemListBuilder.setProblemName("Problem1"); + Method setProblemName = plbClazz.getDeclaredMethod("setProblemName", String.class); + setProblemName.setAccessible(true); + setProblemName.invoke(currentProblemListBuilder, "Problem1"); + + // currentProblemListBuilder.setProblemSeverity(SeverityType.Critical); + Method setProblemSeverity = plbClazz.getDeclaredMethod("setProblemSeverity", SeverityType.class); + setProblemSeverity.setAccessible(true); + setProblemSeverity.invoke(currentProblemListBuilder, SeverityType.Critical); + + // currentProblemListBuilder.setSequenceNumber(1); + Method setSequenceNumber = plbClazz.getDeclaredMethod("setSequenceNumber", Integer.class); + setSequenceNumber.setAccessible(true); + setSequenceNumber.invoke(currentProblemListBuilder, 1); + + // currentProblemListBuilder.setTimeStamp(new + // DateAndTime(InternalDateAndTime.getTestpattern().getValue())); + Method setTimeStamp = plbClazz.getDeclaredMethod("setTimeStamp", DateAndTime.class); + setTimeStamp.setAccessible(true); + setTimeStamp.invoke(currentProblemListBuilder, + new DateAndTime(InternalDateAndTime.getTestpattern().getValue())); + + // AirInterfaceCurrentProblemsBuilder airInterfaceCurrentProblemsBuilder = new + // AirInterfaceCurrentProblemsBuilder(); + Builder<R> airInterfaceCurrentProblemsBuilder = rbClazz.newInstance(); + // airInterfaceCurrentProblemsBuilder.setCurrentProblemList(Arrays.asList(currentProblemListBuilder.build())); + Method setCurrentProblemList = rbClazz.getDeclaredMethod("setCurrentProblemList", List.class); + setCurrentProblemList.setAccessible(true); + setCurrentProblemList.invoke(airInterfaceCurrentProblemsBuilder, + Arrays.asList(currentProblemListBuilder.build())); + + return airInterfaceCurrentProblemsBuilder.build(); + } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | SecurityException + | IllegalArgumentException | InvocationTargetException e) { + e.printStackTrace(); + return null; + } + } + + public ProblemNotification getProblemNotification() { + ProblemNotificationBuilder b = new ProblemNotificationBuilder(); + b.setProblem("ProblemNotification"); + b.setSeverity(SeverityType.Minor); + b.setCounter(2); + b.setObjectIdRef(new UniversalId("test")); + b.setTimeStamp(new DateAndTime(InternalDateAndTime.getTestpattern().getValue())); + return b.build(); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/Model12ObjectMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/Model12ObjectMock.java new file mode 100644 index 000000000..8383812ef --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/Model12ObjectMock.java @@ -0,0 +1,165 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.List; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.onfcore.container.ONFLayerProtocolName; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.onfcore.wrapperc.WrapperMicrowaveModelRev170324; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.util.InternalDateAndTime; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElementBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwAirInterfaceDiversityPac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwAirInterfacePac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwEthernetContainerPac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwHybridMwStructurePac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwPureEthernetStructurePac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwTdmContainerPac; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ProblemNotification; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ProblemNotificationBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.SeverityType; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.current.problems.g.CurrentProblemListBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceCurrentProblems; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceCurrentProblemsBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.AvailableCapabilitiesBuilder; +import org.opendaylight.yangtools.concepts.Builder; + +public class Model12ObjectMock { + + public NetconfNode getNetconfNode() { + + AvailableCapabilitiesBuilder availableCapabilitiesBuilder = + ObjectBuilder.getAvailableCababilitiesList(NetworkElement.QNAME, WrapperMicrowaveModelRev170324.QNAME); + + NetconfNodeBuilder nNodeBuilder = new NetconfNodeBuilder(); + nNodeBuilder.setAvailableCapabilities(availableCapabilitiesBuilder.build()); + nNodeBuilder.setConnectionStatus(ConnectionStatus.Connected); + nNodeBuilder.setHost(new Host(new IpAddress(new Ipv4Address("1.2.3.4")))); + nNodeBuilder.setPort(new PortNumber(2230)); + // build + NetconfNode nNode = nNodeBuilder.build(); + return nNode; + } + + public NetworkElement getNetworkElement() { + + NetworkElementBuilder networkElementBuilder = new NetworkElementBuilder(); + + // ---- LTP List + networkElementBuilder.setLtp(Arrays.asList( + ObjectBuilder.getLtp(MwAirInterfacePac.class, MwAirInterfacePac.QNAME, ONFLayerProtocolName.MWAirInterface), + ObjectBuilder.getLtp(MwEthernetContainerPac.class, MwEthernetContainerPac.QNAME, + ONFLayerProtocolName.EthernetContainer12), + ObjectBuilder.getLtp(MwTdmContainerPac.class, MwTdmContainerPac.QNAME, ONFLayerProtocolName.TDMContainer), + ObjectBuilder.getLtp(MwHybridMwStructurePac.class, MwHybridMwStructurePac.QNAME, ONFLayerProtocolName.Structure), + ObjectBuilder.getLtp(MwAirInterfaceDiversityPac.class, MwAirInterfaceDiversityPac.QNAME, ONFLayerProtocolName.Structure), + ObjectBuilder.getLtp(MwPureEthernetStructurePac.class, MwPureEthernetStructurePac.QNAME, ONFLayerProtocolName.Structure) + )); + // build + NetworkElement networkElement = networkElementBuilder.build(); + return networkElement; + } + + public AirInterfaceCurrentProblems getMwAirInterfacePacCurrentProblems() { + /* + * CurrentProblemListBuilder currentProblemListBuilder = new CurrentProblemListBuilder(); + * currentProblemListBuilder.setProblemName("Problem1"); + * currentProblemListBuilder.setProblemSeverity(SeverityType.Critical); + * currentProblemListBuilder.setSequenceNumber(1); currentProblemListBuilder.setTimeStamp(new + * DateAndTime(InternalDateAndTime.getTestpattern().getValue())); + * + * AirInterfaceCurrentProblemsBuilder airInterfaceCurrentProblemsBuilder = new + * AirInterfaceCurrentProblemsBuilder(); + * airInterfaceCurrentProblemsBuilder.setCurrentProblemList(Arrays.asList(currentProblemListBuilder. + * build())); + * + * return airInterfaceCurrentProblemsBuilder.build(); + */ + return getCurrentProblems(CurrentProblemListBuilder.class, AirInterfaceCurrentProblemsBuilder.class); + } + + public <R, RB extends Builder<R>, PLB extends Builder<?>> R getCurrentProblems(Class<PLB> plbClazz, + Class<RB> rbClazz) { + + try { + PLB currentProblemListBuilder = plbClazz.newInstance(); + + // currentProblemListBuilder.setProblemName("Problem1"); + Method setProblemName = plbClazz.getDeclaredMethod("setProblemName", String.class); + setProblemName.setAccessible(true); + setProblemName.invoke(currentProblemListBuilder, "Problem1"); + + // currentProblemListBuilder.setProblemSeverity(SeverityType.Critical); + Method setProblemSeverity = plbClazz.getDeclaredMethod("setProblemSeverity", SeverityType.class); + setProblemSeverity.setAccessible(true); + setProblemSeverity.invoke(currentProblemListBuilder, SeverityType.Critical); + + // currentProblemListBuilder.setSequenceNumber(1); + Method setSequenceNumber = plbClazz.getDeclaredMethod("setSequenceNumber", Integer.class); + setSequenceNumber.setAccessible(true); + setSequenceNumber.invoke(currentProblemListBuilder, 1); + + // currentProblemListBuilder.setTimeStamp(new + // DateAndTime(InternalDateAndTime.getTestpattern().getValue())); + Method setTimeStamp = plbClazz.getDeclaredMethod("setTimeStamp", DateAndTime.class); + setTimeStamp.setAccessible(true); + setTimeStamp.invoke(currentProblemListBuilder, + new DateAndTime(InternalDateAndTime.getTestpattern().getValue())); + + // AirInterfaceCurrentProblemsBuilder airInterfaceCurrentProblemsBuilder = new + // AirInterfaceCurrentProblemsBuilder(); + Builder<R> airInterfaceCurrentProblemsBuilder = rbClazz.newInstance(); + // airInterfaceCurrentProblemsBuilder.setCurrentProblemList(Arrays.asList(currentProblemListBuilder.build())); + Method setCurrentProblemList = rbClazz.getDeclaredMethod("setCurrentProblemList", List.class); + setCurrentProblemList.setAccessible(true); + setCurrentProblemList.invoke(airInterfaceCurrentProblemsBuilder, + Arrays.asList(currentProblemListBuilder.build())); + + return airInterfaceCurrentProblemsBuilder.build(); + } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | SecurityException + | IllegalArgumentException | InvocationTargetException e) { + e.printStackTrace(); + return null; + } + } + + public ProblemNotification getProblemNotification() { + ProblemNotificationBuilder b = new ProblemNotificationBuilder(); + b.setProblem("ProblemNotification"); + b.setSeverity(SeverityType.Minor); + b.setCounter(2); + b.setObjectIdRef(new UniversalId("test")); + b.setTimeStamp(new DateAndTime(InternalDateAndTime.getTestpattern().getValue())); + return b.build(); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/NetconfTimeStampOld.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/NetconfTimeStampOld.java new file mode 100644 index 000000000..b81d40d92 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/NetconfTimeStampOld.java @@ -0,0 +1,285 @@ +/******************************************************************************* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.TimeZone; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Function is handling the NETCONF and the format used by database and restconf communication. + * + * Input supported for the formats used in NETCONF messages: + * + * Format1 ISO 8601 2017-01-18T11:44:49.482-05:00 + * + * Format2 NETCONF - pattern from ietf-yang-types "2013-07-15" Pattern: + * "\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[\+\-](\d{2}):(\d{2}))" + * + * Format3 NETCONF DateAndTime CoreModel-CoreFoundationModule-TypeDefinitions vom + * 2016-07-01 Example1: 20170118114449.1Z Example2: 20170118114449.1-0500 Pattern: + * "\d{4}\d{2}\d{2}\d{2}\d{2}\d{2}.\d+?(Z|[\+\-](\d{2})(\d{2}))" typedef DateAndTime { description + * "This primitive type defines the date and time according to the following structure: + * 'yyyyMMddhhmmss.s[Z|{+|-}HHMm]' where: yyyy '0000'..'9999' year MM '01'..'12' month dd '01'..'31' + * day hh '00'..'23' hour mm '00'..'59' minute ss '00'..'59' second s '.0'..'.9' tenth of second + * (set to '.0' if EMS or NE cannot support this granularity) Z 'Z' indicates UTC (rather than local + * time) {+|-} '+' or '-' delta from UTC HH '00'..'23' time zone difference in hours Mm '00'..'59' + * time zone difference in minutes."; type string; } Format4 E/// specific Example1: + * 2017-01-23T13:32:38-05:00 Example2: 2017-01-23T13:32-05:00 + * + * Input formats netconfTime as String according the formats given above + * + * Return format is String in ISO8601 Format for database and presentation. + * + * Example formats: + * 1) ISO8601. Example 2017-01-18T11:44:49.482-05:00 + * 2) Microwave ONF. Examples 20170118114449.1Z, 20170118114449.1-0500 + * 3.1) Ericson. Example: 2017-01-23T13:32:38-05:00 + * 3.2) Ericson. Example: 2017-01-23T13:32-05:00 + * Always 10 Groups, + * 1:Year 2:Month 3:day 4:Hour 5:minute 6:optional sec 7:optional ms 8:optional Z or 9:offset + * signedhour 10:min + * + * Template: + * private static final NetconfTimeStamp NETCONFTIME_CONVERTER = NetconfTimeStamp.getConverter(); + */ + +public class NetconfTimeStampOld { + private static final Logger LOG = LoggerFactory.getLogger(NetconfTimeStampOld.class); + + private static final NetconfTimeStampOld CONVERTER = new NetconfTimeStampOld(); + + private final SimpleDateFormat dateFormatResult = init("yyyy-MM-dd'T'HH:mm:ss.S'Z'", TimeZone.getTimeZone("GMT")); + private final SimpleDateFormat dateFormatConvert = init("yyyy-MM-dd HH:mm:ss.S", TimeZone.getTimeZone("GMT")); + private static int MILLISECONDSDIGITS = 3; // Digits of milliseconds in dateFormatResult + private static String MILLISECONDZEROS = "000"; // String with zeros for milliseconds in dateFormatResult + private static final Pattern dateNetconfPatter = Pattern.compile( + "(\\d{4})-?(\\d{2})-?(\\d{2})T?(\\d{2}):?(\\d{2})(?:(?::?)(\\d{2}))?(?:.(\\d+))?(?:(Z)|([+-]\\d{2}):?(\\d{2}))"); + + /* + * ------------------------------------ Public function + */ + + /** + * Use static access + */ + private NetconfTimeStampOld() { + } + + /** + * Use this function to get the converter + * @return global converter + */ + public static NetconfTimeStampOld getConverter() { + return CONVERTER; + } + + /** + * Get actual timestamp as NETCONF specific type NETCONF/YANG 1.0 Format + * + * @return String with Date in NETCONF/YANG Format Version 1.0. + */ + public String getTimeStampAsNetconfString() { + return this.getRightFormattedDate(new Date().getTime()); + } + + /** + * Get actual timestamp as NETCONF specific type NETCONF/YANG 1.0 Format + + * @return String with Date in NETCONF/YANG Format Version 1.0. + */ + public String getTimeStampAsNetconfString(Date date) { + return getRightFormattedDate(date.getTime()); + } + /** + * Get actual timestamp as NETCONF specific type NETCONF/YANG 1.0 Format in GMT + * + * @return DateAndTime Type 1.0. Date in NETCONF/YANG Format Version 1.0. + */ + public DateAndTime getTimeStamp() { + return DateAndTime.getDefaultInstance(getTimeStampAsNetconfString()); + } + + /** + * Get time from date as NETCONF specific type NETCONF/YANG 1.0 Format in GMT + * @param date specifying the date and time + * @return DateAndTime Type 1.0. Date in NETCONF/YANG Format Version 1.0. + */ + public DateAndTime getTimeStamp(Date date) { + return DateAndTime.getDefaultInstance(getTimeStampAsNetconfString(date)); + } + + + /** + * Return the String with a NETCONF time converted to long + * + * @param netconfTime as String according the formats given above + * @return Epoch milliseconds + * @throws IllegalArgumentException In case of no compliant time format definition for the string + * @throws ParseException Time parsing failed + */ + public long getTimeStampFromNetconfAsMilliseconds(String netconfTime) + throws IllegalArgumentException { + Matcher m = dateNetconfPatter.matcher(netconfTime); + // According to specified matches there have to be 10 parameter + if (m.matches() && m.groupCount() == 10) { + // Convert now + synchronized(dateFormatConvert) { + long utcMillis; + try { + utcMillis = dateFormatConvert.parse(getTimeAsNormalizedString(m, m.group(6), m.group(7))).getTime() + - getTimezoneOffsetMilliseconds(m.group(9), m.group(10)); + return utcMillis; + } catch (ParseException e) { + throw new IllegalArgumentException("Parse problem for NETCONF data string: " + netconfTime); + } + } + } else { + throw new IllegalArgumentException("No pattern for NETCONF data string: " + netconfTime); + } + } + + /** + * Deliver String result. + * + * @param netconfTime as String according the formats given above + * @return If successful: String in ISO8601 Format for database and presentation. If "wrong formed + * input" the Input string with the prefix "Mailformed date" is delivered back. + */ + public String getTimeStampFromNetconf(String netconfTime) { + Matcher m = dateNetconfPatter.matcher(netconfTime); + // According to spezified matches there have to be 10 parameter + if (m.matches() && m.groupCount() == 10) { + // Convert now + try { + synchronized(dateFormatConvert) { + long utcMillis = dateFormatConvert.parse(getTimeAsNormalizedString(m, m.group(6), m.group(7))).getTime() + - getTimezoneOffsetMilliseconds(m.group(9), m.group(10)); + return getRightFormattedDate(utcMillis); + } + } catch (ParseException e) { + LOG.info(e.getMessage()); + } catch (IllegalArgumentException e) { + LOG.info(e.getMessage()); + } + } + LOG.debug("No pattern for NETCONF data string: {}", netconfTime); + return "Malformed date: " + netconfTime; // Error handling + } + + /*------------------------------------------- + * Private and static functions + */ + /** + * Convert timeZone parameter in format [+-]/d/d:/d/d into milliseconds + * + * @param m Index 9 with "+/-" and hour string or null for UTZ, Index 10 with minutes + * @return long milliseconds of TimeZoneOffset + * @throws IllegalArgumentException If parameters are wrong + */ + private static long getTimezoneOffsetMilliseconds(String timeZoneHour, String timeZoneMinute) + throws IllegalArgumentException { + // -- Calculate timezone specific offset + long timeZoneOffsetMilliseconds = 0; + if (timeZoneHour != null) { + // Time zone offset in hours and minutes + int tzHour = 0; + int tzMinutes = 0; + tzHour = Integer.valueOf(timeZoneHour); + if (timeZoneMinute != null) { + tzMinutes = Integer.valueOf(timeZoneMinute); + } else { + throw new IllegalArgumentException("Problem in Netconf Time format timeZone minutes parameter."); + } + timeZoneOffsetMilliseconds = (tzHour * 60 + (tzHour > 0 ? tzMinutes : -tzMinutes)) * 60000L; + } + return timeZoneOffsetMilliseconds; + } + + /** + * Convert parameters to String with year .. minutes and optional Seconds and .. milliseconds + * + * @param m Matcher with parsed date + * @param secString Seconds as String or null + * @param msString Milliseconds as String or null + * @return Normalized time string + */ + private static String getTimeAsNormalizedString(Matcher m, String secString, String msString) { + // -- Create time as normalized string + StringBuffer sb = new StringBuffer(); + sb.append(m.group(1)); // year + sb.append('-'); + sb.append(m.group(2)); // Month + sb.append('-'); + sb.append(m.group(3)); // Day + sb.append(' '); + sb.append(m.group(4)); // Hour 0-23 + sb.append(':'); + sb.append(m.group(5)); // Minute + sb.append(':'); + sb.append(secString != null ? secString : "00"); // Seconds (optional) + sb.append('.'); + if (msString == null) { // Milliseconds optional + sb.append(MILLISECONDZEROS); + } else if (msString.length() <= MILLISECONDSDIGITS) { + sb.append(msString); // Millisecond + sb.append(MILLISECONDZEROS.substring(0, MILLISECONDSDIGITS - msString.length())); + } else { + sb.append(msString.substring(0, MILLISECONDSDIGITS)); // Only first Three + } + return sb.toString(); + } + + /** + * Deliver format in a way that milliseconds are correct. + * + * @param dateMillis Date as milliseconds in Java definition + * @return String + */ + private String getRightFormattedDate(long dateMillis) { + long tenthOfSeconds = dateMillis % 1000 / 100L; // Extract 100 milliseconds + long base = dateMillis / 1000L * 1000L; // Cut milliseconds to 000 + Date newDate = new Date(base + tenthOfSeconds); + synchronized(dateFormatResult) { + return dateFormatResult.format(newDate); + } + } + + /** + * Static initialization + */ + private static SimpleDateFormat init(String format, TimeZone zone) { + if (zone == null) { + throw new ExceptionInInitializerError(); + } else { + SimpleDateFormat dateFormat; + dateFormat = new SimpleDateFormat(format); + dateFormat.setTimeZone(zone); + return dateFormat; + } + } + + + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ObjectBuilder.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ObjectBuilder.java new file mode 100644 index 000000000..cc33060f2 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ObjectBuilder.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.onfcore.container.ONFLayerProtocolName; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.LayerProtocolName; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.extension.g.Extension; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.extension.g.ExtensionBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.LpBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.LpKey; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.network.element.Ltp; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.network.element.LtpBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.network.element.LtpKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.AvailableCapabilitiesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapabilityBuilder; +import org.opendaylight.yangtools.yang.common.QName; + +public class ObjectBuilder { + + static AvailableCapabilitiesBuilder getAvailableCababilitiesList(QName... qNames) { + return getAvailableCababilitiesList(null, qNames); + } + + static AvailableCapabilitiesBuilder getAvailableCababilitiesList(AvailableCapabilitiesBuilder valueBuilder, + QName... qNames) { + if (valueBuilder == null) { + valueBuilder = new AvailableCapabilitiesBuilder(); + } + List<AvailableCapability> capabilites = new ArrayList<>(); + for (QName s : qNames) { + AvailableCapabilityBuilder capabilityBuilder = new AvailableCapabilityBuilder(); + capabilityBuilder.setCapability(s.toString()); + capabilites.add(capabilityBuilder.build()); + } + valueBuilder.setAvailableCapability(capabilites); + return valueBuilder; + } + + static Extension getExtension(String valueName, String value) { + ExtensionBuilder lpExtension = new ExtensionBuilder(); + lpExtension.setValueName(valueName); + lpExtension.setValue(value); + return lpExtension.build(); + } + + static Ltp getLtp(Class<?> clazz, QName qname, ONFLayerProtocolName onflayerProtocolName) { + String baseName = clazz.getSimpleName(); + LpBuilder lpBuilder = new LpBuilder(); + lpBuilder.withKey(new LpKey(new UniversalId(baseName + "LpKey"))); + lpBuilder.setLayerProtocolName(new LayerProtocolName(onflayerProtocolName.getValue())); + lpBuilder.setExtension(Arrays.asList(getExtension("capability", qname.getNamespace().toString()), + getExtension("revision", qname.getRevision().get().toString()), + getExtension("conditional-package", qname.getLocalName()))); + + LtpBuilder ltpBuilder = new LtpBuilder(); + ltpBuilder.setUuid(new UniversalId(baseName)); + ltpBuilder.setLp(Arrays.asList(lpBuilder.build())); + ltpBuilder.withKey(new LtpKey(new UniversalId(baseName + "LtpKey"))); + return ltpBuilder.build(); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ReadOnlyTransactionMountpoint1211Mock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ReadOnlyTransactionMountpoint1211Mock.java new file mode 100644 index 000000000..327472703 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ReadOnlyTransactionMountpoint1211Mock.java @@ -0,0 +1,163 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util; + +import com.google.common.util.concurrent.FluentFuture; +import java.util.Optional; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.mdsal.binding.api.NotificationService; +import org.opendaylight.mdsal.binding.api.ReadTransaction; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MicrowaveModelListener; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; +import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.NotificationListener; + +/** + * @author herbert + * + */ +@SuppressWarnings("deprecation") +public class ReadOnlyTransactionMountpoint1211Mock implements ReadTransaction, NotificationService { + + private final Model1211ObjectMock mock = new Model1211ObjectMock(); + private MicrowaveModelListener modelListener; + + @Override + public Object getIdentifier() { + return null; + } + + public Model1211ObjectMock getMock() { + return mock; + } + + @SuppressWarnings("unchecked") + @Override + public <T extends DataObject> @NonNull FluentFuture<java.util.Optional<T>> read(@NonNull LogicalDatastoreType store, + @NonNull InstanceIdentifier<T> path) { + + System.out.println("READ: " + path + " Store: " + store); + + Optional<T> res1; + + if (path.getTargetType().equals(Node.class)) { + System.out.println("Deliver " + path.getTargetType()); + NetconfNode nNode = mock.getNetconfNode(); + NodeBuilder nodeBuilder = new NodeBuilder(); + nodeBuilder.addAugmentation(NetconfNode.class, nNode); + Node node = nodeBuilder.build(); + res1 = (Optional<T>) Optional.of(node); + + } else if (path.getTargetType().equals(NetworkElement.class)) { + System.out.println("Deliver " + path.getTargetType()); + NetworkElement ne = mock.getNetworkElement(); + res1 = (Optional<T>) Optional.of(ne); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.pac.AirInterfaceCurrentProblems.class)) { + // MwAirInterfacePac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.pac.AirInterfaceCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblems.class)) { + // MwAirInterfaceDiversityPac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.diversity.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblems.class)) { + // MwHybridMwStructurePac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.hybrid.mw.structure.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblems.class)) { + // MwAirInterfaceDiversityPac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.diversity.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblems.class)) { + // MwPureEthernetStructurePac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.pure.ethernet.structure.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.ethernet.container.pac.EthernetContainerCurrentProblems.class)) { + //EthernetContainerCurrentProblems + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ethernet.container.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.ethernet.container.pac.EthernetContainerCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.tdm.container.pac.TdmContainerCurrentProblems.class)) { + // TdmContainerCurrentProblems + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.tdm.container.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.tdm.container.pac.TdmContainerCurrentProblemsBuilder.class)); + + } else { + System.err.println("Nothing to deliver for" + path.getTargetType()); + res1 = Optional.empty(); + } + + FluentFuture<Optional<T>> res = FluentFuture.from(com.google.common.util.concurrent.Futures.immediateFuture(res1)); + return res; + + } + + + @Override + public void close() {} + + @Override + public <T extends NotificationListener> ListenerRegistration<T> registerNotificationListener(T listener) { + this.modelListener = (MicrowaveModelListener)listener; + return null; + } + + + public void sendProblemNotification() { + System.out.println("Send out Problemnotification"); + modelListener.onProblemNotification(mock.getProblemNotification()); + } + + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ReadOnlyTransactionMountpoint1211pMock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ReadOnlyTransactionMountpoint1211pMock.java new file mode 100644 index 000000000..7a074ce30 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ReadOnlyTransactionMountpoint1211pMock.java @@ -0,0 +1,164 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util; + +import com.google.common.util.concurrent.FluentFuture; +import java.util.Optional; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.mdsal.binding.api.NotificationService; +import org.opendaylight.mdsal.binding.api.ReadTransaction; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MicrowaveModelListener; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; +import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.NotificationListener; + +/** + * @author herbert + * + */ +@SuppressWarnings("deprecation") +public class ReadOnlyTransactionMountpoint1211pMock implements ReadTransaction, NotificationService { + + private final Model1211pObjectMock mock = new Model1211pObjectMock(); + private MicrowaveModelListener modelListener; + + @Override + public Object getIdentifier() { + return null; + } + + public Model1211pObjectMock getMock() { + return mock; + } + + @SuppressWarnings("unchecked") + + @Override + public <T extends DataObject> @NonNull FluentFuture<java.util.Optional<T>> read(@NonNull LogicalDatastoreType store, + @NonNull InstanceIdentifier<T> path) { + + System.out.println("READ: " + path + " Store: " + store); + + Optional<T> res1; + + if (path.getTargetType().equals(Node.class)) { + System.out.println("Deliver " + path.getTargetType()); + NetconfNode nNode = mock.getNetconfNode(); + NodeBuilder nodeBuilder = new NodeBuilder(); + nodeBuilder.addAugmentation(NetconfNode.class, nNode); + Node node = nodeBuilder.build(); + res1 = (Optional<T>) Optional.of(node); + + } else if (path.getTargetType().equals(NetworkElement.class)) { + System.out.println("Deliver " + path.getTargetType()); + NetworkElement ne = mock.getNetworkElement(); + res1 = (Optional<T>) Optional.of(ne); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.pac.AirInterfaceCurrentProblems.class)) { + // MwAirInterfacePac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.pac.AirInterfaceCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblems.class)) { + // MwAirInterfaceDiversityPac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.diversity.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblems.class)) { + // MwHybridMwStructurePac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.hybrid.mw.structure.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblems.class)) { + // MwAirInterfaceDiversityPac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.diversity.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblems.class)) { + // MwPureEthernetStructurePac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.pure.ethernet.structure.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblemsBuilder.class)); + + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.ethernet.container.pac.EthernetContainerCurrentProblems.class)) { + //EthernetContainerCurrentProblems + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ethernet.container.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.ethernet.container.pac.EthernetContainerCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.tdm.container.pac.TdmContainerCurrentProblems.class)) { + // TdmContainerCurrentProblems + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.tdm.container.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.tdm.container.pac.TdmContainerCurrentProblemsBuilder.class)); + + } else { + System.err.println("Nothing to deliver for" + path.getTargetType()); + res1 = Optional.empty(); + } + + FluentFuture<Optional<T>> res = FluentFuture.from(com.google.common.util.concurrent.Futures.immediateFuture(res1)); + return res; + + } + + + @Override + public void close() {} + + @Override + public <T extends NotificationListener> ListenerRegistration<T> registerNotificationListener(T listener) { + this.modelListener = (MicrowaveModelListener)listener; + return null; + } + + + public void sendProblemNotification() { + System.out.println("Send out Problemnotification"); + modelListener.onProblemNotification(mock.getProblemNotification()); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ReadOnlyTransactionMountpoint12Mock.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ReadOnlyTransactionMountpoint12Mock.java new file mode 100644 index 000000000..d27330328 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ReadOnlyTransactionMountpoint12Mock.java @@ -0,0 +1,154 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util; + +import com.google.common.util.concurrent.FluentFuture; +import java.util.Optional; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.mdsal.binding.api.NotificationService; +import org.opendaylight.mdsal.binding.api.ReadTransaction; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement; +import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MicrowaveModelListener; +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; +import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.NotificationListener; + +/** + * @author herbert + * + */ +public class ReadOnlyTransactionMountpoint12Mock implements ReadTransaction, NotificationService { + + private final Model12ObjectMock mock = new Model12ObjectMock(); + private MicrowaveModelListener modelListener; + + @Override + public Object getIdentifier() { + return null; + } + + public Model12ObjectMock getMock() { + return mock; + } + + @SuppressWarnings("unchecked") + @Override + public <T extends DataObject> @NonNull FluentFuture<java.util.Optional<T>> read(@NonNull LogicalDatastoreType store, + @NonNull InstanceIdentifier<T> path) { + + System.out.println("READ: " + path + " Store: " + store); + + Optional<T> res1; + + if (path.getTargetType().equals(Node.class)) { + System.out.println("Deliver " + path.getTargetType()); + NetconfNode nNode = mock.getNetconfNode(); + NodeBuilder nodeBuilder = new NodeBuilder(); + nodeBuilder.addAugmentation(NetconfNode.class, nNode); + Node node = nodeBuilder.build(); + res1 = (Optional<T>) Optional.of(node); + + } else if (path.getTargetType().equals(NetworkElement.class)) { + System.out.println("Deliver " + path.getTargetType()); + NetworkElement ne = mock.getNetworkElement(); + res1 = (Optional<T>) Optional.of(ne); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceCurrentProblems.class)) { + // MwAirInterfacePac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblems.class)) { + // MwHybridMwStructurePac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.hybrid.mw.structure.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblems.class)) { + // MwAirInterfaceDiversityPac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.diversity.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblems.class)) { + // MwPureEthernetStructurePac + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.pure.ethernet.structure.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.ethernet.container.pac.EthernetContainerCurrentProblems.class)) { + //EthernetContainerCurrentProblems + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ethernet.container.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.ethernet.container.pac.EthernetContainerCurrentProblemsBuilder.class)); + + } else if (path.getTargetType().equals( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.tdm.container.pac.TdmContainerCurrentProblems.class)) { + // TdmContainerCurrentProblems + System.out.println("Deliver " + path.getTargetType()); + res1 = (Optional<T>) Optional.of(mock.getCurrentProblems( + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.tdm.container.current.problems.g.CurrentProblemListBuilder.class, + org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.tdm.container.pac.TdmContainerCurrentProblemsBuilder.class)); + + } else { + System.err.println("Nothing to deliver for" + path.getTargetType()); + res1 = Optional.empty(); + } + FluentFuture<Optional<T>> res = FluentFuture.from(com.google.common.util.concurrent.Futures.immediateFuture(res1)); + return res; + + } + + @Override + public void close() {} + + @Override + public <T extends NotificationListener> ListenerRegistration<T> registerNotificationListener(T listener) { + this.modelListener = (MicrowaveModelListener)listener; + return null; + } + + + public void sendProblemNotification() { + System.out.println("Send out Problemnotification"); + modelListener.onProblemNotification( + mock.getProblemNotification() + ); + } + + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ResourceFileLoader.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ResourceFileLoader.java new file mode 100644 index 000000000..6c944e4c1 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ResourceFileLoader.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + ******************************************************************************/ + +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util; + +import java.io.File; + +public class ResourceFileLoader { + + public static File getFile(Object o, String fileName) { + ClassLoader classLoader = o.getClass().getClassLoader(); + return new File(classLoader.getResource(fileName).getFile()); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ZipFile.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ZipFile.java new file mode 100644 index 000000000..9a926fd64 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/test/util/ZipFile.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.test.util; + +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +public class ZipFile implements AutoCloseable { + + private final ZipOutputStream zos; + private final FileOutputStream fos; + + public ZipFile(String zipPath) throws FileNotFoundException { + fos = new FileOutputStream(zipPath); + zos = new ZipOutputStream(fos); + } + + public void addToZipFile(String fileName) throws FileNotFoundException, IOException { + + System.out.println("Writing '" + fileName + "' to zip file"); + + InputStream fis = ZipFile.class.getClassLoader().getResourceAsStream(fileName); + if (fis == null) { + throw new FileNotFoundException("Resource not found: " + fileName); + } + + ZipEntry zipEntry = new ZipEntry(fileName); + zos.putNextEntry(zipEntry); + byte[] bytes = new byte[1024]; + int length; + while ((length = fis.read(bytes)) >= 0) { + zos.write(bytes, 0, length); + } + zos.closeEntry(); + fis.close(); + } + + @Override + public void close() throws IOException { + zos.close(); + fos.close(); + } + +} diff --git a/sdnr/wt/devicemanager/provider/src/test/resources/aaiclient.properties b/sdnr/wt/devicemanager/provider/src/test/resources/aaiclient.properties new file mode 100644 index 000000000..3e4da05b0 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/resources/aaiclient.properties @@ -0,0 +1,165 @@ +###
+
+# ============LICENSE_START=======================================================
+
+# openECOMP : SDN-C
+
+# ================================================================================
+
+# Copyright (C) 2017 AT&T Intellectual Property. All rights
+
+# reserved.
+
+# ================================================================================
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+
+# you may not use this file except in compliance with the License.
+
+# You may obtain a copy of the License at
+
+#
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+#
+
+# Unless required by applicable law or agreed to in writing, software
+
+# distributed under the License is distributed on an "AS IS" BASIS,
+
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
+# See the License for the specific language governing permissions and
+
+# limitations under the License.
+
+# ============LICENSE_END=========================================================
+
+###
+
+
+
+#
+
+# Configuration file for A&AI Client
+
+#
+
+
+
+#
+
+# Certificate keystore and truststore
+
+#
+
+org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/logs/externals/data/stores/truststore.client.jks
+
+org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=adminadmin
+
+
+
+org.onap.ccsdk.sli.adaptors.aai.ssl.key=/opt/logs/externals/data/stores/keystore.client.p12
+
+org.onap.ccsdk.sli.adaptors.aai.ssl.key.psswd=adminadmin
+
+org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=true
+
+
+
+org.onap.ccsdk.sli.adaptors.aai.application=SDNC
+
+
+
+#org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-int1.test.att.com:8443
+
+org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-pwt3.ecomp.cci.att.com:8443
+
+
+
+connection.timeout=60000
+
+read.timeout=60000
+
+
+
+# query
+
+org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v13/search/sdn-zone-query
+
+org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v13/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name}
+
+org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v13/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3
+
+
+
+# named query
+
+org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query
+
+
+
+#update
+
+org.onap.ccsdk.sli.adaptors.aai.update=/aai/v13/actions/update
+
+
+
+# UBB Notify
+
+org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v13/actions/notify
+
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id}
+
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information
+
+
+
+# P-Interfaces
+
+org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces
+
+org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}
+
+
+
+# VNF IMAGES
+
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v13/service-design-and-creation/vnf-images
+
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v13/service-design-and-creation/vnf-images/vnf-image/{att-uuid}
+
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor}
+
+
+
+# service instance
+
+org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v13/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance
+
+org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}
+
+
+
+# VNF IMAGES QUERY
+
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor}
+
+
+
+#
+
+# Formatting
+
+#
+
+org.onap.ccsdk.sli.adaptors.aai.param.format=filter=%s:%s
+
+org.onap.ccsdk.sli.adaptors.aai.param.vnf_type=vnf-type
+
+org.onap.ccsdk.sli.adaptors.aai.param.physical.location.id=physical-location-id
+
+org.onap.ccsdk.sli.adaptors.aai.param.service.type=service-type
+
+
\ No newline at end of file diff --git a/sdnr/wt/devicemanager/provider/src/test/resources/captured-akka.conf b/sdnr/wt/devicemanager/provider/src/test/resources/captured-akka.conf new file mode 100644 index 000000000..8489f0905 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/resources/captured-akka.conf @@ -0,0 +1,72 @@ + +odl-cluster-data { + + akka { + loglevel = "" + remote { + netty.tcp { + hostname = "zltcdyh1arbc02.2f0377.dyh1a.tci.att.com" + port = 2550 + } + } + actor { + debug{ + autoreceive = on + lifecycle = on + unhandled = on + fsm = on + event-stream = on + } + } + cluster { + seed-nodes = ["akka.tcp://opendaylight-cluster-data@zltcdyh1arbc01.2f0377.dyh1a.tci.att.com:2550", "akka.tcp://opendaylight-cluster-data@zltcdyh1arbc02.2f0377.dyh1a.tci.att.com:2550", "akka.tcp://opendaylight-cluster-data@zltcdyh1arbc03.2f0377.dyh1a.tci.att.com:2550", "akka.tcp://opendaylight-cluster-data@zltcdyh1brbc01.f84e7a.dyh1b.tci.att.com:2550", "akka.tcp://opendaylight-cluster-data@zltcdyh1brbc02.f84e7a.dyh1b.tci.att.com:2550", "akka.tcp://opendaylight-cluster-data@zltcdyh1brbc03.f84e7a.dyh1b.tci.att.com:2550"] + seed-node-timeout = 15s + roles = ["member-2"] + + } + persistence { + journal-plugin-fallback { + circuit-breaker { + max-failures = 10 + call-timeout = 60s + reset-timeout = 30s + } + } + } + } +} + +odl-cluster-rpc { + + akka { + loglevel = "" + remote { + netty.tcp { + hostname = "zltcdyh1arbc02.2f0377.dyh1a.tci.att.com" + port = 2551 + } + } + actor { + debug{ + autoreceive = on + lifecycle = on + unhandled = on + fsm = on + event-stream = on + } + } + cluster { + seed-nodes = ["akka.tcp://odl-cluster-rpc@zltcdyh1arbc01.2f0377.dyh1a.tci.att.com:2551", "akka.tcp://odl-cluster-rpc@zltcdyh1arbc02.2f0377.dyh1a.tci.att.com:2551", "akka.tcp://odl-cluster-rpc@zltcdyh1arbc03.2f0377.dyh1a.tci.att.com:2551", "akka.tcp://odl-cluster-rpc@zltcdyh1brbc01.f84e7a.dyh1b.tci.att.com:2551", "akka.tcp://odl-cluster-rpc@zltcdyh1brbc02.f84e7a.dyh1b.tci.att.com:2551", "akka.tcp://odl-cluster-rpc@zltcdyh1brbc03.f84e7a.dyh1b.tci.att.com:2551"] + seed-node-timeout = 15s + } + persistence { + journal-plugin-fallback { + circuit-breaker { + max-failures = 10 + call-timeout = 60s + reset-timeout = 30s + } + } + } + } +} diff --git a/sdnr/wt/devicemanager/provider/src/test/resources/mediator-server.json b/sdnr/wt/devicemanager/provider/src/test/resources/mediator-server.json new file mode 100644 index 000000000..c7db70121 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/resources/mediator-server.json @@ -0,0 +1,18 @@ +[ + { + "uri":"/mwtn/mediator-server/_query", + "method":"DELETE", + "body":{"query":{"match_all":{}}} + }, + + { + "uri":"/mwtn/mediator-server/1", + "method":"POST", + "body":{ + "id": 1, + "name": "internal mediatorserver", + "url": "http://192.168.178.89:7070" + + } + } +] diff --git a/sdnr/wt/devicemanager/provider/src/test/resources/simplelogger.properties b/sdnr/wt/devicemanager/provider/src/test/resources/simplelogger.properties new file mode 100644 index 000000000..bdc3c1009 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/resources/simplelogger.properties @@ -0,0 +1,40 @@ +# SLF4J's SimpleLogger configuration file +# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err. + +# Default logging detail level for all instances of SimpleLogger. +# Must be one of ("trace", "debug", "info", "warn", or "error"). +# If not specified, defaults to "info". +org.slf4j.simpleLogger.defaultLogLevel=info + +# Logging detail level for a SimpleLogger instance named "xxx.yyy.zzz". +# Must be one of ("trace", "debug", "info", "warn", or "error"). +# If not specified, the default logging detail level is used. +# org.slf4j.simpleLogger.log.xxx.yyy=debug +org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager=info +org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.test=debug +org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.database=debug +org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.archiveservice=info +org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.base.internalTypes.Resources=info +org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.base.netconf.container=info + +# Set to true if you want the current date and time to be included in output messages. +# Default is false, and will output the number of milliseconds elapsed since startup. +#org.slf4j.simpleLogger.showDateTime=false + +# The date and time format to be used in the output messages. +# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat. +# If the format is not specified or is invalid, the default format is used. +# The default format is yyyy-MM-dd HH:mm:ss:SSS Z. +#org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z + +# Set to true if you want to output the current thread name. +# Defaults to true. +#org.slf4j.simpleLogger.showThreadName=true + +# Set to true if you want the Logger instance name to be included in output messages. +# Defaults to true. +#org.slf4j.simpleLogger.showLogName=true + +# Set to true if you want the last component of the name to be included in output messages. +# Defaults to false. +#org.slf4j.simpleLogger.showShortLogName=false diff --git a/sdnr/wt/devicemanager/provider/src/test/resources/test.properties b/sdnr/wt/devicemanager/provider/src/test/resources/test.properties new file mode 100644 index 000000000..de49c5893 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/resources/test.properties @@ -0,0 +1,55 @@ +[dcae] +dcaeUserCredentials=admin:admin +dcaeUrl=off +dcaeHeartbeatPeriodSeconds=120 +dcaeTestCollector=no + +[aots] +userPassword=passwd +soapurladd=off +soapaddtimeout=10 +soapinqtimeout=20 +userName=user +inqtemplate=inqreq.tmpl.xml +assignedto=userid +addtemplate=addreq.tmpl.xml +severitypassthrough=critical,major,minor,warning +systemuser=user +prt-offset=1200 +soapurlinq=off +#smtpHost= +#smtpPort= +#smtpUsername= +#smtpPassword= +#smtpSender= +#smtpReceivers= + +[es] +esCluster=sendateodl5 +#time limit to keep increasing data in database [in seconds] +#60*60*24*30 (30days) +esArchiveLimit=2592000 +#folder where removed data will be stored +esArchiveFolder=./backup +#interval to archive database [in seconds] +#60*60*24 (1day) +esArchiveInterval=86400 + +[aai] +#keep comment +aaiHeaders=["X-TransactionId: 9999"] +aaiUrl=http://localhost:81 +aaiUserCredentials=AAI:AAI +aaiDeleteOnMountpointRemove=false +aaiTrustAllCerts=false +aaiApiVersion=aai/v13 +aaiPropertiesFile=aaiclient.properties +aaiApplicationId=SDNR +aaiPcks12ClientCertFile=/opt/logs/externals/data/stores/keystore.client.p12 +aaiPcks12ClientCertPassphrase=adminadmin +aaiClientConnectionTimeout=30000 + +[pm] +pmCluster=sendateodl5 +pmEnabled=true + |