2 * Copyright © 2017-2018 AT&T Intellectual Property.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org.onap.ccsdk.apps.blueprintsprocessor.functions.netconf.executor.utils
18 import org.junit.Assert
19 import org.junit.Assert.assertTrue
21 import org.onap.ccsdk.apps.blueprintsprocessor.functions.netconf.executor.api.NetconfException
22 import kotlin.test.fail
24 class RpcMessageUtilsTest {
28 val checkString = ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
29 + "<rpc message-id=\"Test-Message-ID\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">"
30 + "<get-config><source><candidate/></source><filter type=\"subtree\">Test-Filter-Content</filter>"
31 + "</get-config></rpc>")
33 val messageId = "Test-Message-ID"
34 val configType = NetconfDatastore.CANDIDATE.datastore
35 val filterContent = "Test-Filter-Content"
38 NetconfMessageUtils.getConfig(messageId, configType, filterContent).replace("[\n\r\t]".toRegex(), "")
40 assertTrue(NetconfMessageUtils.validateRPCXML(result))
41 Assert.assertEquals(checkString, result)
47 val checkString = ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
48 + "<rpc message-id=\"Test-Message-ID\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">"
49 + "<get-config><source><candidate/></source><filter type=\"subtree\">Test-Filter-Content</filter>"
50 + "</get-config></rpc>")
52 val messageId = "Test-Message-ID"
53 val configType = NetconfDatastore.CANDIDATE.datastore
54 val filterContent = "Test-Filter-Content"
57 NetconfMessageUtils.getConfig(messageId, configType, filterContent).replace("[\n\r\t]".toRegex(), "")
59 assertTrue(NetconfMessageUtils.validateRPCXML(result))
60 Assert.assertEquals(checkString, result)
65 val checkString = ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
66 + "<rpc message-id=\"Test-Message-ID\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">"
67 + "<validate><source><candidate/></source></validate></rpc>")
69 val messageId = "Test-Message-ID"
70 val configType = NetconfDatastore.CANDIDATE.datastore
72 val result = NetconfMessageUtils.validate(messageId, configType).replace("[\n\r\t]".toRegex(), "")
74 assertTrue(NetconfMessageUtils.validateRPCXML(result))
75 Assert.assertEquals(checkString, result)
81 ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
82 "<rpc message-id=\"Test-Message-ID\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">" +
84 "<persist-id>1234</persist-id>" +
85 "</cancel-commit></rpc>")
87 val messageId = "Test-Message-ID"
89 val cancelCommitPersistId =
90 NetconfMessageUtils.cancelCommit(messageId, "1234").replace("[\n\r\t]".toRegex(), "")
92 assertTrue(NetconfMessageUtils.validateRPCXML(cancelCommitPersistId))
93 Assert.assertEquals(checkString, cancelCommitPersistId)
97 fun cancelCommitNoPersistId() {
99 ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
100 "<rpc message-id=\"Test-Message-ID\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">" +
102 "</cancel-commit></rpc>")
104 val messageId = "Test-Message-ID"
106 val cancelCommitNoPersistId = NetconfMessageUtils.cancelCommit(messageId, "").replace("[\n\r\t]".toRegex(), "")
108 assertTrue(NetconfMessageUtils.validateRPCXML(cancelCommitNoPersistId))
109 Assert.assertEquals(checkString, cancelCommitNoPersistId)
114 val checkString = ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
115 + "<rpc message-id=\"Test-Message-ID\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">"
116 + "<commit></commit></rpc>")
118 val messageId = "Test-Message-ID"
120 val commit = NetconfMessageUtils.commit(messageId, false, 0, "", "").replace("[\n\r\t]".toRegex(), "")
122 val commitWithPersistButNotConfirmed =
123 NetconfMessageUtils.commit(messageId, false, 0, "1234", "").replace("[\n\r\t]".toRegex(), "")
125 assertTrue(NetconfMessageUtils.validateRPCXML(commit))
126 Assert.assertEquals(checkString, commit)
127 Assert.assertEquals(checkString, commitWithPersistButNotConfirmed)
132 fun commitPersistId() {
134 ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
135 "<rpc message-id=\"Test-Message-ID\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">" +
137 "<persist-id>1234</persist-id>" +
140 val messageId = "Test-Message-ID"
142 val result = NetconfMessageUtils.commit(messageId, false, 30, "", "1234").replace("[\n\r\t]".toRegex(), "")
143 assertTrue(NetconfMessageUtils.validateRPCXML(result))
144 Assert.assertEquals(checkString, result)
147 NetconfMessageUtils.commit(messageId, true, 30, "", "1234").replace("[\n\r\t]".toRegex(), "")
148 } catch (e: NetconfException) {
149 Assert.assertEquals("Can't proceed <commit> with both confirmed flag and persistId(1234) specified. Only one should be specified.",
158 fun commitPersist() {
160 ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
161 "<rpc message-id=\"Test-Message-ID\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">" +
164 "<confirm-timeout>30</confirm-timeout>" +
165 "<persist>1234</persist>" +
168 val messageId = "Test-Message-ID"
170 val result = NetconfMessageUtils.commit(messageId, true, 30, "1234", "").replace("[\n\r\t]".toRegex(), "")
172 assertTrue(NetconfMessageUtils.validateRPCXML(result))
173 Assert.assertEquals(checkString, result)
176 NetconfMessageUtils.commit(messageId, false, 30, "1234", "1234").replace("[\n\r\t]".toRegex(), "")
177 } catch (e: NetconfException) {
178 Assert.assertEquals("Can't proceed <commit> with both persist(1234) and persistId(1234) specified. Only one should be specified.",
187 val checkString = ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
188 + "<rpc message-id=\"Test-Message-ID\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">"
189 + "<unlock><target><candidate/></target></unlock></rpc>")
191 val messageId = "Test-Message-ID"
192 val configType = NetconfDatastore.CANDIDATE.datastore
194 val result = NetconfMessageUtils.unlock(messageId, configType).replace("[\n\r\t]".toRegex(), "")
196 assertTrue(NetconfMessageUtils.validateRPCXML(result))
197 Assert.assertEquals(checkString, result)
202 val checkString = ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
203 + "<rpc message-id=\"Test-Message-ID\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">"
204 + "<delete-config><target><candidate/></target></delete-config></rpc>")
206 val messageId = "Test-Message-ID"
207 val netconfTargetConfig = NetconfDatastore.CANDIDATE.datastore
209 val result = NetconfMessageUtils.deleteConfig(messageId, netconfTargetConfig).replace("[\n\r\t]".toRegex(), "")
211 assertTrue(NetconfMessageUtils.validateRPCXML(result))
212 Assert.assertEquals(checkString, result)
216 fun discardChanges() {
217 val checkString = ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
218 + "<rpc message-id=\"Test-Message-ID\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">"
219 + "<discard-changes/></rpc>")
221 val messageId = "Test-Message-ID"
223 val result = NetconfMessageUtils.discardChanges(messageId).replace("[\n\r\t]".toRegex(), "")
225 assertTrue(NetconfMessageUtils.validateRPCXML(result))
226 Assert.assertEquals(checkString, result)
231 val checkString = ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
232 + "<rpc message-id=\"Test-Message-ID\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">"
233 + "<lock><target><candidate/></target></lock></rpc>")
235 val messageId = "Test-Message-ID"
236 val configType = NetconfDatastore.CANDIDATE.datastore
237 val result = NetconfMessageUtils.lock(messageId, configType).replace("[\n\r\t]".toRegex(), "")
239 assertTrue(NetconfMessageUtils.validateRPCXML(result))
240 Assert.assertEquals(checkString, result)