blob: e3a81bcd4d8d57a4a91fec0d384c59216073868a [file] [log] [blame]
Sean Condonfae8e662016-12-15 10:25:13 +00001/*
2 * Copyright 2017-present 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.drivers.microsemi.yang;
17
18import static org.junit.Assert.assertEquals;
19import static org.junit.Assert.assertNotNull;
20import static org.junit.Assert.assertTrue;
21import static org.junit.Assert.fail;
22
23import java.io.UncheckedIOException;
24
25import org.junit.After;
26import org.junit.Before;
27import org.junit.Test;
28import org.onlab.packet.Ip4Address;
29import org.onosproject.drivers.microsemi.yang.impl.MseaCfmManager;
30import org.onosproject.netconf.NetconfDeviceInfo;
31import org.onosproject.netconf.NetconfException;
32import org.onosproject.netconf.NetconfSession;
Sean Condon06613e92017-06-09 15:14:01 +010033import org.onosproject.yang.gen.v1.mseacfm.rev20160229.MseaCfm;
34import org.onosproject.yang.gen.v1.mseacfm.rev20160229.mseacfm.DefaultMefCfm;
35import org.onosproject.yang.gen.v1.mseacfm.rev20160229.mseacfm.MefCfm;
36import org.onosproject.yang.gen.v1.mseacfm.rev20160229.mseacfm.mefcfm.DefaultMaintenanceDomain;
37import org.onosproject.yang.gen.v1.mseacfm.rev20160229.mseacfm.mefcfm.MaintenanceDomain;
38import org.onosproject.yang.gen.v1.mseacfm.rev20160229.mseacfm.mefcfm.maintenancedomain.mdnameandtypecombo.DefaultNameCharacterString;
39import org.onosproject.yang.gen.v1.mseacfm.rev20160229.mseacfm.mefcfm.maintenancedomain.mdnameandtypecombo.NameCharacterString;
40import org.onosproject.yang.gen.v1.mseatypes.rev20160229.mseatypes.Identifier45;
Sean Condonfae8e662016-12-15 10:25:13 +000041
42public class MseaCfmManagerTest {
43
44 MseaCfmManager mseaCfmService;
Sean Condonfae8e662016-12-15 10:25:13 +000045 NetconfSession session;
46
47 @Before
48 public void setUp() throws Exception {
49 try {
50 mseaCfmService = new MockMseaCfmManager();
51 mseaCfmService.activate();
52 } catch (UncheckedIOException e) {
53 fail(e.getMessage());
54 }
55 NetconfDeviceInfo deviceInfo = new NetconfDeviceInfo("netconf", "netconf", Ip4Address.valueOf("1.2.3.4"), 830);
56 session = new MockNetconfSessionEa1000(deviceInfo);
57 }
58
59 @After
60 public void tearDown() throws Exception {
61 }
62
63 @Test
64 public void testGetConfigMseaCfmEssentials() throws NetconfException {
65 MseaCfm mseaCfm = mseaCfmService.getMepEssentials("md-1", "ma-1-1", 1, session);
66 assertNotNull(mseaCfm);
67
68 //See SAMPLE_MSEACFM_MD_MA_MEP_REPLY in MockNetconfSessionEa1000
69 assertEquals(1, mseaCfm.mefCfm().maintenanceDomain().size());
70 assertEquals(2, mseaCfm.mefCfm().maintenanceDomain().get(0).mdLevel().uint8());
71 }
72
73 /**
74 * Create the Maintenance Domain "md-1".
75 * @throws NetconfException
76 */
77 @Test
78 public void testSetMseaCfm() throws NetconfException {
Sean Condon06613e92017-06-09 15:14:01 +010079 NameCharacterString mdName = new DefaultNameCharacterString();
80 mdName.name(Identifier45.fromString("md-1"));
Sean Condonfae8e662016-12-15 10:25:13 +000081
Sean Condon06613e92017-06-09 15:14:01 +010082 MaintenanceDomain yangMd = new DefaultMaintenanceDomain();
83 yangMd.id((short) 1);
84 yangMd.mdNameAndTypeCombo(mdName);
Sean Condonfae8e662016-12-15 10:25:13 +000085
Sean Condon06613e92017-06-09 15:14:01 +010086 MefCfm mefCfm = new DefaultMefCfm();
87 mefCfm.addToMaintenanceDomain(yangMd);
Sean Condonfae8e662016-12-15 10:25:13 +000088 //FIXME implement this
89// MseaCfmOpParam mseaCfmOpParam = (MseaCfmOpParam) MseaCfmOpParam.builder().mefCfm(mefCfm).build();
90// mseaCfmService.setMseaCfm(mseaCfmOpParam, session, NcDsType.running);
91 }
92
93 @Test
94 public void testTransmitLoopback() throws NetconfException {
95 try {
96 mseaCfmService.transmitLoopback(null, session);
97 } catch (UnsupportedOperationException e) {
98 assertTrue(e.getMessage().contains("Not yet implemented"));
99 }
100 }
101
102 @Test
103 public void testAbortLoopback() throws NetconfException {
104 try {
105 mseaCfmService.abortLoopback(null, session);
106 } catch (UnsupportedOperationException e) {
107 assertTrue(e.getMessage().contains("Not yet implemented"));
108 }
109 }
110
111 @Test
112 public void testTransmitLinktrace() throws NetconfException {
113 try {
114 mseaCfmService.transmitLinktrace(null, session);
115 } catch (UnsupportedOperationException e) {
116 assertTrue(e.getMessage().contains("Not yet implemented"));
117 }
118 }
119
120}