blob: bd9a443a42645d447122a272b611393008d7ed96 [file] [log] [blame]
PRASHANTH SHIVANANJAPPA491b8af2016-04-27 19:23:24 +05301/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2016-present Open Networking Foundation
PRASHANTH SHIVANANJAPPA491b8af2016-04-27 19:23:24 +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 */
16package org.onosproject.isis.io.isispacket.tlv;
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;
23
24import static org.hamcrest.MatcherAssert.assertThat;
25import static org.hamcrest.Matchers.instanceOf;
26
27/**
28 * Unit test class for TlvFinder.
29 */
30public class TlvFinderTest {
31
32 private final byte[] tlv = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
33 private final byte[] tlv1 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
34 private TlvFinder tlvFinder;
35 private TlvHeader tlvHeader;
36 private ChannelBuffer channelBuffer;
37 private IsisTlv isisTlv;
38
39 @Before
40 public void setUp() throws Exception {
41 tlvFinder = new TlvFinder();
42 tlvHeader = new TlvHeader();
43 }
44
45 @After
46 public void tearDown() throws Exception {
47 tlvFinder = null;
48 isisTlv = null;
49 }
50
51 /**
52 * Tests IsisTlv() getter method.
53 */
54 @Test
55 public void testIsisTlv() throws Exception {
56 channelBuffer = ChannelBuffers.copiedBuffer(tlv);
57
58 tlvHeader.setTlvType(TlvType.AREAADDRESS.value());
59 isisTlv = tlvFinder.findTlv(tlvHeader, channelBuffer);
60 assertThat(isisTlv, instanceOf(AreaAddressTlv.class));
61
62 channelBuffer = ChannelBuffers.copiedBuffer(tlv);
63 tlvHeader.setTlvType(TlvType.HOSTNAME.value());
64 isisTlv = tlvFinder.findTlv(tlvHeader, channelBuffer);
65 assertThat(isisTlv, instanceOf(HostNameTlv.class));
66
67 channelBuffer = ChannelBuffers.copiedBuffer(tlv);
68 tlvHeader.setTlvType(TlvType.IDRPINFORMATION.value());
69 isisTlv = tlvFinder.findTlv(tlvHeader, channelBuffer);
70 assertThat(isisTlv, instanceOf(IdrpInformationTlv.class));
71
72 channelBuffer = ChannelBuffers.copiedBuffer(tlv);
73 tlvHeader.setTlvType(TlvType.IPEXTENDEDREACHABILITY.value());
74 isisTlv = tlvFinder.findTlv(tlvHeader, channelBuffer);
75 assertThat(isisTlv, instanceOf(IpExtendedReachabilityTlv.class));
76
77 channelBuffer = ChannelBuffers.copiedBuffer(tlv);
78 tlvHeader.setTlvType(TlvType.IPINTERFACEADDRESS.value());
79 isisTlv = tlvFinder.findTlv(tlvHeader, channelBuffer);
80 assertThat(isisTlv, instanceOf(IpInterfaceAddressTlv.class));
81
82 channelBuffer = ChannelBuffers.copiedBuffer(tlv);
83 tlvHeader.setTlvType(TlvType.IPINTERNALREACHABILITY.value());
84 isisTlv = tlvFinder.findTlv(tlvHeader, channelBuffer);
85 assertThat(isisTlv, instanceOf(IpInternalReachabilityTlv.class));
86
87 channelBuffer = ChannelBuffers.copiedBuffer(tlv);
88 tlvHeader.setTlvType(TlvType.PROTOCOLSUPPORTED.value());
89 isisTlv = tlvFinder.findTlv(tlvHeader, channelBuffer);
90 assertThat(isisTlv, instanceOf(ProtocolSupportedTlv.class));
91
92 channelBuffer = ChannelBuffers.copiedBuffer(tlv);
93 tlvHeader.setTlvType(TlvType.ISREACHABILITY.value());
94 isisTlv = tlvFinder.findTlv(tlvHeader, channelBuffer);
95 assertThat(isisTlv, instanceOf(IsReachabilityTlv.class));
96
97 channelBuffer = ChannelBuffers.copiedBuffer(tlv);
98 tlvHeader.setTlvType(TlvType.ISNEIGHBORS.value());
99 isisTlv = tlvFinder.findTlv(tlvHeader, channelBuffer);
100 assertThat(isisTlv, instanceOf(IsisNeighborTlv.class));
101
102 channelBuffer = ChannelBuffers.copiedBuffer(tlv);
103 tlvHeader.setTlvType(TlvType.LSPENTRY.value());
104 isisTlv = tlvFinder.findTlv(tlvHeader, channelBuffer);
105 assertThat(isisTlv, instanceOf(LspEntriesTlv.class));
106
107 channelBuffer = ChannelBuffers.copiedBuffer(tlv);
108 tlvHeader.setTlvType(TlvType.PADDING.value());
109 isisTlv = tlvFinder.findTlv(tlvHeader, channelBuffer);
110 assertThat(isisTlv, instanceOf(PaddingTlv.class));
111
112 channelBuffer = ChannelBuffers.copiedBuffer(tlv1);
113 tlvHeader.setTlvType(TlvType.ADJACENCYSTATE.value());
114 isisTlv = tlvFinder.findTlv(tlvHeader, channelBuffer);
115 assertThat(isisTlv, instanceOf(AdjacencyStateTlv.class));
116 }
117}