blob: 74e076ca648b5a1b0a1385b2030ea09eee8af868 [file] [log] [blame]
/*
* Copyright 2017-present Open Networking Foundation
*
* 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.incubator.net.l2monitoring.cfm;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import org.onosproject.incubator.net.l2monitoring.cfm.MaintenanceDomain.MdLevel;
import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MaIdCharStr;
import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdIdCharStr;
import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdIdDomainName;
import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdIdMacUint;
import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdIdNone;
import org.onosproject.incubator.net.l2monitoring.cfm.service.CfmConfigException;
import static org.junit.Assert.*;
public class MaintenanceDomainTest {
MaintenanceDomain md1;
MaintenanceDomain md2;
MaintenanceDomain md3;
MaintenanceDomain md4;
@Before
public void setUp() {
try {
MaintenanceAssociation ma1 =
DefaultMaintenanceAssociation
.builder(MaIdCharStr.asMaId("ma-1-1"), 4)
.build();
md1 = DefaultMaintenanceDomain.builder(MdIdCharStr.asMdId("md-1"))
.mdLevel(MdLevel.LEVEL3)
.addToMaList(ma1)
.mdNumericId((short) 1)
.build();
md2 = DefaultMaintenanceDomain.builder(MdIdDomainName.asMdId("test1.onosproject.org"))
.mdLevel(MdLevel.LEVEL4)
.build();
md3 = DefaultMaintenanceDomain.builder(MdIdMacUint.asMdId("00:11:22:33:44:55:8191"))
.mdLevel(MdLevel.LEVEL5)
.build();
md4 = DefaultMaintenanceDomain.builder(MdIdNone.asMdId())
.build();
} catch (CfmConfigException e) {
fail("Unexpected exception " + e.getMessage());
}
}
@Test
public void testMdNameType() {
assertEquals("md-1", md1.mdId().mdName());
assertEquals(MdIdCharStr.class, md1.mdId().getClass());
assertEquals(4, md1.mdId().getNameLength());
assertEquals("test1.onosproject.org", md2.mdId().mdName());
assertEquals(MdIdDomainName.class, md2.mdId().getClass());
assertEquals(21, md2.mdId().getNameLength());
assertEquals("00:11:22:33:44:55:8191", md3.mdId().mdName());
assertEquals(MdIdMacUint.class, md3.mdId().getClass());
assertEquals(8, md3.mdId().getNameLength());
assertEquals(null, md4.mdId().mdName());
assertEquals(MdIdNone.class, md4.mdId().getClass());
assertEquals(0, md4.mdId().getNameLength());
}
@Test
public void testMdLevel() {
assertEquals(MdLevel.LEVEL3, md1.mdLevel());
assertEquals(MdLevel.LEVEL4, md2.mdLevel());
assertEquals(MdLevel.LEVEL5, md3.mdLevel());
assertEquals(MdLevel.LEVEL0, md4.mdLevel());
}
@Test
public void testMaintenanceAssociationList() {
assertEquals(1, md1.maintenanceAssociationList().size());
assertEquals(0, md2.maintenanceAssociationList().size());
}
@Test
public void testWithMaintenanceAssociationList() throws CfmConfigException {
Collection<MaintenanceAssociation> maList = md1.maintenanceAssociationList();
maList.add(DefaultMaintenanceAssociation
.builder(MaIdCharStr.asMaId("ma-1-2"), 4)
.build());
md1 = md1.withMaintenanceAssociationList(maList);
assertEquals(2, md1.maintenanceAssociationList().size());
}
@Test
public void testMdNumericid() throws CfmConfigException {
assertEquals(1, md1.mdNumericId());
}
@Test
public void testEquals() throws CfmConfigException {
assertFalse(md1.equals(md2));
assertFalse(md1.equals(null));
assertFalse(md1.equals(new String("test")));
}
@Test
public void testHashCode() throws CfmConfigException {
assertFalse(md1.hashCode() == md2.hashCode());
assertTrue(md1.hashCode() == md1.hashCode());
}
@Test
public void testCopyToBuilder() throws CfmConfigException {
MaintenanceDomain mdCopy = DefaultMaintenanceDomain.builder(md1).build();
assertEquals(md1, mdCopy);
}
@Test
public void testToString() {
assertEquals("DefaultMaintenanceDomain{mdId=md-1, level=LEVEL3}",
md1.toString());
assertEquals("DefaultMaintenanceDomain{mdId=test1.onosproject.org, level=LEVEL4}",
md2.toString());
assertEquals("DefaultMaintenanceDomain{mdId=00:11:22:33:44:55:8191, level=LEVEL5}",
md3.toString());
assertEquals("DefaultMaintenanceDomain{mdId=, level=LEVEL0}", md4.toString());
}
}