blob: bea7ccca09db4bec14c4cfc5db9f6869305b6a83 [file] [log] [blame]
/*
* Copyright 2016 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.sdxl2;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.onlab.packet.VlanId;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
/**
* Test SdxL2ConnectionPoint functionalities.
*/
public class SdxL2ConnectionPointTest {
@Before
public void setUp() {
}
@After
public void tearDown() {
}
public static final String CP1 = "of:00000000000001/1";
public static final String CP2 = "of:00000000000002/1";
public static final String CP3 = "of:00000000000003/1";
public static final String CP4 = "of:00000000000003/2";
public static final String CP5 = "-1";
public static final String CP6 = "of:00000000000004/2";
public static final String CP7 = "of:00000000000004/1";
public static final String VLANS1 = "1,2,3,4";
public static final String VLANS2 = "-1";
public static final String VLANS3 = "1,2,3";
public static final String VLANS4 = "2,2,2";
public static final String VLANS5 = "2";
public static final String VLANS6 = "-1";
public static final String VLANS7 = "5";
public static final String VLANS8 = "3,2,1";
public static final String VLANS10 = "a";
public static final String VLANS11 = "5196";
public static final String VLANS12 = "2,-1,6";
public static final String CEMAC1 = "52:40:00:12:44:01";
public static final String CEMAC2 = "-1";
public static final String CEMAC3 = "-1";
public static final String CEMAC4 = "-1";
public static final String CEMAC5 = "52:40:00:12:44:01";
public static final String CEMAC6 = "52:40:00:12:44:01";
public static final String CEMAC7 = "-1";
@Test
public void testSdxL2ConnectionPoint1() {
SdxL2ConnectionPoint scp1 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("RO1", CP1, VLANS1, CEMAC1);
}
@Test
public void testSdxL2ConnectionPoint2() {
SdxL2ConnectionPoint scp2 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("RO2", CP2, VLANS2);
}
@Test
public void testSdxL2ConnectionPoint3() {
SdxL2ConnectionPoint scp3 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("MI1", CP3, VLANS3);
}
@Test
public void testSdxL2ConnectionPoint4() {
SdxL2ConnectionPoint scp4 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("RO3", CP4, VLANS4);
}
@Rule
public ExpectedException exceptionconnectionpoint = ExpectedException.none();
@Test
public void testSdxL2ConnectionPoint5() {
exceptionconnectionpoint.expect(IllegalArgumentException.class);
exceptionconnectionpoint.expectMessage("Connect point must be in \"deviceUri/portNumber\" format");
SdxL2ConnectionPoint scp5 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("MI2", CP5, VLANS5, CEMAC5);
}
@Test
public void testSdxL2ConnectionPoint6() {
SdxL2ConnectionPoint scp6 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("MI3", CP6, VLANS6, CEMAC6);
}
@Rule
public ExpectedException exceptionmac = ExpectedException.none();
@Test
public void testSdxL2ConnectionPoint7() {
exceptionmac.expect(IllegalArgumentException.class);
exceptionmac.expectMessage("Specified MAC Address must contain");
SdxL2ConnectionPoint scp7 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("RO4", CP7, VLANS7, CEMAC7);
}
@Test
public void testSdxL2ConnectionPoint8() {
SdxL2ConnectionPoint scp8 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("", CP4, VLANS2, CEMAC6);
}
@Rule
public ExpectedException exceptionname = ExpectedException.none();
@Test
public void testSdxL2ConnectionPoint9() {
exceptionname.expect(IllegalStateException.class);
exceptionname.expectMessage("Names cannot contain some special characters");
SdxL2ConnectionPoint scp9a = SdxL2ConnectionPoint.sdxl2ConnectionPoint("NA,1", CP1, VLANS1, CEMAC1);
SdxL2ConnectionPoint scp9b = SdxL2ConnectionPoint.sdxl2ConnectionPoint("{NA2}", CP2, VLANS2, CEMAC2);
SdxL2ConnectionPoint scp9c = SdxL2ConnectionPoint.sdxl2ConnectionPoint("NA3,elementId=50", CP3, VLANS3, CEMAC3);
}
@Rule
public ExpectedException exceptionvlans = ExpectedException.none();
@Test
public void testSdxL2ConnectionPoint10() {
exceptionvlans.expect(NumberFormatException.class);
SdxL2ConnectionPoint scp10 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("VE1", CP1, VLANS10, CEMAC7);
}
@Test
public void testSdxL2ConnectionPoint11() {
exceptionvlans.expect(IllegalArgumentException.class);
exceptionvlans.expectMessage("value exceeds allowed maximum VLAN ID value (4095)");
SdxL2ConnectionPoint scp11 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("VE2", CP2, VLANS11, CEMAC6);
}
@Test
public void testSdxL2ConnectionPoint12() {
SdxL2ConnectionPoint scp12 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("AQ1", CP1, VLANS12, CEMAC5);
List<VlanId> vlanIdList = new ArrayList<>();
vlanIdList.add(VlanId.vlanId(Short.parseShort("2")));
vlanIdList.add(VlanId.vlanId(Short.parseShort("6")));
assertEquals(vlanIdList, scp12.vlanIds());
}
@Test
public void testSdxL2ConnectionPointEquality() {
SdxL2ConnectionPoint scp1 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("FI1", CP1, VLANS1, CEMAC1);
SdxL2ConnectionPoint scp2 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("FI1", CP1, VLANS1, CEMAC6);
assertEquals(scp1, scp2);
SdxL2ConnectionPoint scp3 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("GE4", CP2, VLANS3, CEMAC6);
assertNotEquals(scp1, scp3);
SdxL2ConnectionPoint scp4 = SdxL2ConnectionPoint.sdxl2ConnectionPoint("GE4", CP2, VLANS8, CEMAC6);
assertNotEquals(scp3, scp4);
}
}