blob: 435316e4a95279f140661bb1444eb6e511e741d7 [file] [log] [blame]
Mahesh Poojary S1c356e32015-08-21 15:05:30 +05301/*
2 * Copyright 2014-2015 Open Networking Laboratory
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 */
16package org.onosproject.pcepio;
17
SureshBR3dab0972015-08-24 18:38:09 +053018import static org.hamcrest.MatcherAssert.assertThat;
19import static org.hamcrest.core.Is.is;
20import static org.hamcrest.core.IsSame.sameInstance;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053021
22import org.jboss.netty.buffer.ChannelBuffer;
23import org.jboss.netty.buffer.ChannelBuffers;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053024import org.junit.Test;
25import org.onosproject.pcepio.exceptions.PcepParseException;
26import org.onosproject.pcepio.protocol.PcepFactories;
27import org.onosproject.pcepio.protocol.PcepMessage;
28import org.onosproject.pcepio.protocol.PcepMessageReader;
29import org.onosproject.pcepio.protocol.PcepOpenMsg;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053030/**
31 * Test cases for PCEP OPEN Message.
32 */
33public class PcepOpenMsgTest {
34
SureshBR3dab0972015-08-24 18:38:09 +053035 /**
36 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV,
37 * PCECC-CAPABILITY-TLV in Pcep Open message.
38 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053039 @Test
40 public void openMessageTest1() throws PcepParseException {
41
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053042 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x10, 0x00, 0x20, 0x20, 0x1e, 0x78, (byte) 0xbd,
43 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f, //STATEFUL-PCE-CAPABILITY
44 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, //GMPLS-CAPABILITY-TLV
45 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, //PCECC-CAPABILITY-TLV
46 };
47
48 byte[] testOpenMsg = {0};
49 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
50 buffer.writeBytes(openMsg);
51
52 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
53 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053054
SureshBR3dab0972015-08-24 18:38:09 +053055 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053056
SureshBR3dab0972015-08-24 18:38:09 +053057 assertThat(message, sameInstance((PcepOpenMsg) message));
58 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
59 message.writeTo(buf);
60 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053061
SureshBR3dab0972015-08-24 18:38:09 +053062 int readLen = buf.writerIndex() - 0;
63 testOpenMsg = new byte[readLen];
64 buf.readBytes(testOpenMsg, 0, readLen);
65
66 assertThat(testOpenMsg, is(openMsg));
67
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053068 }
69
SureshBR3dab0972015-08-24 18:38:09 +053070 /**
71 * This test case checks open object with STATEFUL-PCE-CAPABILITY-TLV in Pcep Open message.
72 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053073 @Test
74 public void openMessageTest2() throws PcepParseException {
75
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053076 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x14, // common header
77 0x01, 0x10, 0x00, 0x10, // common object header
78 0x20, 0x1E, 0x78, 0x01, // OPEN object
79 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f}; // STATEFUL-PCE-CAPABILITY
80 byte[] testOpenMsg = {0};
81 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
82 buffer.writeBytes(openMsg);
83
84 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
85 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053086
SureshBR3dab0972015-08-24 18:38:09 +053087 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053088
SureshBR3dab0972015-08-24 18:38:09 +053089 assertThat(message, sameInstance((PcepOpenMsg) message));
90 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
91 message.writeTo(buf);
92 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053093
SureshBR3dab0972015-08-24 18:38:09 +053094 int readLen = buf.writerIndex() - 0;
95 testOpenMsg = new byte[readLen];
96 buf.readBytes(testOpenMsg, 0, readLen);
97
98 assertThat(testOpenMsg, is(openMsg));
99
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530100 }
101
SureshBR3dab0972015-08-24 18:38:09 +0530102 /**
103 * This test case checks open object with GmplsCapability tlv in Pcep Open message.
104 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530105 @Test
106 public void openMessageTest3() throws PcepParseException {
107
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530108 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x14, // common header
109 0x01, 0x10, 0x00, 0x10, // common object header
110 0x20, 0x1E, 0x78, 0x01, // OPEN object
111 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00}; //GMPLS-CAPABILITY-TLV
112
113 byte[] testOpenMsg = {0};
114 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
115 buffer.writeBytes(openMsg);
116
117 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
118 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530119
SureshBR3dab0972015-08-24 18:38:09 +0530120 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530121
SureshBR3dab0972015-08-24 18:38:09 +0530122 assertThat(message, sameInstance((PcepOpenMsg) message));
123 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
124 message.writeTo(buf);
125 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530126
SureshBR3dab0972015-08-24 18:38:09 +0530127 int readLen = buf.writerIndex() - 0;
128 testOpenMsg = new byte[readLen];
129 buf.readBytes(testOpenMsg, 0, readLen);
130
131
132 assertThat(testOpenMsg, is(openMsg));
133
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530134 }
135
SureshBR3dab0972015-08-24 18:38:09 +0530136 /**
137 * This test case checks open object with StatefulLspDbVer Tlv in Pcep Open message.
138 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530139 @Test
140 public void openMessageTest4() throws PcepParseException {
141
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530142 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x18,
143 0x01, 0x10, 0x00, 0x14, 0x20, 0x1e, 0x78, 0x20,
144 0x00, 0x17, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }; //StatefulLspDbVerTlv
145
146 byte[] testOpenMsg = {0};
147 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
148 buffer.writeBytes(openMsg);
149
150 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
151 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530152
SureshBR3dab0972015-08-24 18:38:09 +0530153 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530154
SureshBR3dab0972015-08-24 18:38:09 +0530155 assertThat(message, sameInstance((PcepOpenMsg) message));
156 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
157 message.writeTo(buf);
158 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530159
SureshBR3dab0972015-08-24 18:38:09 +0530160 int readLen = buf.writerIndex() - 0;
161 testOpenMsg = new byte[readLen];
162 buf.readBytes(testOpenMsg, 0, readLen);
163
164 assertThat(testOpenMsg, is(openMsg));
165
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530166 }
167
SureshBR3dab0972015-08-24 18:38:09 +0530168 /**
169 * This test case checks open object with no tlv's in Pcep Open message.
170 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530171 @Test
172 public void openMessageTest5() throws PcepParseException {
173
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530174 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x0C,
175 0x01, 0x10, 0x00, 0x08, 0x20, 0x1e, 0x78, (byte) 0xbd }; // no Tlvs in open messsage
176
177 byte[] testOpenMsg = {0};
178 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
179 buffer.writeBytes(openMsg);
180
181 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
182 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530183
SureshBR3dab0972015-08-24 18:38:09 +0530184 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530185
SureshBR3dab0972015-08-24 18:38:09 +0530186 assertThat(message, sameInstance((PcepOpenMsg) message));
187 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
188 message.writeTo(buf);
189 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530190
SureshBR3dab0972015-08-24 18:38:09 +0530191 int readLen = buf.writerIndex() - 0;
192 testOpenMsg = new byte[readLen];
193 buf.readBytes(testOpenMsg, 0, readLen);
194
195 assertThat(testOpenMsg, is(openMsg));
196
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530197 }
198
SureshBR3dab0972015-08-24 18:38:09 +0530199 /**
200 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV, PCECC-CAPABILITY-TLV
201 * with I bit set in Pcep Open message.
202 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530203 @Test
204 public void openMessageTest6() throws PcepParseException {
205
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530206 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x11, 0x00, 0x20, //p bit not set & i bit set
207 0x20, 0x1e, 0x78, (byte) 0xbd,
208 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f, // STATEFUL-PCE-CAPABILITY
209 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, //GMPLS-CAPABILITY-TLV
210 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, //PCECC-CAPABILITY-TLV
211 };
212
213 byte[] testOpenMsg = {0};
214 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
215 buffer.writeBytes(openMsg);
216
217 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
218 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530219
SureshBR3dab0972015-08-24 18:38:09 +0530220 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530221
SureshBR3dab0972015-08-24 18:38:09 +0530222 assertThat(message, sameInstance((PcepOpenMsg) message));
223 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
224 message.writeTo(buf);
225 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530226
SureshBR3dab0972015-08-24 18:38:09 +0530227 int readLen = buf.writerIndex() - 0;
228 testOpenMsg = new byte[readLen];
229 buf.readBytes(testOpenMsg, 0, readLen);
230
231 assertThat(testOpenMsg, is(openMsg));
232
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530233 }
234
SureshBR3dab0972015-08-24 18:38:09 +0530235 /**
236 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV, PCECC-CAPABILITY-TLV
237 * with P bit set in Pcep Open message.
238 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530239 @Test
240 public void openMessageTest7() throws PcepParseException {
241
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530242 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x12, 0x00, 0x20, //p bit set & i bit not set
243 0x20, 0x1e, 0x78, (byte) 0xbd,
244 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f, //STATEFUL-PCE-CAPABILITY
245 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, //GMPLS-CAPABILITY-TLV
246 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, //PCECC-CAPABILITY-TLV
247 };
248
249 byte[] testOpenMsg = {0};
250 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
251 buffer.writeBytes(openMsg);
252
253 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
254 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530255
SureshBR3dab0972015-08-24 18:38:09 +0530256 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530257
SureshBR3dab0972015-08-24 18:38:09 +0530258 assertThat(message, sameInstance((PcepOpenMsg) message));
259 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
260 message.writeTo(buf);
261 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530262
SureshBR3dab0972015-08-24 18:38:09 +0530263 int readLen = buf.writerIndex() - 0;
264 testOpenMsg = new byte[readLen];
265 buf.readBytes(testOpenMsg, 0, readLen);
266
267 assertThat(testOpenMsg, is(openMsg));
268
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530269 }
270
SureshBR3dab0972015-08-24 18:38:09 +0530271 /**
272 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV, PCECC-CAPABILITY-TLV
273 * with P & I bits set in Pcep Open message.
274 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530275 @Test
276 public void openMessageTest8() throws PcepParseException {
277
278 /* OPEN OBJECT (STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV, PCECC-CAPABILITY-TLV)
279 with p bit set & i bit set.
280 */
281 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x13, 0x00, 0x20, //p bit set & i bit set
282 0x20, 0x1e, 0x78, (byte) 0xbd,
283 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f, //STATEFUL-PCE-CAPABILITY
284 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, //GMPLS-CAPABILITY-TLV
285 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, //PCECC-CAPABILITY-TLV
286 };
287
288 byte[] testOpenMsg = {0};
289 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
290 buffer.writeBytes(openMsg);
291
292 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
293 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530294
SureshBR3dab0972015-08-24 18:38:09 +0530295 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530296
SureshBR3dab0972015-08-24 18:38:09 +0530297 assertThat(message, sameInstance((PcepOpenMsg) message));
298 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
299 message.writeTo(buf);
300 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530301
SureshBR3dab0972015-08-24 18:38:09 +0530302 int readLen = buf.writerIndex() - 0;
303 testOpenMsg = new byte[readLen];
304 buf.readBytes(testOpenMsg, 0, readLen);
305
306 assertThat(testOpenMsg, is(openMsg));
307
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530308 }
309
SureshBR3dab0972015-08-24 18:38:09 +0530310 /**
311 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV, PCECC-CAPABILITY-TLV
312 * with P & I bits set and invalid session id in Pcep Open message.
313 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530314 @Test
315 public void openMessageTest9() throws PcepParseException {
316
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530317 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x13, 0x00, 0x20, //p bit set & i bit set
318 0x20, 0x1e, 0x78, 0x00, //invalid sessionID
319 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f, //STATEFUL-PCE-CAPABILITY
320 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, //GMPLS-CAPABILITY-TLV
321 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, //PCECC-CAPABILITY-TLV
322 };
323
324 byte[] testOpenMsg = {0};
325 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
326 buffer.writeBytes(openMsg);
327
328 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
329 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530330
SureshBR3dab0972015-08-24 18:38:09 +0530331 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530332
SureshBR3dab0972015-08-24 18:38:09 +0530333 assertThat(message, sameInstance((PcepOpenMsg) message));
334 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
335 message.writeTo(buf);
336 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530337
SureshBR3dab0972015-08-24 18:38:09 +0530338 int readLen = buf.writerIndex() - 0;
339 testOpenMsg = new byte[readLen];
340 buf.readBytes(testOpenMsg, 0, readLen);
341
342
343 assertThat(testOpenMsg, is(openMsg));
344
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530345 }
346
SureshBR3dab0972015-08-24 18:38:09 +0530347 /**
348 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV
349 * in Pcep Open message.
350 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530351 @Test
352 public void openMessageTest10() throws PcepParseException {
353
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530354 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x1C, // common header
355 0x01, 0x10, 0x00, 0x18, // common object header
356 0x20, 0x05, 0x1E, 0x01, // OPEN object
357 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
358 0x00, 0x00, 0x00, 0x05,
359 0x00, 0x0E, 0x00, 0x04, // GMPLS-CAPABILITY-TLV
360 0x00, 0x00, 0x00, 0x00};
361
362 byte[] testOpenMsg = {0};
363 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
364 buffer.writeBytes(openMsg);
365
366 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
367 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530368
SureshBR3dab0972015-08-24 18:38:09 +0530369 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530370
SureshBR3dab0972015-08-24 18:38:09 +0530371 assertThat(message, sameInstance((PcepOpenMsg) message));
372 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
373 message.writeTo(buf);
374 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530375
SureshBR3dab0972015-08-24 18:38:09 +0530376 int readLen = buf.writerIndex() - 0;
377 testOpenMsg = new byte[readLen];
378 buf.readBytes(testOpenMsg, 0, readLen);
379
380 assertThat(testOpenMsg, is(openMsg));
381
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530382 }
383
SureshBR3dab0972015-08-24 18:38:09 +0530384 /**
385 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV,
386 * PCECC-CAPABILITY-TLV, TED Capability TLV in Pcep Open message.
387 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530388 @Test
389 public void openMessageTest11() throws PcepParseException {
390
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530391 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x2C, // common header
392 0x01, 0x10, 0x00, 0x28, // common object header
393 0x20, 0x05, 0x1E, 0x01, // OPEN object
394 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
395 0x00, 0x00, 0x00, 0x05, 0x00, 0x0E, 0x00, 0x04, // GMPLS-CAPABILITY-TLV
396 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // PCECC-CAPABILITY-TLV
397 0x00, 0x00, 0x00, 0x03, 0x00, (byte) 0x84, 0x00, 0x04, // TED Capability TLV
398 0x00, 0x00, 0x00, 0x00 };
399
400 byte[] testOpenMsg = {0};
401 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
402 buffer.writeBytes(openMsg);
403
404 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
405 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530406
SureshBR3dab0972015-08-24 18:38:09 +0530407 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530408
SureshBR3dab0972015-08-24 18:38:09 +0530409 assertThat(message, sameInstance((PcepOpenMsg) message));
410 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
411 message.writeTo(buf);
412 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530413
SureshBR3dab0972015-08-24 18:38:09 +0530414 int readLen = buf.writerIndex() - 0;
415 testOpenMsg = new byte[readLen];
416 buf.readBytes(testOpenMsg, 0, readLen);
417
418 assertThat(testOpenMsg, is(openMsg));
419
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530420 }
421
SureshBR3dab0972015-08-24 18:38:09 +0530422 /**
423 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV,
424 * PCECC-CAPABILITY-TLV in Pcep Open message.
425 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530426 @Test
427 public void openMessageTest12() throws PcepParseException {
428
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530429 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, // common header
430 0x01, 0x10, 0x00, 0x20, // common object header
431 0x20, 0x05, 0x1E, 0x01, // OPEN object
432 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
433 0x00, 0x00, 0x00, 0x05, 0x00, 0x0E, 0x00, 0x04, // GMPLS-CAPABILITY-TLV
434 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // PCECC-CAPABILITY-TLV
435 0x00, 0x00, 0x00, 0x03};
436
437 byte[] testOpenMsg = {0};
438 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
439 buffer.writeBytes(openMsg);
440
441 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
442 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530443
SureshBR3dab0972015-08-24 18:38:09 +0530444 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530445
SureshBR3dab0972015-08-24 18:38:09 +0530446 assertThat(message, sameInstance((PcepOpenMsg) message));
447 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
448 message.writeTo(buf);
449 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530450
SureshBR3dab0972015-08-24 18:38:09 +0530451 int readLen = buf.writerIndex() - 0;
452 testOpenMsg = new byte[readLen];
453 buf.readBytes(testOpenMsg, 0, readLen);
454
455 assertThat(testOpenMsg, is(openMsg));
456
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530457 }
458
SureshBR3dab0972015-08-24 18:38:09 +0530459 /**
460 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV
461 * in Pcep Open message.
462 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530463 @Test
464 public void openMessageTest13() throws PcepParseException {
465
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530466 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x1c, // common header
467 0x01, 0x10, 0x00, 0x18, // common object header
468 0x20, 0x05, 0x1E, 0x01, // OPEN object
469 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
470 0x00, 0x00, 0x00, 0x05, 0x00, 0x0E, 0x00, 0x04, // GMPLS-CAPABILITY-TLV
471 0x00, 0x00, 0x00, 0x00};
472
473 byte[] testOpenMsg = {0};
474 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
475 buffer.writeBytes(openMsg);
476
477 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
478 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530479
SureshBR3dab0972015-08-24 18:38:09 +0530480 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530481
SureshBR3dab0972015-08-24 18:38:09 +0530482 assertThat(message, sameInstance((PcepOpenMsg) message));
483 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
484 message.writeTo(buf);
485 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530486
SureshBR3dab0972015-08-24 18:38:09 +0530487 int readLen = buf.writerIndex() - 0;
488 testOpenMsg = new byte[readLen];
489 buf.readBytes(testOpenMsg, 0, readLen);
490
491
492 assertThat(testOpenMsg, is(openMsg));
493
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530494 }
495
SureshBR3dab0972015-08-24 18:38:09 +0530496 /**
497 * This test case checks open object with STATEFUL-PCE-CAPABILITY in Pcep Open message.
498 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530499 @Test
500 public void openMessageTest14() throws PcepParseException {
501
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530502 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x14, // common header
503 0x01, 0x10, 0x00, 0x10, // common object header
504 0x20, 0x05, 0x1E, 0x01, // OPEN object
505 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
506 0x00, 0x00, 0x00, 0x05};
507
508 byte[] testOpenMsg = {0};
509 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
510 buffer.writeBytes(openMsg);
511
512 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
513 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530514
SureshBR3dab0972015-08-24 18:38:09 +0530515 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530516
SureshBR3dab0972015-08-24 18:38:09 +0530517 assertThat(message, sameInstance((PcepOpenMsg) message));
518 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
519 message.writeTo(buf);
520 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530521
SureshBR3dab0972015-08-24 18:38:09 +0530522 int readLen = buf.writerIndex() - 0;
523 testOpenMsg = new byte[readLen];
524 buf.readBytes(testOpenMsg, 0, readLen);
525
526 assertThat(testOpenMsg, is(openMsg));
527
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530528 }
529
SureshBR3dab0972015-08-24 18:38:09 +0530530 /**
531 * This test case checks open object with no tlv Pcep Open message.
532 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530533 @Test
534 public void openMessageTest15() throws PcepParseException {
535
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530536 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x0c, // common header
537 0x01, 0x10, 0x00, 0x08, // common object header
538 0x20, 0x05, 0x1E, 0x01 // OPEN object
539 };
540
541 byte[] testOpenMsg = {0};
542 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
543 buffer.writeBytes(openMsg);
544
545 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
546 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530547
SureshBR3dab0972015-08-24 18:38:09 +0530548 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530549
SureshBR3dab0972015-08-24 18:38:09 +0530550 assertThat(message, sameInstance((PcepOpenMsg) message));
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530551
SureshBR3dab0972015-08-24 18:38:09 +0530552 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
553 message.writeTo(buf);
554 testOpenMsg = buf.array();
555
556 int readLen = buf.writerIndex() - 0;
557 testOpenMsg = new byte[readLen];
558 buf.readBytes(testOpenMsg, 0, readLen);
559 assertThat(testOpenMsg, is(openMsg));
560
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530561 }
562}