blob: ca5f131b30cfdbb911958ba85accb64bc543ad06 [file] [log] [blame]
Ekber Aziz123ad5d2017-11-27 12:36:35 -08001/*
2 * Copyright 2017-present Open Networking Foundation
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.p4runtime.model;
17
18import com.google.common.testing.EqualsTester;
19import org.junit.Test;
Carmelo Cascone4c289b72019-01-22 15:30:45 -080020import org.onosproject.net.pi.model.PiPacketMetadataId;
Ekber Aziz123ad5d2017-11-27 12:36:35 -080021
Ekber Aziz123ad5d2017-11-27 12:36:35 -080022import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
23
24/**
Carmelo Cascone4c289b72019-01-22 15:30:45 -080025 * Test for P4PacketMetadataModel class.
Ekber Aziz123ad5d2017-11-27 12:36:35 -080026 */
Carmelo Cascone4c289b72019-01-22 15:30:45 -080027public class P4PacketMetadataModelTest {
Ekber Aziz123ad5d2017-11-27 12:36:35 -080028
Carmelo Cascone4c289b72019-01-22 15:30:45 -080029 private final PiPacketMetadataId piPacketMetadataId = PiPacketMetadataId.of("EGRESS_PORT");
30 private final PiPacketMetadataId sameAsPiPacketMetadataId = PiPacketMetadataId.of("EGRESS_PORT");
31 private final PiPacketMetadataId piPacketMetadataId2 = PiPacketMetadataId.of("INGRESS_PORT");
Ekber Aziz123ad5d2017-11-27 12:36:35 -080032
33 private static final int BIT_WIDTH_32 = 32;
34 private static final int BIT_WIDTH_64 = 64;
35
Carmelo Cascone4c289b72019-01-22 15:30:45 -080036 private final P4PacketMetadataModel metadataModel = new P4PacketMetadataModel(piPacketMetadataId, BIT_WIDTH_32);
Ekber Aziz123ad5d2017-11-27 12:36:35 -080037
Carmelo Cascone4c289b72019-01-22 15:30:45 -080038 private final P4PacketMetadataModel sameAsMetadataModel = new P4PacketMetadataModel(sameAsPiPacketMetadataId,
Ekber Aziz123ad5d2017-11-27 12:36:35 -080039 BIT_WIDTH_32);
40
Carmelo Cascone4c289b72019-01-22 15:30:45 -080041 private final P4PacketMetadataModel metadataModel2 = new P4PacketMetadataModel(piPacketMetadataId2,
Ekber Aziz123ad5d2017-11-27 12:36:35 -080042 BIT_WIDTH_32);
43
Carmelo Cascone4c289b72019-01-22 15:30:45 -080044 private final P4PacketMetadataModel metadataModel3 = new P4PacketMetadataModel(piPacketMetadataId, BIT_WIDTH_64);
Ekber Aziz123ad5d2017-11-27 12:36:35 -080045
46
47
48 /**
49 * Checks that the P4CounterModel class is immutable.
50 */
51 @Test
52 public void testImmutability() {
Carmelo Cascone4c289b72019-01-22 15:30:45 -080053 assertThatClassIsImmutable(P4PacketMetadataModel.class);
Ekber Aziz123ad5d2017-11-27 12:36:35 -080054 }
55
56 /**
57 * Checks the operation of equals(), hashCode() and toString() methods.
58 */
59 @Test
60 public void testEquals() {
61 new EqualsTester()
62 .addEqualityGroup(metadataModel, sameAsMetadataModel)
63 .addEqualityGroup(metadataModel2)
64 .addEqualityGroup(metadataModel3)
65 .testEquals();
66 }
Carmelo Cascone4c289b72019-01-22 15:30:45 -080067}