blob: 7a8a20930f7cf519188d999b47226da7e70702b2 [file] [log] [blame]
Ray Milkey8f7feed2015-10-23 15:08:47 -07001/*
Brian O'Connor5ab426f2016-04-09 01:19:45 -07002 * Copyright 2015-present Open Networking Laboratory
Ray Milkey8f7feed2015-10-23 15:08:47 -07003 *
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
alshabib19e2cea2015-12-07 11:31:49 -080027import java.util.Optional;
28
Ray Milkey8f7feed2015-10-23 15:08:47 -070029import static org.hamcrest.MatcherAssert.assertThat;
30import static org.hamcrest.Matchers.is;
31import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
32
33/**
34 * Unit tests for the DefaultPacketRequest class.
35 */
36public class DefaultPacketRequestTest {
37
38 private final TrafficSelector selector = DefaultTrafficSelector
39 .builder()
40 .matchIcmpCode((byte) 1)
41 .build();
42
43 private final DefaultPacketRequest packetRequest1 =
44 new DefaultPacketRequest(DefaultTrafficSelector.emptySelector(),
45 PacketPriority.CONTROL,
Madan Jampani6f8b7022015-12-07 16:59:59 -080046 NetTestTools.APP_ID,
alshabib19e2cea2015-12-07 11:31:49 -080047 NetTestTools.NODE_ID, Optional.empty());
Ray Milkey8f7feed2015-10-23 15:08:47 -070048 private final DefaultPacketRequest sameAsacketRequest1 =
49 new DefaultPacketRequest(DefaultTrafficSelector.emptySelector(),
50 PacketPriority.CONTROL,
Madan Jampani6f8b7022015-12-07 16:59:59 -080051 NetTestTools.APP_ID,
alshabib19e2cea2015-12-07 11:31:49 -080052 NetTestTools.NODE_ID, Optional.empty());
Ray Milkey8f7feed2015-10-23 15:08:47 -070053 private final DefaultPacketRequest packetRequest2 =
54 new DefaultPacketRequest(selector,
55 PacketPriority.CONTROL,
Madan Jampani6f8b7022015-12-07 16:59:59 -080056 NetTestTools.APP_ID,
alshabib19e2cea2015-12-07 11:31:49 -080057 NetTestTools.NODE_ID, Optional.empty());
Ray Milkey8f7feed2015-10-23 15:08:47 -070058 private final DefaultPacketRequest packetRequest3 =
59 new DefaultPacketRequest(DefaultTrafficSelector.emptySelector(),
60 PacketPriority.REACTIVE,
Madan Jampani6f8b7022015-12-07 16:59:59 -080061 NetTestTools.APP_ID,
alshabib19e2cea2015-12-07 11:31:49 -080062 NetTestTools.NODE_ID, Optional.empty());
Ray Milkey8f7feed2015-10-23 15:08:47 -070063 private final DefaultPacketRequest packetRequest4 =
64 new DefaultPacketRequest(DefaultTrafficSelector.emptySelector(),
65 PacketPriority.CONTROL,
Madan Jampani6f8b7022015-12-07 16:59:59 -080066 new DefaultApplicationId(1, "foo"),
alshabib19e2cea2015-12-07 11:31:49 -080067 new NodeId("node1"), Optional.empty());
Ray Milkey8f7feed2015-10-23 15:08:47 -070068
69 /**
70 * Tests the operation of the equals(), toAstring() and hashCode() methods.
71 */
72 @Test
73 public void testEquals() {
74 new EqualsTester()
75 .addEqualityGroup(packetRequest1, sameAsacketRequest1)
76 .addEqualityGroup(packetRequest2)
77 .addEqualityGroup(packetRequest3)
78 .addEqualityGroup(packetRequest4)
79 .testEquals();
80 }
81
82 /**
83 * Tests that building and fetching from a DefaultPacketRequest is correct.
84 */
85 @Test
86 public void testConstruction() {
87 assertThat(packetRequest1.priority(), is(PacketPriority.CONTROL));
88 assertThat(packetRequest1.priority().priorityValue(),
89 is(PacketPriority.CONTROL.priorityValue()));
90 assertThat(packetRequest1.selector(), is(DefaultTrafficSelector.emptySelector()));
91 assertThat(packetRequest1.appId(), is(NetTestTools.APP_ID));
92 }
93
94 /**
95 * Checks that the DefaultPacketRequest class is immutable.
96 */
97 @Test
98 public void testImmutability() {
99 assertThatClassIsImmutable(DefaultPacketRequest.class);
100 }
101}