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 kotlin.test.assertEquals
21 import org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.core.NetconfDeviceCommunicator.NetconfMessageState
22 class NetconfMessageStateTest {
24 private val charList: List<Char> = Char.MIN_VALUE.toInt().rangeTo(Char.MAX_VALUE.toInt())
25 .map { it -> it.toChar() }
28 fun `NO_MATCHING_PATTERN transitions`() {
29 assertEquals(NetconfMessageState.FIRST_BRACKET,
30 NetconfMessageState.NO_MATCHING_PATTERN.evaluateChar(']'))
31 assertEquals(NetconfMessageState.FIRST_LF,
32 NetconfMessageState.NO_MATCHING_PATTERN.evaluateChar('\n'))
34 charList.minus(listOf(']','\n')).forEach {
35 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
36 NetconfMessageState.NO_MATCHING_PATTERN.evaluateChar(it))
41 fun `FIRST_BRACKET transitions`() {
42 assertEquals(NetconfMessageState.SECOND_BRACKET,
43 NetconfMessageState.FIRST_BRACKET.evaluateChar(']'))
45 charList.minus( ']').forEach {
46 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
47 NetconfMessageState.FIRST_BRACKET.evaluateChar(it))
52 fun `SECOND_BRACKET transitions`() {
53 assertEquals(NetconfMessageState.FIRST_BIGGER,
54 NetconfMessageState.SECOND_BRACKET.evaluateChar('>'))
56 charList.minus('>').forEach {
57 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
58 NetconfMessageState.SECOND_BRACKET.evaluateChar(it))
63 fun `FIRST_BIGGER transitions`() {
64 assertEquals(NetconfMessageState.THIRD_BRACKET,
65 NetconfMessageState.FIRST_BIGGER.evaluateChar(']'))
67 charList.minus(']').forEach {
68 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
69 NetconfMessageState.FIRST_BIGGER.evaluateChar(it))
74 fun `THIRD_BRACKET transitions`() {
75 assertEquals(NetconfMessageState.ENDING_BIGGER,
76 NetconfMessageState.THIRD_BRACKET.evaluateChar(']'))
78 charList.minus(']').forEach {
79 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
80 NetconfMessageState.THIRD_BRACKET.evaluateChar(it))
85 fun `ENDING_BIGGER transitions`() {
86 assertEquals(NetconfMessageState.END_PATTERN,
87 NetconfMessageState.ENDING_BIGGER.evaluateChar('>'))
89 charList.minus('>').forEach {
90 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
91 NetconfMessageState.ENDING_BIGGER.evaluateChar(it))
96 fun `FIRST_LF transitions`() {
97 assertEquals(NetconfMessageState.FIRST_HASH,
98 NetconfMessageState.FIRST_LF.evaluateChar('#'))
99 assertEquals(NetconfMessageState.FIRST_BRACKET,
100 NetconfMessageState.FIRST_LF.evaluateChar(']'))
101 assertEquals(NetconfMessageState.FIRST_LF,
102 NetconfMessageState.FIRST_LF.evaluateChar('\n'))
103 charList.minus(listOf('#', ']', '\n')).forEach {
104 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
105 NetconfMessageState.FIRST_LF.evaluateChar(it))
110 fun `FIRST_HASH transitions`() {
111 assertEquals(NetconfMessageState.SECOND_HASH,
112 NetconfMessageState.FIRST_HASH.evaluateChar('#'))
113 charList.minus('#').forEach {
114 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
115 NetconfMessageState.FIRST_HASH.evaluateChar(it))
120 fun `SECOND_HASH transitions`() {
121 assertEquals(NetconfMessageState.END_CHUNKED_PATTERN,
122 NetconfMessageState.SECOND_HASH.evaluateChar('\n'))
124 charList.minus( '\n').forEach {
125 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
126 NetconfMessageState.SECOND_HASH.evaluateChar(it))
131 fun `END_CHUNKED_PATTERN transitions`() {
133 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
134 NetconfMessageState.END_CHUNKED_PATTERN.evaluateChar(it))
139 fun `END_PATTERN transitions`() {
141 assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
142 NetconfMessageState.END_PATTERN.evaluateChar(it))