blob: adba71fd19adc1d93ee2646fe0c1f29c84553614 [file] [log] [blame]
Thomas Vachuska4f1a60c2014-10-28 13:39:07 -07001/*
Brian O'Connor5ab426f2016-04-09 01:19:45 -07002 * Copyright 2014-present Open Networking Laboratory
Thomas Vachuska4f1a60c2014-10-28 13:39:07 -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 */
Brian O'Connorabafb502014-12-02 22:26:20 -080016package org.onosproject.net;
tomca20e0c2014-09-03 23:22:24 -070017
HIGUCHI Yuta14c04362015-11-12 10:12:04 -080018import com.google.common.collect.ImmutableList;
Marc De Leenheer171c2e82015-04-13 17:20:37 -070019import com.google.common.testing.EqualsTester;
alshabib4680bb62014-09-04 17:15:08 -070020import org.junit.Test;
HIGUCHI Yuta14c04362015-11-12 10:12:04 -080021import org.onosproject.net.PortNumber.Logical;
alshabib4680bb62014-09-04 17:15:08 -070022
HIGUCHI Yuta14c04362015-11-12 10:12:04 -080023import static java.util.stream.Collectors.toList;
HIGUCHI Yutacc10558d2016-06-03 14:27:05 -070024import static org.junit.Assert.*;
Marc De Leenheer171c2e82015-04-13 17:20:37 -070025import static org.onosproject.net.PortNumber.portNumber;
alshabib4680bb62014-09-04 17:15:08 -070026
HIGUCHI Yuta14c04362015-11-12 10:12:04 -080027import java.util.List;
28
tomca20e0c2014-09-03 23:22:24 -070029/**
30 * Test of the port number.
31 */
tom545708e2014-10-09 17:10:02 -070032public class PortNumberTest {
tomca20e0c2014-09-03 23:22:24 -070033
34 @Test
35 public void basics() {
36 new EqualsTester()
Marc De Leenheer171c2e82015-04-13 17:20:37 -070037 .addEqualityGroup(portNumber(123), portNumber("123"))
38 .addEqualityGroup(portNumber(321), portNumber(321, "LIM-3-2-1"))
tomca20e0c2014-09-03 23:22:24 -070039 .testEquals();
40 }
41
42 @Test
43 public void number() {
44 assertEquals("incorrect long value", 12345, portNumber(12345).toLong());
45 }
46
HIGUCHI Yuta14c04362015-11-12 10:12:04 -080047 @Test
48 public void decimalPortNumberIsReconstructableFromString() {
49 List<PortNumber> ps = ImmutableList.<PortNumber>builder()
50 .add(portNumber(0))
51 .add(portNumber(1))
52 .add(portNumber(6653))
53 .add(portNumber(PortNumber.MAX_NUMBER))
54 .build();
55 ps.forEach(p -> assertEquals(p, PortNumber.fromString(p.toString())));
56 }
57
58 @Test
59 public void logicalPortNumberIsReconstructableFromString() {
60 List<PortNumber> ps = ImmutableList.copyOf(Logical.values())
61 .stream().map(Logical::instance).collect(toList());
62
63 ps.forEach(p -> assertEquals(p, PortNumber.fromString(p.toString())));
64
65 PortNumber unknown = portNumber(-42);
66 assertEquals(unknown, PortNumber.fromString(unknown.toString()));
67 }
68
69 @Test
70 public void namedPortNumberIsReconstructableFromString() {
71 List<PortNumber> ps = ImmutableList.<PortNumber>builder()
72 .add(portNumber(0, "Zero"))
73 .add(portNumber(1, "[ONE]"))
74 .add(portNumber(6653, "OpenFlow (1.3+)"))
75 .add(portNumber(PortNumber.MAX_NUMBER, "(大)"))
76 .build();
77 ps.forEach(p -> assertEquals(p, PortNumber.fromString(p.toString())));
78 }
tomca20e0c2014-09-03 23:22:24 -070079
HIGUCHI Yutacc10558d2016-06-03 14:27:05 -070080 @Test
81 public void exactlyEquals() {
82 assertTrue(portNumber(0).exactlyEquals(portNumber(0)));
83 assertTrue(portNumber(0, "foo").exactlyEquals(portNumber(0, "foo")));
84
85 assertFalse(portNumber(0, "foo").exactlyEquals(portNumber(0, "bar")));
86 assertFalse(portNumber(0, "foo").exactlyEquals(portNumber(0)));
87 assertFalse(portNumber(0, "foo").exactlyEquals(portNumber(1, "foo")));
88
89 assertFalse(portNumber(123).exactlyEquals(portNumber(123, "123")));
90 }
91
tomca20e0c2014-09-03 23:22:24 -070092}