/*
* 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)
}
}