Merge "netconf-executor: adding pojo tests"
[ccsdk/cds.git] / ms / blueprintsprocessor / functions / netconf-executor / src / test / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / functions / netconf / executor / core / NetconfMessageStateTest.kt
1 /*
2  * Copyright © 2019 Bell Canada
3  *
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
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 package org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.core
18
19 import org.junit.Test
20 import kotlin.test.assertEquals
21 import org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.core.NetconfDeviceCommunicator.NetconfMessageState
22 class NetconfMessageStateTest {
23
24     private val charList: List<Char> = Char.MIN_VALUE.toInt().rangeTo(Char.MAX_VALUE.toInt())
25         .map { it -> it.toChar() }
26
27     @Test
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'))
33
34         charList.minus(listOf(']','\n')).forEach {
35             assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
36                 NetconfMessageState.NO_MATCHING_PATTERN.evaluateChar(it))
37         }
38     }
39
40     @Test
41     fun `FIRST_BRACKET transitions`() {
42         assertEquals(NetconfMessageState.SECOND_BRACKET,
43             NetconfMessageState.FIRST_BRACKET.evaluateChar(']'))
44
45         charList.minus( ']').forEach {
46             assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
47                 NetconfMessageState.FIRST_BRACKET.evaluateChar(it))
48         }
49     }
50
51     @Test
52     fun `SECOND_BRACKET transitions`() {
53         assertEquals(NetconfMessageState.FIRST_BIGGER,
54             NetconfMessageState.SECOND_BRACKET.evaluateChar('>'))
55
56         charList.minus('>').forEach {
57             assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
58                 NetconfMessageState.SECOND_BRACKET.evaluateChar(it))
59         }
60     }
61
62     @Test
63     fun `FIRST_BIGGER transitions`() {
64         assertEquals(NetconfMessageState.THIRD_BRACKET,
65             NetconfMessageState.FIRST_BIGGER.evaluateChar(']'))
66
67         charList.minus(']').forEach {
68             assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
69                 NetconfMessageState.FIRST_BIGGER.evaluateChar(it))
70         }
71     }
72
73     @Test
74     fun `THIRD_BRACKET transitions`() {
75         assertEquals(NetconfMessageState.ENDING_BIGGER,
76             NetconfMessageState.THIRD_BRACKET.evaluateChar(']'))
77
78         charList.minus(']').forEach {
79             assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
80                 NetconfMessageState.THIRD_BRACKET.evaluateChar(it))
81         }
82     }
83
84     @Test
85     fun `ENDING_BIGGER transitions`() {
86         assertEquals(NetconfMessageState.END_PATTERN,
87             NetconfMessageState.ENDING_BIGGER.evaluateChar('>'))
88
89         charList.minus('>').forEach {
90             assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
91                 NetconfMessageState.ENDING_BIGGER.evaluateChar(it))
92         }
93     }
94
95     @Test
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))
106         }
107     }
108
109     @Test
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))
116         }
117     }
118
119     @Test
120     fun `SECOND_HASH transitions`() {
121         assertEquals(NetconfMessageState.END_CHUNKED_PATTERN,
122             NetconfMessageState.SECOND_HASH.evaluateChar('\n'))
123
124         charList.minus( '\n').forEach {
125             assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
126                 NetconfMessageState.SECOND_HASH.evaluateChar(it))
127         }
128     }
129
130     @Test
131     fun `END_CHUNKED_PATTERN transitions`() {
132         charList.forEach {
133             assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
134                 NetconfMessageState.END_CHUNKED_PATTERN.evaluateChar(it))
135         }
136     }
137
138     @Test
139     fun `END_PATTERN transitions`() {
140         charList.forEach {
141             assertEquals(NetconfMessageState.NO_MATCHING_PATTERN,
142                 NetconfMessageState.END_PATTERN.evaluateChar(it))
143         }
144     }
145
146 }