/* * Copyright © 2017-2018 AT&T Intellectual Property. * * 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. */ package org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.utils import org.junit.Assert import org.junit.Assert.assertTrue import org.junit.Test import org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.api.NetconfException import kotlin.test.fail class RpcMessageUtilsTest { @Test fun getConfig() { val checkString = ("" + "" + "Test-Filter-Content" + "") val messageId = "Test-Message-ID" val configType = NetconfDatastore.CANDIDATE.datastore val filterContent = "Test-Filter-Content" val result = NetconfMessageUtils.getConfig(messageId, configType, filterContent).replace("[\n\r\t]".toRegex(), "") assertTrue(NetconfMessageUtils.validateRPCXML(result)) Assert.assertEquals(checkString, result) } @Test fun editConfig() { val checkString = ("" + "" + "Test-Default-Operation" + "Test-Filter-Content") val messageId = "Test-Message-ID" val configType = NetconfDatastore.CANDIDATE.datastore val filterContent = "Test-Filter-Content" val defaultOperation = "Test-Default-Operation" val result = NetconfMessageUtils.editConfig(messageId, configType, defaultOperation, filterContent).replace("[\n\r\t]".toRegex(), "") assertTrue(NetconfMessageUtils.validateRPCXML(result)) Assert.assertEquals(checkString, result) } @Test fun validate() { val checkString = ("" + "" + "") val messageId = "Test-Message-ID" val configType = NetconfDatastore.CANDIDATE.datastore val result = NetconfMessageUtils.validate(messageId, configType).replace("[\n\r\t]".toRegex(), "") assertTrue(NetconfMessageUtils.validateRPCXML(result)) Assert.assertEquals(checkString, result) } @Test fun cancelCommit() { val checkString = ("" + "" + "" + "1234" + "") val messageId = "Test-Message-ID" val cancelCommitPersistId = NetconfMessageUtils.cancelCommit(messageId, "1234").replace("[\n\r\t]".toRegex(), "") assertTrue(NetconfMessageUtils.validateRPCXML(cancelCommitPersistId)) Assert.assertEquals(checkString, cancelCommitPersistId) } @Test fun cancelCommitNoPersistId() { val checkString = ("" + "" + "" + "") val messageId = "Test-Message-ID" val cancelCommitNoPersistId = NetconfMessageUtils.cancelCommit(messageId, "").replace("[\n\r\t]".toRegex(), "") assertTrue(NetconfMessageUtils.validateRPCXML(cancelCommitNoPersistId)) Assert.assertEquals(checkString, cancelCommitNoPersistId) } @Test fun commit() { val checkString = ("" + "" + "") val messageId = "Test-Message-ID" val commit = NetconfMessageUtils.commit(messageId, false, 0, "", "").replace("[\n\r\t]".toRegex(), "") val commitWithPersistButNotConfirmed = NetconfMessageUtils.commit(messageId, false, 0, "1234", "").replace("[\n\r\t]".toRegex(), "") assertTrue(NetconfMessageUtils.validateRPCXML(commit)) Assert.assertEquals(checkString, commit) Assert.assertEquals(checkString, commitWithPersistButNotConfirmed) } @Test fun commitPersistId() { val checkString = ("" + "" + "" + "1234" + "") val messageId = "Test-Message-ID" val result = NetconfMessageUtils.commit(messageId, false, 30, "", "1234").replace("[\n\r\t]".toRegex(), "") assertTrue(NetconfMessageUtils.validateRPCXML(result)) Assert.assertEquals(checkString, result) try { NetconfMessageUtils.commit(messageId, true, 30, "", "1234").replace("[\n\r\t]".toRegex(), "") } catch (e: NetconfException) { Assert.assertEquals("Can't proceed with both confirmed flag and persistId(1234) specified. Only one should be specified.", e.message) return } fail() } @Test fun commitPersist() { val checkString = ("" + "" + "" + "" + "30" + "1234" + "") val messageId = "Test-Message-ID" val result = NetconfMessageUtils.commit(messageId, true, 30, "1234", "").replace("[\n\r\t]".toRegex(), "") assertTrue(NetconfMessageUtils.validateRPCXML(result)) Assert.assertEquals(checkString, result) try { NetconfMessageUtils.commit(messageId, false, 30, "1234", "1234").replace("[\n\r\t]".toRegex(), "") } catch (e: NetconfException) { Assert.assertEquals("Can't proceed with both persist(1234) and persistId(1234) specified. Only one should be specified.", e.message) return } fail() } @Test fun unlock() { val checkString = ("" + "" + "") val messageId = "Test-Message-ID" val configType = NetconfDatastore.CANDIDATE.datastore val result = NetconfMessageUtils.unlock(messageId, configType).replace("[\n\r\t]".toRegex(), "") assertTrue(NetconfMessageUtils.validateRPCXML(result)) Assert.assertEquals(checkString, result) } @Test fun deleteConfig() { val checkString = ("" + "" + "") val messageId = "Test-Message-ID" val netconfTargetConfig = NetconfDatastore.CANDIDATE.datastore val result = NetconfMessageUtils.deleteConfig(messageId, netconfTargetConfig).replace("[\n\r\t]".toRegex(), "") assertTrue(NetconfMessageUtils.validateRPCXML(result)) Assert.assertEquals(checkString, result) } @Test fun discardChanges() { val checkString = ("" + "" + "") val messageId = "Test-Message-ID" val result = NetconfMessageUtils.discardChanges(messageId).replace("[\n\r\t]".toRegex(), "") assertTrue(NetconfMessageUtils.validateRPCXML(result)) Assert.assertEquals(checkString, result) } @Test fun lock() { val checkString = ("" + "" + "") val messageId = "Test-Message-ID" val configType = NetconfDatastore.CANDIDATE.datastore val result = NetconfMessageUtils.lock(messageId, configType).replace("[\n\r\t]".toRegex(), "") assertTrue(NetconfMessageUtils.validateRPCXML(result)) Assert.assertEquals(checkString, result) } @Test fun getMsgId() { val checkString = ("testmessage") var messageId = "message-id=\"testmessage\"" var result = NetconfMessageUtils.getMsgId(messageId).replace("[\n\r\t]".toRegex(), "") Assert.assertEquals(checkString, result) messageId = "message-id=\"hello\"" result = NetconfMessageUtils.getMsgId(messageId).replace("[\n\r\t]".toRegex(), "") Assert.assertEquals("hello", result) messageId = "message-id" result = NetconfMessageUtils.getMsgId(messageId).replace("[\n\r\t]".toRegex(), "") Assert.assertEquals("", result) } @Test fun createHelloString() { val checkString = (" " +" hi hello ]]>]]>") val capability = listOf("hi", "hello") val result = NetconfMessageUtils.createHelloString(capability).replace("[\n\r\t]".toRegex(), "") Assert.assertEquals(checkString, result) } @Test fun validateChunkedFraming() { val reply = ("hello") val result = NetconfMessageUtils.validateChunkedFraming(reply) Assert.assertFalse(result) } @Test fun checkReply(){ assertTrue(NetconfMessageUtils.checkReply("ok")) } @Test fun formatRPCRequest(){ val checkString = ("#199" + " hi hello " + "##") val request = (" " +" hi hello ]]>]]>") val messageId = "Test-Message-ID" val capabilities = setOf("hi", "hello","urn:ietf:params:netconf:base:1.1") val result = NetconfMessageUtils.formatRPCRequest(request,messageId,capabilities).replace("[\n\r\t]".toRegex(), "") Assert.assertEquals(checkString, result) } }