blob: 6b7ead0dba59cf0509848947062bd5fa3999742e [file] [log] [blame]
Manicdb26412016-02-16 19:44:34 +05301/*
2 * Copyright 2016 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.ospf.protocol.ospfpacket.types;
17
18import org.jboss.netty.buffer.ChannelBuffer;
19import org.jboss.netty.buffer.ChannelBuffers;
20import org.junit.After;
21import org.junit.Assert;
22import org.junit.Before;
23import org.junit.Test;
24import org.onlab.packet.Ip4Address;
25import org.onosproject.ospf.protocol.lsa.LsaHeader;
26import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader;
27import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader;
28import org.onosproject.ospf.protocol.util.OspfPacketType;
29
30import java.util.List;
31import java.util.Vector;
32
33import static org.hamcrest.CoreMatchers.is;
34import static org.hamcrest.CoreMatchers.notNullValue;
35import static org.hamcrest.MatcherAssert.assertThat;
36
37/**
38 * Unit test class for OspfRouterId.
39 */
40public class DdPacketTest {
41
42 private byte[] packet;
43 private byte[] result2;
44 private DdPacket ddPacket;
45 private Vector<LsaHeader> lsaHeaderList = new Vector<LsaHeader>();
46 private int result;
47 private long result1;
48 private OpaqueLsaHeader opqueHeader;
49 private OpaqueLsaHeader opqueHeader1;
50 private List<LsaHeader> header;
51 private OspfPacketHeader ospfPacketHeader;
52 private ChannelBuffer channelBuffer;
53 private LsaHeader lsaHeader;
54 private long result3;
55 private OspfPacketType ospfPacketType;
56
57 @Before
58 public void setUp() throws Exception {
59 ddPacket = new DdPacket();
60 ddPacket.setAuthType(1);
61 ddPacket.setOspftype(2);
62 ddPacket.setRouterId(Ip4Address.valueOf("10.226.165.164"));
63 ddPacket.setAreaId(Ip4Address.valueOf("10.226.165.100"));
64 ddPacket.setChecksum(201);
65 ddPacket.setAuthentication(2);
66 ddPacket.setOspfPacLength(48);
67 ddPacket.setOspfVer(2);
68 }
69
70 @After
71 public void tearDown() throws Exception {
72 ddPacket = null;
73 lsaHeaderList.clear();
74 opqueHeader = null;
75 opqueHeader1 = null;
76 header = null;
77 ospfPacketHeader = null;
78 channelBuffer = null;
79 lsaHeader = null;
80 ospfPacketType = null;
81 }
82
83 /**
84 * Tests isOpaqueCapable() getter method.
85 */
86 @Test
87 public void testIsOpaqueCapable() throws Exception {
88 ddPacket.setIsOpaqueCapable(true);
89 assertThat(ddPacket.isOpaqueCapable(), is(true));
90 }
91
92 /**
93 * Tests isOpaqueCapable() setter method.
94 */
95 @Test
96 public void testSetIsOpaqueCapable() throws Exception {
97 ddPacket.setIsOpaqueCapable(true);
98 assertThat(ddPacket.isOpaqueCapable(), is(true));
99 }
100
101 /**
102 * Tests ims() getter method.
103 */
104 @Test
105 public void testGetIms() throws Exception {
106 ddPacket.setIms(1);
107 result = ddPacket.ims();
108 assertThat(result, is(notNullValue()));
109 assertThat(result, is(1));
110 }
111
112 /**
113 * Tests ims() setter method.
114 */
115 @Test
116 public void testSetIms() throws Exception {
117 ddPacket.setIms(1);
118 result = ddPacket.ims();
119 assertThat(result, is(notNullValue()));
120 assertThat(result, is(1));
121 }
122
123 /**
124 * Tests isMaster() getter method.
125 */
126 @Test
127 public void testGetIsMaster() throws Exception {
128 ddPacket.setIsMaster(2);
129 result = ddPacket.isMaster();
130 assertThat(result, is(notNullValue()));
131 assertThat(result, is(2));
132 }
133
134 /**
135 * Tests isMaster() setter method.
136 */
137 @Test
138 public void testSetIsMaster() throws Exception {
139 ddPacket.setIsMaster(2);
140 result = ddPacket.isMaster();
141 assertThat(result, is(notNullValue()));
142 assertThat(result, is(2));
143 }
144
145 /**
146 * Tests isInitialize() getter method.
147 */
148 @Test
149 public void testGetIsInitialize() throws Exception {
150 ddPacket.setIsInitialize(3);
151 result = ddPacket.isInitialize();
152 assertThat(result, is(notNullValue()));
153 assertThat(result, is(3));
154 }
155
156 /**
157 * Tests isInitialize() setter method.
158 */
159 @Test
160 public void testSetIsInitialize() throws Exception {
161 ddPacket.setIsInitialize(3);
162 int result = ddPacket.isInitialize();
163 assertThat(result, is(notNullValue()));
164 assertThat(result, is(3));
165 }
166
167 /**
168 * Tests isMore() getter method.
169 */
170 @Test
171 public void testGetIsMore() throws Exception {
172 ddPacket.setIsMore(4);
173 result = ddPacket.isMore();
174 assertThat(result, is(notNullValue()));
175 assertThat(result, is(4));
176 }
177
178 /**
179 * Tests isMore() setter method.
180 */
181 @Test
182 public void testSetIsMore() throws Exception {
183 ddPacket.setIsMore(4);
184 int result = ddPacket.isMore();
185 assertThat(result, is(notNullValue()));
186 assertThat(result, is(4));
187 }
188
189 /**
190 * Tests imtu() getter method.
191 */
192 @Test
193 public void testGetImtu() throws Exception {
194 ddPacket.setImtu(5);
195 result = ddPacket.imtu();
196 assertThat(result, is(notNullValue()));
197 assertThat(result, is(5));
198 }
199
200 /**
201 * Tests imtu() setter method.
202 */
203 @Test
204 public void testSetImtu() throws Exception {
205 ddPacket.setImtu(5);
206 result = ddPacket.imtu();
207 assertThat(result, is(notNullValue()));
208 assertThat(result, is(5));
209 }
210
211 /**
212 * Tests options() getter method.
213 */
214 @Test
215 public void testGetOptions() throws Exception {
216 ddPacket.setOptions(2);
217 result = ddPacket.options();
218 assertThat(result, is(notNullValue()));
219 assertThat(result, is(2));
220 }
221
222 /**
223 * Tests options() setter method.
224 */
225 @Test
226 public void testSetOptions() throws Exception {
227 ddPacket.setOptions(2);
228 result = ddPacket.options();
229 Assert.assertNotNull(result);
230 Assert.assertEquals(2, result);
231 }
232
233 /**
234 * Tests sequenceNo() getter method.
235 */
236 @Test
237 public void testGetSequenceno() throws Exception {
238 ddPacket.setSequenceNo(2020);
239 result1 = ddPacket.sequenceNo();
240 assertThat(result1, is(notNullValue()));
241 assertThat(result1, is(2020L));
242 }
243
244 /**
245 * Tests sequenceNo() setter method.
246 */
247 @Test
248 public void testSetSequenceno() throws Exception {
249 ddPacket.setSequenceNo(2020);
250 result3 = ddPacket.sequenceNo();
251 assertThat(result3, is(notNullValue()));
252 assertThat(result3, is(2020L));
253 }
254
255 /**
256 * Tests getLsaHeaderList() getter method.
257 */
258 @Test
259 public void testGetLsaHeaderList() throws Exception {
260 ddPacket.addLsaHeader(createLsaHeader());
261 opqueHeader = new OpaqueLsaHeader();
262 opqueHeader.setLsType(9);
263 opqueHeader.setLsPacketLen(48);
264 opqueHeader.setLsCheckSum(10);
265 opqueHeader.setAge(4);
266 opqueHeader.setOpaqueId(9);
267 opqueHeader.setOpaqueType(9);
268 opqueHeader.setLsSequenceNo(250);
269 opqueHeader.setAdvertisingRouter(Ip4Address.valueOf("100.226.165.165"));
270 opqueHeader.setOptions(2);
271 ddPacket.setIsOpaqueCapable(true);
272 ddPacket.addLsaHeader(opqueHeader);
273 opqueHeader1 = new OpaqueLsaHeader();
274 opqueHeader1.setLsType(10);
275 opqueHeader1.setLsPacketLen(48);
276 opqueHeader1.setLsCheckSum(10);
277 opqueHeader1.setAge(4);
278 opqueHeader1.setOpaqueId(9);
279 opqueHeader1.setOpaqueType(9);
280 opqueHeader1.setLsSequenceNo(250);
281 opqueHeader1.setAdvertisingRouter(Ip4Address.valueOf("100.226.165.165"));
282 opqueHeader1.setOptions(66);
283 ddPacket.addLsaHeader(opqueHeader1);
284 header = ddPacket.getLsaHeaderList();
285 assertThat(header, is(notNullValue()));
286 }
287
288 /**
289 * Tests getLsaHeaderList() setter method.
290 */
291 @Test
292 public void testSetLsaHeaderList() throws Exception {
293 ddPacket.addLsaHeader(createLsaHeader());
294 opqueHeader = new OpaqueLsaHeader();
295 opqueHeader.setLsType(9);
296 opqueHeader.setLsPacketLen(48);
297 opqueHeader.setLsCheckSum(10);
298 opqueHeader.setAge(4);
299 opqueHeader.setOpaqueId(9);
300 opqueHeader.setOpaqueType(9);
301 opqueHeader.setLsSequenceNo(250);
302 opqueHeader.setAdvertisingRouter(Ip4Address.valueOf("100.226.165.165"));
303 opqueHeader.setOptions(66);
304 ddPacket.addLsaHeader(opqueHeader);
305 opqueHeader1 = new OpaqueLsaHeader();
306 opqueHeader1.setLsType(10);
307 opqueHeader1.setLsPacketLen(48);
308 opqueHeader1.setLsCheckSum(10);
309 opqueHeader1.setAge(4);
310 opqueHeader1.setOpaqueId(9);
311 opqueHeader1.setOpaqueType(9);
312 opqueHeader1.setLsSequenceNo(250);
313 opqueHeader1.setAdvertisingRouter(Ip4Address.valueOf("100.226.165.165"));
314 opqueHeader1.setOptions(2);
315 ddPacket.addLsaHeader(opqueHeader1);
316 header = ddPacket.getLsaHeaderList();
317 assertThat(header.contains(createLsaHeader()), is(true));
318 }
319
320 /**
321 * Tests addLsaHeader() method.
322 */
323 @Test
324 public void testAddLsaHeader() throws Exception {
325 ddPacket.addLsaHeader(createLsaHeader());
326 assertThat(ddPacket, is(notNullValue()));
327 }
328
329 /**
330 * Tests ospfMessageType() getter method.
331 */
332 @Test
333 public void testGetOspfMessageType() throws Exception {
334 ospfPacketType = ddPacket.ospfMessageType();
335 assertThat(ospfPacketType, is(notNullValue()));
336 assertThat(ospfPacketType, is(OspfPacketType.DD));
337 }
338
339 /**
340 * Tests readFrom() method.
341 */
342 @Test
343 public void testReadFrom() throws Exception {
344 ospfPacketHeader = new OspfPacketHeader();
345 ospfPacketHeader.setAreaId(Ip4Address.valueOf("1.1.1.1"));
346 ospfPacketHeader.setAuthentication(0);
347 ospfPacketHeader.setAuthType(0);
348 ospfPacketHeader.setChecksum(12345);
349 ospfPacketHeader.setDestinationIp(Ip4Address.valueOf("10.10.10.10"));
350 ospfPacketHeader.setOspfPacLength(56);
351 ospfPacketHeader.setOspftype(2);
352 ospfPacketHeader.setOspfVer(2);
353 ospfPacketHeader.setRouterId(Ip4Address.valueOf("2.2.2.2"));
354 ospfPacketHeader.setSourceIp(Ip4Address.valueOf("3.3.3.3"));
355 ddPacket.setIsOpaqueCapable(true);
356 ddPacket.setOptions(66);
357 ddPacket = new DdPacket(ospfPacketHeader);
358 packet = createByteForDdPacket();
359 channelBuffer = ChannelBuffers.copiedBuffer(packet);
360 ddPacket.readFrom(channelBuffer);
361 assertThat(ddPacket, is(notNullValue()));
362 assertThat(ddPacket.ospfMessageType(), is(OspfPacketType.DD));
363 }
364
365 /**
366 * Tests asBytes() method.
367 */
368 @Test
369 public void testAsBytes() throws Exception {
370 result2 = ddPacket.asBytes();
371 assertThat(result2, is(notNullValue()));
372 }
373
374 /**
375 * Tests getDdHeaderAsByteArray() method.
376 */
377 @Test
378 public void testGetDdHeaderAsByteArray() throws Exception {
379 opqueHeader = new OpaqueLsaHeader();
380 opqueHeader.setLsType(9);
381 opqueHeader.setLsPacketLen(48);
382 opqueHeader.setLsCheckSum(10);
383 opqueHeader.setAge(4);
384 opqueHeader.setOpaqueId(9);
385 opqueHeader.setOpaqueType(9);
386 opqueHeader.setLsSequenceNo(250);
387 opqueHeader.setAdvertisingRouter(Ip4Address.valueOf("100.226.165.165"));
388 opqueHeader.setOptions(66);
389 ddPacket.addLsaHeader(opqueHeader);
390 opqueHeader1 = new OpaqueLsaHeader();
391 opqueHeader1.setLsType(10);
392 opqueHeader1.setLsPacketLen(48);
393 opqueHeader1.setLsCheckSum(10);
394 opqueHeader1.setAge(4);
395 opqueHeader1.setOpaqueId(9);
396 opqueHeader1.setOpaqueType(9);
397 opqueHeader1.setLsSequenceNo(250);
398 opqueHeader1.setAdvertisingRouter(Ip4Address.valueOf("100.226.165.165"));
399 opqueHeader1.setOptions(2);
400 ddPacket.addLsaHeader(opqueHeader1);
401 result2 = ddPacket.getDdHeaderAsByteArray();
402 assertThat(result2, is(notNullValue()));
403 }
404
405 /**
406 * Tests getDdBodyAsByteArray() method.
407 */
408 @Test
409 public void testGetDdBodyAsByteArray() throws Exception {
410 lsaHeader = createLsaHeader();
411 ddPacket.addLsaHeader(lsaHeader);
412 result2 = ddPacket.getDdBodyAsByteArray();
413 assertThat(result2, is(notNullValue()));
414 }
415
416 /**
417 * Tests to string method.
418 */
419 @Test
420 public void testToString() throws Exception {
421 assertThat(ddPacket.toString(), is(notNullValue()));
422 }
423
424 /**
425 * Utility method used by junit methods.
426 */
427 private LsaHeader createLsaHeader() {
428 lsaHeader = new LsaHeader();
429 lsaHeader.setAge(10);
430 lsaHeader.setLinkStateId("10.226.165.164");
431 lsaHeader.setLsCheckSum(222);
432 lsaHeader.setLsPacketLen(48);
433 lsaHeader.setLsSequenceNo(2020);
434 lsaHeader.setLsType(2);
435 lsaHeader.setOptions(2);
436 lsaHeader.setAdvertisingRouter(Ip4Address.valueOf("10.226.165.165"));
437 return lsaHeader;
438 }
439
440 /**
441 * Utility method used by junit methods.
442 */
443 private byte[] createByteForDdPacket() {
444 byte[] ddPacket = {5, -36, 66, 1, 65, 119, -87, 126, 0, 23, 2, 1, 10, 10,
445 10, 10, 10, 10, 10, 10, -128, 0, 0, 6, -69, 26, 0, 36};
446
447 return ddPacket;
448 }
449}