2 * Copyright © 2019 Bell Canada
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.
17 package org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.core
20 import org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.core.NetconfDeviceCommunicator.NetconfMessageState
21 import kotlin.test.assertEquals
23 class NetconfMessageStateTest {
25 private val charList: List<Char> = Char.MIN_VALUE.toInt().rangeTo(Char.MAX_VALUE.toInt())
26 .map { it -> it.toChar() }
29 fun `NO_MATCHING_PATTERN transitions`() {
30 assertEquals(NetconfMessageState.FIRST_BRACKET,
31 NetconfMessageState.NO_MATCHING_PATTERN.evaluateChar(']'))
32 assertEquals(NetconfMessageState.FIRST_LF,
33 NetconfMessageState.NO_MATCHING_PATTERN.evaluateChar('\n'))
35 charList.minus(listOf(']','\n')).forEach {
36 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
37 NetconfMessageState.NO_MATCHING_PATTERN.evaluateChar(it))
42 fun `FIRST_BRACKET transitions`() {
43 assertEquals(NetconfMessageState.SECOND_BRACKET,
44 NetconfMessageState.FIRST_BRACKET.evaluateChar(']'))
46 charList.minus( ']').forEach {
47 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
48 NetconfMessageState.FIRST_BRACKET.evaluateChar(it))
53 fun `SECOND_BRACKET transitions`() {
54 assertEquals(NetconfMessageState.FIRST_BIGGER,
55 NetconfMessageState.SECOND_BRACKET.evaluateChar('>'))
57 charList.minus('>').forEach {
58 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
59 NetconfMessageState.SECOND_BRACKET.evaluateChar(it))
64 fun `FIRST_BIGGER transitions`() {
65 assertEquals(NetconfMessageState.THIRD_BRACKET,
66 NetconfMessageState.FIRST_BIGGER.evaluateChar(']'))
68 charList.minus(']').forEach {
69 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
70 NetconfMessageState.FIRST_BIGGER.evaluateChar(it))
75 fun `THIRD_BRACKET transitions`() {
76 assertEquals(NetconfMessageState.ENDING_BIGGER,
77 NetconfMessageState.THIRD_BRACKET.evaluateChar(']'))
79 charList.minus(']').forEach {
80 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
81 NetconfMessageState.THIRD_BRACKET.evaluateChar(it))
86 fun `ENDING_BIGGER transitions`() {
87 assertEquals(NetconfMessageState.END_PATTERN,
88 NetconfMessageState.ENDING_BIGGER.evaluateChar('>'))
90 charList.minus('>').forEach {
91 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
92 NetconfMessageState.ENDING_BIGGER.evaluateChar(it))
97 fun `FIRST_LF transitions`() {
98 assertEquals(NetconfMessageState.FIRST_HASH,
99 NetconfMessageState.FIRST_LF.evaluateChar('#'))
100 assertEquals(NetconfMessageState.FIRST_BRACKET,
101 NetconfMessageState.FIRST_LF.evaluateChar(']'))
102 assertEquals(NetconfMessageState.FIRST_LF,
103 NetconfMessageState.FIRST_LF.evaluateChar('\n'))
104 charList.minus(listOf('#', ']', '\n')).forEach {
105 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
106 NetconfMessageState.FIRST_LF.evaluateChar(it))
111 fun `FIRST_HASH transitions`() {
112 assertEquals(NetconfMessageState.SECOND_HASH,
113 NetconfMessageState.FIRST_HASH.evaluateChar('#'))
114 charList.minus('#').forEach {
115 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
116 NetconfMessageState.FIRST_HASH.evaluateChar(it))
121 fun `SECOND_HASH transitions`() {
122 assertEquals(NetconfMessageState.END_CHUNKED_PATTERN,
123 NetconfMessageState.SECOND_HASH.evaluateChar('\n'))
125 charList.minus( '\n').forEach {
126 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
127 NetconfMessageState.SECOND_HASH.evaluateChar(it))
132 fun `END_CHUNKED_PATTERN transitions`() {
134 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
135 NetconfMessageState.END_CHUNKED_PATTERN.evaluateChar(it))
140 fun `END_PATTERN transitions`() {
142 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
143 NetconfMessageState.END_PATTERN.evaluateChar(it))