blob: 50f178ca4a626a4092a6e2e86b20331047cf502a [file] [log] [blame]
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2016-present Open Networking Foundation
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05303 *
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
17package org.onosproject.yms.app.ymsm;
18
19import org.junit.Rule;
20import org.junit.Test;
21import org.junit.rules.ExpectedException;
22import org.onosproject.yang.gen.v1.ydt.customs.supervisor.rev20160524.CustomssupervisorOpParam;
23import org.onosproject.yms.app.ych.defaultcodecs.YangCodecRegistry;
24import org.onosproject.yms.app.ysr.TestYangSchemaNodeProvider;
25import org.onosproject.yms.ych.YangCodecHandler;
26import org.onosproject.yms.ych.YangCompositeEncoding;
27import org.onosproject.yms.ych.YangDataTreeCodec;
28
29import java.util.ArrayList;
30import java.util.HashMap;
31import java.util.List;
32import java.util.Map;
33
34import static junit.framework.TestCase.assertNotNull;
35import static org.onosproject.yms.ych.YangProtocolEncodingFormat.XML;
36
37/**
38 * Unit test case for YCH composite codec handler.
39 */
40public class YchCompositeHandlerTest {
41 @Rule
42 public ExpectedException thrown = ExpectedException.none();
43
44 private static final String REG_PREFIX = "RegisteredDataTreeCodec ";
45 private static final String REG_ENCODE = REG_PREFIX +
46 "encodeYdtToProtocolFormat Called.";
47 private static final String REG_DECODE = REG_PREFIX +
48 "decodeProtocolDataToYdt Called.";
49 private static final String REG_COMPO_ENCODE = REG_PREFIX +
50 "encodeYdtToCompositeProtocolFormat Called.";
51 private static final String REG_COMPO_DECODE = REG_PREFIX +
52 "decodeCompositeProtocolDataToYdt Called.";
53 private static final String OVERRIDE_PREFIX = "OverriddenDataTreeCodec ";
54 private static final String OVERRIDE_ENCODE = OVERRIDE_PREFIX +
55 "encodeYdtToProtocolFormat Called.";
56 private static final String OVERRIDE_DECODE = OVERRIDE_PREFIX +
57 "decodeProtocolDataToYdt Called.";
58 private static final String OVERRIDE_COMPO_ENCODE = OVERRIDE_PREFIX +
59 "encodeYdtToCompositeProtocolFormat Called.";
60 private static final String OVERRIDE_COMPO_DECODE = OVERRIDE_PREFIX +
61 "decodeCompositeProtocolDataToYdt Called.";
62
63 private TestYangSchemaNodeProvider provider =
64 new TestYangSchemaNodeProvider();
65
66 /**
67 * Unit test case in which verifying codec handler is null or not.
68 */
69 @Test
70 public void checkForCodecHandler() {
71 YmsManager ymsManager = new YmsManager();
72 ymsManager.coreService = new MockCoreService();
73 ymsManager.activate();
74 YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
75 assertNotNull("Codec handler is null", yangCodecHandler);
76 }
77
78 /**
79 * Unit test case in which verifying registered codec handler for encode is
80 * null or not.
81 */
82 @Test
83 public void checkForRegisterDefaultCodecEncode() {
84 thrown.expectMessage(REG_ENCODE);
85 YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
86 YmsManager ymsManager = new YmsManager();
87 YangCodecRegistry.initializeDefaultCodec();
88 ymsManager.coreService = new MockCoreService();
89 ymsManager.activate();
90 ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
91 YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
92 assertNotNull("Codec handler is null", yangCodecHandler);
93
94 provider.processSchemaRegistry(null);
95 List<Object> yangModuleList = new ArrayList<>();
96
97 // Creating the object
98 Object object = CustomssupervisorOpParam.builder()
99 .supervisor("Customssupervisor").build();
100 yangModuleList.add(object);
101
102 // Get the xml string and compare
103 Map<String, String> tagAttr = new HashMap<String, String>();
104 tagAttr.put("type", "subtree");
105
106 yangCodecHandler.encodeOperation("filter", "ydt.filter-type",
107 tagAttr, yangModuleList,
108 XML, null);
109 }
110
111 /**
112 * Unit test case in which verifying registered codec handler for decode is
113 * null or not.
114 */
115 @Test
116 public void checkForRegisterDefaultCodecDecode() {
117 thrown.expectMessage(REG_DECODE);
118 YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
119 YmsManager ymsManager = new YmsManager();
120 YangCodecRegistry.initializeDefaultCodec();
121 ymsManager.coreService = new MockCoreService();
122 ymsManager.activate();
123 ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
124 YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
125 assertNotNull("Codec handler is null", yangCodecHandler);
126
127 provider.processSchemaRegistry(null);
128 yangCodecHandler.decode("XML String", XML, null);
129 }
130
131 /**
132 * Unit test case in which verifying registered codec handler for
133 * composite encode is null or not.
134 */
135 @Test
136 public void checkForRegisterDefaultCodecCompEncode() {
137 thrown.expectMessage(REG_COMPO_ENCODE);
138 YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
139 YmsManager ymsManager = new YmsManager();
140 YangCodecRegistry.initializeDefaultCodec();
141 ymsManager.coreService = new MockCoreService();
142 ymsManager.activate();
143 ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
144 YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
145 assertNotNull("Codec handler is null", yangCodecHandler);
146
147 provider.processSchemaRegistry(null);
148 // Creating the object
149 Object object = CustomssupervisorOpParam.builder()
150 .supervisor("Customssupervisor").build();
151
152 yangCodecHandler.encodeCompositeOperation("filter",
153 "ydt.filter-type", object,
154 XML, null);
155 }
156
157 /**
158 * Unit test case in which verifying registered codec handler for
159 * composite decode is null or not.
160 */
161 @Test
162 public void checkForRegisterDefaultCodecCompDecode() {
163 thrown.expectMessage(REG_COMPO_DECODE);
164 YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
165 YmsManager ymsManager = new YmsManager();
166 YangCodecRegistry.initializeDefaultCodec();
167 ymsManager.coreService = new MockCoreService();
168 ymsManager.activate();
169 ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
170 YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
171 assertNotNull("Codec handler is null", yangCodecHandler);
172
173 provider.processSchemaRegistry(null);
174 // Creating the object
175 YangCompositeEncoding yangCompositeEncoding =
176 new MockYangCompositeEncoding();
177 yangCodecHandler.decode(yangCompositeEncoding, XML, null);
178 }
179
180 /**
181 * Unit test case in which verifying overridden codec handler for encode is
182 * null or not.
183 */
184 @Test
185 public void checkForOverriddenDataTreeCodecEncode() {
186 thrown.expectMessage(OVERRIDE_ENCODE);
187 YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
188 YmsManager ymsManager = new YmsManager();
189 ymsManager.coreService = new MockCoreService();
190 ymsManager.activate();
191 ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
192 YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
193 assertNotNull("Codec handler is null", yangCodecHandler);
194
195 YangDataTreeCodec overriddenCodec = new MockOverriddenDataTreeCodec();
196 yangCodecHandler.registerOverriddenCodec(overriddenCodec, XML);
197
198 provider.processSchemaRegistry(null);
199 List<Object> yangModuleList = new ArrayList<>();
200
201 // Creating the object
202 Object object = CustomssupervisorOpParam.builder()
203 .supervisor("Customssupervisor").build();
204 yangModuleList.add(object);
205
206 // Get the xml string and compare
207 Map<String, String> tagAttr = new HashMap<String, String>();
208 tagAttr.put("type", "subtree");
209 yangCodecHandler.encodeOperation("filter", "ydt.filter-type",
210 tagAttr, yangModuleList,
211 XML, null);
212 }
213
214 /**
215 * Unit test case in which verifying overridden codec handler for decode is
216 * null or not.
217 */
218 @Test
219 public void checkForOverriddenDataTreeCodecDecode() {
220 thrown.expectMessage(OVERRIDE_DECODE);
221 YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
222 YmsManager ymsManager = new YmsManager();
223 ymsManager.coreService = new MockCoreService();
224 ymsManager.activate();
225 ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
226 YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
227 assertNotNull("Codec handler is null", yangCodecHandler);
228
229 YangDataTreeCodec overriddenCodec = new MockOverriddenDataTreeCodec();
230 yangCodecHandler.registerOverriddenCodec(overriddenCodec, XML);
231
232 provider.processSchemaRegistry(null);
233 yangCodecHandler.decode("XML String", XML, null);
234 }
235
236 /**
237 * Unit test case in which verifying overridden codec handler for
238 * composite encode is null or not.
239 */
240 @Test
241 public void checkForOverriddenDataTreeCodecCompoEncode() {
242 thrown.expectMessage(OVERRIDE_COMPO_ENCODE);
243 YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
244 YmsManager ymsManager = new YmsManager();
245 ymsManager.coreService = new MockCoreService();
246 ymsManager.activate();
247 ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
248 YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
249 assertNotNull("Codec handler is null", yangCodecHandler);
250
251 YangDataTreeCodec overriddenCodec = new MockOverriddenDataTreeCodec();
252 yangCodecHandler.registerOverriddenCodec(overriddenCodec, XML);
253
254 provider.processSchemaRegistry(null);
255 // Creating the object
256 Object object = CustomssupervisorOpParam.builder()
257 .supervisor("Customssupervisor").build();
258 yangCodecHandler.encodeCompositeOperation("filter",
259 "ydt.filter-type",
260 object,
261 XML, null);
262 }
263
264 /**
265 * Unit test case in which verifying overridden codec handler for
266 * composite decode is null or not.
267 */
268 @Test
269 public void checkForOverriddenDataTreeCodecCompoDecode() {
270 thrown.expectMessage(OVERRIDE_COMPO_DECODE);
271 YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
272 YmsManager ymsManager = new YmsManager();
273 ymsManager.coreService = new MockCoreService();
274 ymsManager.activate();
275 ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
276 YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
277 assertNotNull("Codec handler is null", yangCodecHandler);
278
279 YangDataTreeCodec overriddenCodec = new MockOverriddenDataTreeCodec();
280 yangCodecHandler.registerOverriddenCodec(overriddenCodec, XML);
281
282 provider.processSchemaRegistry(null);
283 // Verify the received object list
284 YangCompositeEncoding yangCompositeEncoding =
285 new MockYangCompositeEncoding();
286 yangCodecHandler.decode(yangCompositeEncoding, XML, null);
287 }
288}