blob: 238789037c09ca54f7d5dc1d6b41beb8070a2c9c [file] [log] [blame]
Kiran Ramachandra959353a2016-02-16 22:12:07 +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.lsa.tlvtypes;
17
18import org.jboss.netty.buffer.ChannelBuffer;
19import org.jboss.netty.buffer.ChannelBuffers;
20import org.junit.After;
21import org.junit.Before;
22import org.junit.Test;
23import org.onosproject.ospf.protocol.lsa.TlvHeader;
24
25import static org.hamcrest.MatcherAssert.assertThat;
26import static org.hamcrest.Matchers.*;
27
28/**
29 * Unit test class for LinkTlv.
30 */
31public class LinkTlvTest {
32
33 private final byte[] packet1 = {0, 9, 0, 4, 0, 0, 0, 1};
34 private final byte[] packet2 = {0, 1, 0, 4, 0, 0, 0, 1};
35 private final byte[] packet3 = {0, 2, 0, 4, 0, 0, 0, 1};
36 private final byte[] packet4 = {0, 3, 0, 4, 0, 0, 0, 1};
37 private final byte[] packet5 = {0, 4, 0, 4, 0, 0, 0, 1};
38 private final byte[] packet6 = {0, 6, 0, 4, 0, 0, 0, 1};
39 private final byte[] packet7 = {0, 7, 0, 4, 0, 0, 0, 1};
40 private final byte[] packet8 = {0, 8, 0, 4, 0, 0, 0, 1};
41 private final byte[] packet9 = {0, 9, 0, 4, 0, 0, 0, 1,
42 0, 9, 0, 4, 0, 0, 0, 1,
43 0, 1, 0, 4, 0, 0, 0, 1,
44 0, 2, 0, 4, 0, 0, 0, 1,
45 0, 3, 0, 4, 0, 0, 0, 1,
46 0, 4, 0, 4, 0, 0, 0, 1,
47 0, 6, 0, 4, 0, 0, 0, 1,
48 0, 7, 0, 4, 0, 0, 0, 1,
49 0, 8, 0, 4, 0, 0, 0, 1,
50 };
51 private LinkTlv linkTlv;
52 private TlvHeader header;
53 private ChannelBuffer channelBuffer;
54 private byte[] result;
55
56 @Before
57 public void setUp() throws Exception {
58 linkTlv = new LinkTlv(new TlvHeader());
59
60 }
61
62 @After
63 public void tearDown() throws Exception {
64 linkTlv = null;
65 header = null;
66 channelBuffer = null;
67 result = null;
68 }
69
70 /**
71 * Tests to string method.
72 */
73 @Test
74 public void testToString() throws Exception {
75 assertThat(linkTlv.toString(), is(notNullValue()));
76 }
77
78 /**
79 * Tests readFrom() method.
80 */
81 @Test
82 public void testReadFrom() throws Exception {
83
84 header = new TlvHeader();
85 header.setTlvLength(8);
86 header.setTlvType(9);
87 linkTlv = new LinkTlv(header);
88 channelBuffer = ChannelBuffers.copiedBuffer(packet1);
89 linkTlv.readFrom(channelBuffer);
90 assertThat(linkTlv, is(notNullValue()));
91
92 header = new TlvHeader();
93 header.setTlvLength(8);
94 header.setTlvType(1);
95 linkTlv = new LinkTlv(header);
96 channelBuffer = ChannelBuffers.copiedBuffer(packet2);
97 linkTlv.readFrom(channelBuffer);
98 assertThat(linkTlv, is(notNullValue()));
99
100 header = new TlvHeader();
101 header.setTlvLength(8);
102 header.setTlvType(2);
103 linkTlv = new LinkTlv(header);
104 channelBuffer = ChannelBuffers.copiedBuffer(packet3);
105 linkTlv.readFrom(channelBuffer);
106 assertThat(linkTlv, is(notNullValue()));
107
108 header = new TlvHeader();
109 header.setTlvLength(8);
110 header.setTlvType(3);
111 linkTlv = new LinkTlv(header);
112 channelBuffer = ChannelBuffers.copiedBuffer(packet4);
113 linkTlv.readFrom(channelBuffer);
114 assertThat(linkTlv, is(notNullValue()));
115
116 header = new TlvHeader();
117 header.setTlvLength(8);
118 header.setTlvType(4);
119 linkTlv = new LinkTlv(header);
120 channelBuffer = ChannelBuffers.copiedBuffer(packet5);
121 linkTlv.readFrom(channelBuffer);
122 assertThat(linkTlv, is(notNullValue()));
123
124 header = new TlvHeader();
125 header.setTlvLength(8);
126 header.setTlvType(5);
127 linkTlv = new LinkTlv(header);
128 channelBuffer = ChannelBuffers.copiedBuffer(packet1);
129 linkTlv.readFrom(channelBuffer);
130 assertThat(linkTlv, is(notNullValue()));
131
132 header = new TlvHeader();
133 header.setTlvLength(8);
134 header.setTlvType(6);
135 linkTlv = new LinkTlv(header);
136 channelBuffer = ChannelBuffers.copiedBuffer(packet6);
137 linkTlv.readFrom(channelBuffer);
138 assertThat(linkTlv, is(notNullValue()));
139
140 header = new TlvHeader();
141 header.setTlvLength(8);
142 header.setTlvType(7);
143 linkTlv = new LinkTlv(header);
144 channelBuffer = ChannelBuffers.copiedBuffer(packet7);
145 linkTlv.readFrom(channelBuffer);
146 assertThat(linkTlv, is(notNullValue()));
147
148 header = new TlvHeader();
149 header.setTlvLength(8);
150 header.setTlvType(8);
151 linkTlv = new LinkTlv(header);
152 channelBuffer = ChannelBuffers.copiedBuffer(packet8);
153 linkTlv.readFrom(channelBuffer);
154 assertThat(linkTlv, is(notNullValue()));
155 assertThat(linkTlv, instanceOf(LinkTlv.class));
156 }
157
158 /**
159 * Tests asBytes() method.
160 */
161 @Test
162 public void testAsBytes() throws Exception {
163 result = linkTlv.asBytes();
164 assertThat(result, is(notNullValue()));
165 }
166
167
168 /**
169 * Tests getTlvBodyAsByteArray() method.
170 */
171 @Test
172 public void testGetTlvBodyAsByteArray() throws Exception {
173
174 channelBuffer = ChannelBuffers.copiedBuffer(packet9);
175 linkTlv.readFrom(channelBuffer);
176
177 result = linkTlv.getTlvBodyAsByteArray();
178 assertThat(result, is(notNullValue()));
179 }
180}