blob: 5ba49896a5450d2209e10f1659e1b49594383e2a [file] [log] [blame]
Ray Milkey73ba84a2015-02-04 17:08:41 -08001/*
Brian O'Connor5ab426f2016-04-09 01:19:45 -07002 * Copyright 2015-present Open Networking Laboratory
Ray Milkey73ba84a2015-02-04 17:08:41 -08003 *
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 */
16package org.onosproject.codec.impl;
17
18import java.util.EnumMap;
19
Ray Milkey9ee62f52015-02-06 13:47:35 -080020import org.junit.Before;
Ray Milkey73ba84a2015-02-04 17:08:41 -080021import org.junit.Test;
Ray Milkey9ee62f52015-02-06 13:47:35 -080022import org.onlab.packet.Ip6Address;
23import org.onlab.packet.IpPrefix;
24import org.onlab.packet.MacAddress;
Michele Santuari4b6019e2014-12-19 11:31:45 +010025import org.onlab.packet.MplsLabel;
Hyunsun Mooncf732fb2015-08-22 21:04:23 -070026import org.onlab.packet.TpPort;
Ray Milkey9ee62f52015-02-06 13:47:35 -080027import org.onlab.packet.VlanId;
28import org.onosproject.codec.CodecContext;
29import org.onosproject.codec.JsonCodec;
Sho SHIMIZUc44c0c32015-06-01 11:40:48 -070030import org.onosproject.net.ChannelSpacing;
31import org.onosproject.net.GridType;
32import org.onosproject.net.Lambda;
Sho SHIMIZU6c70f642015-05-29 17:27:22 -070033import org.onosproject.net.OchSignalType;
Yafit Hadar5796d972015-10-15 13:16:11 +030034import org.onosproject.net.OduSignalId;
35import org.onosproject.net.OduSignalType;
Ray Milkey9ee62f52015-02-06 13:47:35 -080036import org.onosproject.net.PortNumber;
37import org.onosproject.net.flow.criteria.Criteria;
Ray Milkey73ba84a2015-02-04 17:08:41 -080038import org.onosproject.net.flow.criteria.Criterion;
39
Ray Milkey9ee62f52015-02-06 13:47:35 -080040import com.fasterxml.jackson.databind.node.ObjectNode;
41
Ray Milkey73ba84a2015-02-04 17:08:41 -080042import static org.hamcrest.MatcherAssert.assertThat;
Ray Milkey0cc189e2015-02-09 11:08:01 -080043import static org.hamcrest.Matchers.notNullValue;
44import static org.onlab.junit.TestUtils.getField;
Ray Milkey46670a82015-02-08 17:57:17 -080045import static org.onosproject.codec.impl.CriterionJsonMatcher.matchesCriterion;
Ray Milkey73ba84a2015-02-04 17:08:41 -080046
47/**
48 * Unit tests for criterion codec.
49 */
50public class CriterionCodecTest {
51
Ray Milkey9ee62f52015-02-06 13:47:35 -080052 CodecContext context;
53 JsonCodec<Criterion> criterionCodec;
54 final PortNumber port = PortNumber.portNumber(1);
55 final IpPrefix ipPrefix4 = IpPrefix.valueOf("10.1.1.0/24");
56 final IpPrefix ipPrefix6 = IpPrefix.valueOf("fe80::/64");
57 final MacAddress mac1 = MacAddress.valueOf("00:00:11:00:00:01");
Hyunsun Mooncf732fb2015-08-22 21:04:23 -070058 final TpPort tpPort = TpPort.tpPort(40000);
Yafit Hadar5796d972015-10-15 13:16:11 +030059 final int tributaryPortNumber = 11;
60 final int tributarySlotLen = 80;
61 final byte[] tributarySlotBitmap = new byte[] {1, 2, 3, 4, 2, 3, 4, 2, 3, 4};
62
Ray Milkey9ee62f52015-02-06 13:47:35 -080063
64 /**
65 * Sets up for each test. Creates a context and fetches the criterion
66 * codec.
67 */
68 @Before
69 public void setUp() {
70 context = new MockCodecContext();
71 criterionCodec = context.codec(Criterion.class);
72 assertThat(criterionCodec, notNullValue());
73 }
74
75
Ray Milkey73ba84a2015-02-04 17:08:41 -080076 /**
77 * Checks that all criterion types are covered by the codec.
78 */
79 @Test
80 public void checkCriterionTypes() throws Exception {
Ray Milkey6d7968e2015-07-06 14:30:02 -070081 EncodeCriterionCodecHelper encoder = new EncodeCriterionCodecHelper(
Ray Milkeyd43fe452015-05-29 09:35:12 -070082 Criteria.dummy(), context);
Ray Milkey9ee62f52015-02-06 13:47:35 -080083 EnumMap<Criterion.Type, Object> formatMap =
Ray Milkeyd43fe452015-05-29 09:35:12 -070084 getField(encoder, "formatMap");
Ray Milkey73ba84a2015-02-04 17:08:41 -080085 assertThat(formatMap, notNullValue());
86
87 for (Criterion.Type type : Criterion.Type.values()) {
88 assertThat("Entry not found for " + type.toString(),
89 formatMap.get(type), notNullValue());
90 }
91 }
Ray Milkey9ee62f52015-02-06 13:47:35 -080092
93 /**
94 * Tests in port criterion.
95 */
96 @Test
97 public void matchInPortTest() {
98 Criterion criterion = Criteria.matchInPort(port);
99 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800100 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800101 }
102
103 /**
104 * Tests in physical port criterion.
105 */
106 @Test
107 public void matchInPhyPortTest() {
108 Criterion criterion = Criteria.matchInPhyPort(port);
109 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800110 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800111 }
112
113 /**
114 * Tests metadata criterion.
115 */
116 @Test
117 public void matchMetadataTest() {
118 Criterion criterion = Criteria.matchMetadata(0xabcdL);
119 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800120 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800121 }
122
123 /**
124 * Tests ethernet destination criterion.
125 */
126 @Test
127 public void matchEthDstTest() {
128 Criterion criterion = Criteria.matchEthDst(mac1);
129 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800130 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800131 }
132
133 /**
134 * Tests ethernet source criterion.
135 */
136 @Test
137 public void matchEthSrcTest() {
138 Criterion criterion = Criteria.matchEthSrc(mac1);
139 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800140 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800141 }
142
143 /**
144 * Tests ethernet type criterion.
145 */
146 @Test
147 public void matchEthTypeTest() {
Pavlin Radoslavovf3b69332015-02-06 15:47:05 -0800148 Criterion criterion = Criteria.matchEthType((short) 0x8844);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800149 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800150 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800151 }
152
153 /**
154 * Tests VLAN Id criterion.
155 */
156 @Test
157 public void matchVlanIdTest() {
158 Criterion criterion = Criteria.matchVlanId(VlanId.ANY);
159 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800160 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800161 }
162
163 /**
164 * Tests VLAN PCP criterion.
165 */
166 @Test
167 public void matchVlanPcpTest() {
Pavlin Radoslavovf3b69332015-02-06 15:47:05 -0800168 Criterion criterion = Criteria.matchVlanPcp((byte) 7);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800169 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800170 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800171 }
172
173 /**
174 * Tests IP DSCP criterion.
175 */
176 @Test
177 public void matchIPDscpTest() {
Pavlin Radoslavovf3b69332015-02-06 15:47:05 -0800178 Criterion criterion = Criteria.matchIPDscp((byte) 63);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800179 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800180 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800181 }
182
183 /**
184 * Tests IP ECN criterion.
185 */
186 @Test
187 public void matchIPEcnTest() {
Pavlin Radoslavovab8553a2015-02-20 14:13:50 -0800188 Criterion criterion = Criteria.matchIPEcn((byte) 3);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800189 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800190 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800191 }
192
193 /**
194 * Tests IP protocol criterion.
195 */
196 @Test
197 public void matchIPProtocolTest() {
Pavlin Radoslavovf3b69332015-02-06 15:47:05 -0800198 Criterion criterion = Criteria.matchIPProtocol((byte) 250);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800199 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800200 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800201 }
202
203 /**
204 * Tests IP source criterion.
205 */
206 @Test
207 public void matchIPSrcTest() {
208 Criterion criterion = Criteria.matchIPSrc(ipPrefix4);
209 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800210 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800211 }
212
213 /**
214 * Tests IP destination criterion.
215 */
216 @Test
217 public void matchIPDstTest() {
218 Criterion criterion = Criteria.matchIPDst(ipPrefix4);
219 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800220 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800221 }
222
223 /**
224 * Tests source TCP port criterion.
225 */
226 @Test
227 public void matchTcpSrcTest() {
Hyunsun Mooncf732fb2015-08-22 21:04:23 -0700228 Criterion criterion = Criteria.matchTcpSrc(tpPort);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800229 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800230 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800231 }
232
233 /**
234 * Tests destination TCP port criterion.
235 */
236 @Test
237 public void matchTcpDstTest() {
Hyunsun Mooncf732fb2015-08-22 21:04:23 -0700238 Criterion criterion = Criteria.matchTcpDst(tpPort);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800239 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800240 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800241 }
242
243 /**
244 * Tests source UDP port criterion.
245 */
246 @Test
247 public void matchUdpSrcTest() {
Hyunsun Mooncf732fb2015-08-22 21:04:23 -0700248 Criterion criterion = Criteria.matchUdpSrc(tpPort);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800249 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800250 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800251 }
252
253 /**
254 * Tests destination UDP criterion.
255 */
256 @Test
257 public void matchUdpDstTest() {
Hyunsun Mooncf732fb2015-08-22 21:04:23 -0700258 Criterion criterion = Criteria.matchUdpDst(tpPort);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800259 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800260 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800261 }
262
263 /**
264 * Tests source SCTP criterion.
265 */
266 @Test
267 public void matchSctpSrcTest() {
Hyunsun Mooncf732fb2015-08-22 21:04:23 -0700268 Criterion criterion = Criteria.matchSctpSrc(tpPort);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800269 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800270 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800271 }
272
273 /**
274 * Tests destination SCTP criterion.
275 */
276 @Test
277 public void matchSctpDstTest() {
Hyunsun Mooncf732fb2015-08-22 21:04:23 -0700278 Criterion criterion = Criteria.matchSctpDst(tpPort);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800279 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800280 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800281 }
282
283 /**
284 * Tests ICMP type criterion.
285 */
286 @Test
287 public void matchIcmpTypeTest() {
Pavlin Radoslavovf3b69332015-02-06 15:47:05 -0800288 Criterion criterion = Criteria.matchIcmpType((byte) 250);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800289 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800290 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800291 }
292
293 /**
294 * Tests ICMP code criterion.
295 */
296 @Test
297 public void matchIcmpCodeTest() {
Pavlin Radoslavovf3b69332015-02-06 15:47:05 -0800298 Criterion criterion = Criteria.matchIcmpCode((byte) 250);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800299 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800300 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800301 }
302
303 /**
304 * Tests IPv6 source criterion.
305 */
306 @Test
307 public void matchIPv6SrcTest() {
308 Criterion criterion = Criteria.matchIPv6Src(ipPrefix6);
309 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800310 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800311 }
312
313 /**
314 * Tests IPv6 destination criterion.
315 */
316 @Test
317 public void matchIPv6DstTest() {
318 Criterion criterion = Criteria.matchIPv6Dst(ipPrefix6);
319 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800320 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800321 }
322
323 /**
324 * Tests IPv6 flow label criterion.
325 */
326 @Test
327 public void matchIPv6FlowLabelTest() {
Pavlin Radoslavovf3b69332015-02-06 15:47:05 -0800328 Criterion criterion = Criteria.matchIPv6FlowLabel(0xffffe);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800329 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800330 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800331 }
332
333 /**
334 * Tests ICMP v6 type criterion.
335 */
336 @Test
337 public void matchIcmpv6TypeTest() {
Pavlin Radoslavovf3b69332015-02-06 15:47:05 -0800338 Criterion criterion = Criteria.matchIcmpv6Type((byte) 250);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800339 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800340 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800341 }
342
343 /**
344 * Tests ICMP v6 code criterion.
345 */
346 @Test
347 public void matchIcmpv6CodeTest() {
Pavlin Radoslavovf3b69332015-02-06 15:47:05 -0800348 Criterion criterion = Criteria.matchIcmpv6Code((byte) 250);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800349 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800350 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800351 }
352
353 /**
354 * Tests IPV6 target address criterion.
355 */
356 @Test
357 public void matchIPv6NDTargetAddressTest() {
358 Criterion criterion =
359 Criteria.matchIPv6NDTargetAddress(
360 Ip6Address.valueOf("1111:2222::"));
361 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800362 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800363 }
364
365 /**
366 * Tests IPV6 SLL criterion.
367 */
368 @Test
369 public void matchIPv6NDSourceLinkLayerAddressTest() {
370 Criterion criterion = Criteria.matchIPv6NDSourceLinkLayerAddress(mac1);
371 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800372 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800373 }
374
375 /**
376 * Tests IPV6 TLL criterion.
377 */
378 @Test
379 public void matchIPv6NDTargetLinkLayerAddressTest() {
380 Criterion criterion = Criteria.matchIPv6NDTargetLinkLayerAddress(mac1);
381 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800382 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800383 }
384
385 /**
386 * Tests MPLS label criterion.
387 */
388 @Test
389 public void matchMplsLabelTest() {
Michele Santuari4b6019e2014-12-19 11:31:45 +0100390 Criterion criterion = Criteria.matchMplsLabel(MplsLabel.mplsLabel(0xffffe));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800391 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800392 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800393 }
394
395 /**
Pavlin Radoslavov5e4f7542015-02-06 18:18:21 -0800396 * Tests IPv6 Extension Header pseudo-field flags criterion.
397 */
398 @Test
399 public void matchIPv6ExthdrFlagsTest() {
400 int exthdrFlags =
401 Criterion.IPv6ExthdrFlags.NONEXT.getValue() |
402 Criterion.IPv6ExthdrFlags.ESP.getValue() |
403 Criterion.IPv6ExthdrFlags.AUTH.getValue() |
404 Criterion.IPv6ExthdrFlags.DEST.getValue() |
405 Criterion.IPv6ExthdrFlags.FRAG.getValue() |
406 Criterion.IPv6ExthdrFlags.ROUTER.getValue() |
407 Criterion.IPv6ExthdrFlags.HOP.getValue() |
408 Criterion.IPv6ExthdrFlags.UNREP.getValue() |
409 Criterion.IPv6ExthdrFlags.UNSEQ.getValue();
410 Criterion criterion = Criteria.matchIPv6ExthdrFlags(exthdrFlags);
411 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800412
413 assertThat(result, matchesCriterion(criterion));
Pavlin Radoslavov5e4f7542015-02-06 18:18:21 -0800414 }
415
416 /**
Ray Milkey9ee62f52015-02-06 13:47:35 -0800417 * Tests lambda criterion.
418 */
419 @Test
Sho SHIMIZUc44c0c32015-06-01 11:40:48 -0700420 public void matchOchSignal() {
421 Lambda ochSignal = Lambda.ochSignal(GridType.DWDM, ChannelSpacing.CHL_100GHZ, 4, 8);
422 Criterion criterion = Criteria.matchLambda(ochSignal);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800423 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800424 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800425 }
426
427 /**
Sho SHIMIZU68b8c1f2015-05-29 18:42:26 -0700428 * Tests Och signal type criterion.
Ray Milkey9ee62f52015-02-06 13:47:35 -0800429 */
430 @Test
Sho SHIMIZU68b8c1f2015-05-29 18:42:26 -0700431 public void matchOchSignalTypeTest() {
Sho SHIMIZU6c70f642015-05-29 17:27:22 -0700432 Criterion criterion = Criteria.matchOchSignalType(OchSignalType.FIXED_GRID);
Ray Milkey9ee62f52015-02-06 13:47:35 -0800433 ObjectNode result = criterionCodec.encode(criterion, context);
Ray Milkey46670a82015-02-08 17:57:17 -0800434 assertThat(result, matchesCriterion(criterion));
Ray Milkey9ee62f52015-02-06 13:47:35 -0800435 }
Yafit Hadar5796d972015-10-15 13:16:11 +0300436
437 /**
438 * Tests Odu Signal ID criterion.
439 */
440 @Test
441 public void matchOduSignalIdTest() {
442
443 OduSignalId oduSignalId = OduSignalId.oduSignalId(tributaryPortNumber, tributarySlotLen, tributarySlotBitmap);
444
445 Criterion criterion = Criteria.matchOduSignalId(oduSignalId);
446 ObjectNode result = criterionCodec.encode(criterion, context);
447 assertThat(result, matchesCriterion(criterion));
448 }
449
450 /**
451 * Tests Odu Signal Type criterion.
452 */
453 @Test
454 public void matchOduSignalTypeTest() {
455
456 OduSignalType signalType = OduSignalType.ODU2;
457
458 Criterion criterion = Criteria.matchOduSignalType(signalType);
459 ObjectNode result = criterionCodec.encode(criterion, context);
460 assertThat(result, matchesCriterion(criterion));
461 }
462
Ray Milkey73ba84a2015-02-04 17:08:41 -0800463}