blob: a7d07e8989db404c1a733d2024406ee4f7aa8336 [file] [log] [blame]
Ray Milkey8f7feed2015-10-23 15:08:47 -07001/*
2 * Copyright 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.net.packet;
17
18import org.junit.Test;
Madan Jampani6f8b7022015-12-07 16:59:59 -080019import org.onosproject.cluster.NodeId;
Ray Milkey8f7feed2015-10-23 15:08:47 -070020import org.onosproject.core.DefaultApplicationId;
21import org.onosproject.net.NetTestTools;
22import org.onosproject.net.flow.DefaultTrafficSelector;
23import org.onosproject.net.flow.TrafficSelector;
24
25import com.google.common.testing.EqualsTester;
26
27import static org.hamcrest.MatcherAssert.assertThat;
28import static org.hamcrest.Matchers.is;
29import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
30
31/**
32 * Unit tests for the DefaultPacketRequest class.
33 */
34public class DefaultPacketRequestTest {
35
36 private final TrafficSelector selector = DefaultTrafficSelector
37 .builder()
38 .matchIcmpCode((byte) 1)
39 .build();
40
41 private final DefaultPacketRequest packetRequest1 =
42 new DefaultPacketRequest(DefaultTrafficSelector.emptySelector(),
43 PacketPriority.CONTROL,
Madan Jampani6f8b7022015-12-07 16:59:59 -080044 NetTestTools.APP_ID,
45 NetTestTools.NODE_ID);
Ray Milkey8f7feed2015-10-23 15:08:47 -070046 private final DefaultPacketRequest sameAsacketRequest1 =
47 new DefaultPacketRequest(DefaultTrafficSelector.emptySelector(),
48 PacketPriority.CONTROL,
Madan Jampani6f8b7022015-12-07 16:59:59 -080049 NetTestTools.APP_ID,
50 NetTestTools.NODE_ID);
Ray Milkey8f7feed2015-10-23 15:08:47 -070051 private final DefaultPacketRequest packetRequest2 =
52 new DefaultPacketRequest(selector,
53 PacketPriority.CONTROL,
Madan Jampani6f8b7022015-12-07 16:59:59 -080054 NetTestTools.APP_ID,
55 NetTestTools.NODE_ID);
Ray Milkey8f7feed2015-10-23 15:08:47 -070056 private final DefaultPacketRequest packetRequest3 =
57 new DefaultPacketRequest(DefaultTrafficSelector.emptySelector(),
58 PacketPriority.REACTIVE,
Madan Jampani6f8b7022015-12-07 16:59:59 -080059 NetTestTools.APP_ID,
60 NetTestTools.NODE_ID);
Ray Milkey8f7feed2015-10-23 15:08:47 -070061 private final DefaultPacketRequest packetRequest4 =
62 new DefaultPacketRequest(DefaultTrafficSelector.emptySelector(),
63 PacketPriority.CONTROL,
Madan Jampani6f8b7022015-12-07 16:59:59 -080064 new DefaultApplicationId(1, "foo"),
65 new NodeId("node1"));
Ray Milkey8f7feed2015-10-23 15:08:47 -070066
67 /**
68 * Tests the operation of the equals(), toAstring() and hashCode() methods.
69 */
70 @Test
71 public void testEquals() {
72 new EqualsTester()
73 .addEqualityGroup(packetRequest1, sameAsacketRequest1)
74 .addEqualityGroup(packetRequest2)
75 .addEqualityGroup(packetRequest3)
76 .addEqualityGroup(packetRequest4)
77 .testEquals();
78 }
79
80 /**
81 * Tests that building and fetching from a DefaultPacketRequest is correct.
82 */
83 @Test
84 public void testConstruction() {
85 assertThat(packetRequest1.priority(), is(PacketPriority.CONTROL));
86 assertThat(packetRequest1.priority().priorityValue(),
87 is(PacketPriority.CONTROL.priorityValue()));
88 assertThat(packetRequest1.selector(), is(DefaultTrafficSelector.emptySelector()));
89 assertThat(packetRequest1.appId(), is(NetTestTools.APP_ID));
90 }
91
92 /**
93 * Checks that the DefaultPacketRequest class is immutable.
94 */
95 @Test
96 public void testImmutability() {
97 assertThatClassIsImmutable(DefaultPacketRequest.class);
98 }
99}