blob: 592cd983844a843cc1f9ad29f684ce989549de45 [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;
19import org.onosproject.core.DefaultApplicationId;
20import org.onosproject.net.NetTestTools;
21import org.onosproject.net.flow.DefaultTrafficSelector;
22import org.onosproject.net.flow.TrafficSelector;
23
24import com.google.common.testing.EqualsTester;
25
26import static org.hamcrest.MatcherAssert.assertThat;
27import static org.hamcrest.Matchers.is;
28import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
29
30/**
31 * Unit tests for the DefaultPacketRequest class.
32 */
33public class DefaultPacketRequestTest {
34
35 private final TrafficSelector selector = DefaultTrafficSelector
36 .builder()
37 .matchIcmpCode((byte) 1)
38 .build();
39
40 private final DefaultPacketRequest packetRequest1 =
41 new DefaultPacketRequest(DefaultTrafficSelector.emptySelector(),
42 PacketPriority.CONTROL,
43 NetTestTools.APP_ID);
44 private final DefaultPacketRequest sameAsacketRequest1 =
45 new DefaultPacketRequest(DefaultTrafficSelector.emptySelector(),
46 PacketPriority.CONTROL,
47 NetTestTools.APP_ID);
48 private final DefaultPacketRequest packetRequest2 =
49 new DefaultPacketRequest(selector,
50 PacketPriority.CONTROL,
51 NetTestTools.APP_ID);
52 private final DefaultPacketRequest packetRequest3 =
53 new DefaultPacketRequest(DefaultTrafficSelector.emptySelector(),
54 PacketPriority.REACTIVE,
55 NetTestTools.APP_ID);
56 private final DefaultPacketRequest packetRequest4 =
57 new DefaultPacketRequest(DefaultTrafficSelector.emptySelector(),
58 PacketPriority.CONTROL,
59 new DefaultApplicationId(1, "foo"));
60
61 /**
62 * Tests the operation of the equals(), toAstring() and hashCode() methods.
63 */
64 @Test
65 public void testEquals() {
66 new EqualsTester()
67 .addEqualityGroup(packetRequest1, sameAsacketRequest1)
68 .addEqualityGroup(packetRequest2)
69 .addEqualityGroup(packetRequest3)
70 .addEqualityGroup(packetRequest4)
71 .testEquals();
72 }
73
74 /**
75 * Tests that building and fetching from a DefaultPacketRequest is correct.
76 */
77 @Test
78 public void testConstruction() {
79 assertThat(packetRequest1.priority(), is(PacketPriority.CONTROL));
80 assertThat(packetRequest1.priority().priorityValue(),
81 is(PacketPriority.CONTROL.priorityValue()));
82 assertThat(packetRequest1.selector(), is(DefaultTrafficSelector.emptySelector()));
83 assertThat(packetRequest1.appId(), is(NetTestTools.APP_ID));
84 }
85
86 /**
87 * Checks that the DefaultPacketRequest class is immutable.
88 */
89 @Test
90 public void testImmutability() {
91 assertThatClassIsImmutable(DefaultPacketRequest.class);
92 }
93}