blob: 794298e37fca9cade489eaf4099099c26af278f8 [file] [log] [blame]
/*
* Copyright 2016-present 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.yms.app.ymsm;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.onosproject.yang.gen.v1.ydt.customs.supervisor.rev20160524.CustomssupervisorOpParam;
import org.onosproject.yms.app.ych.defaultcodecs.YangCodecRegistry;
import org.onosproject.yms.app.ysr.TestYangSchemaNodeProvider;
import org.onosproject.yms.ych.YangCodecHandler;
import org.onosproject.yms.ych.YangCompositeEncoding;
import org.onosproject.yms.ych.YangDataTreeCodec;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static junit.framework.TestCase.assertNotNull;
import static org.onosproject.yms.ych.YangProtocolEncodingFormat.XML;
/**
* Unit test case for YCH composite codec handler.
*/
public class YchCompositeHandlerTest {
@Rule
public ExpectedException thrown = ExpectedException.none();
private static final String REG_PREFIX = "RegisteredDataTreeCodec ";
private static final String REG_ENCODE = REG_PREFIX +
"encodeYdtToProtocolFormat Called.";
private static final String REG_DECODE = REG_PREFIX +
"decodeProtocolDataToYdt Called.";
private static final String REG_COMPO_ENCODE = REG_PREFIX +
"encodeYdtToCompositeProtocolFormat Called.";
private static final String REG_COMPO_DECODE = REG_PREFIX +
"decodeCompositeProtocolDataToYdt Called.";
private static final String OVERRIDE_PREFIX = "OverriddenDataTreeCodec ";
private static final String OVERRIDE_ENCODE = OVERRIDE_PREFIX +
"encodeYdtToProtocolFormat Called.";
private static final String OVERRIDE_DECODE = OVERRIDE_PREFIX +
"decodeProtocolDataToYdt Called.";
private static final String OVERRIDE_COMPO_ENCODE = OVERRIDE_PREFIX +
"encodeYdtToCompositeProtocolFormat Called.";
private static final String OVERRIDE_COMPO_DECODE = OVERRIDE_PREFIX +
"decodeCompositeProtocolDataToYdt Called.";
private TestYangSchemaNodeProvider provider =
new TestYangSchemaNodeProvider();
/**
* Unit test case in which verifying codec handler is null or not.
*/
@Test
public void checkForCodecHandler() {
YmsManager ymsManager = new YmsManager();
ymsManager.coreService = new MockCoreService();
ymsManager.activate();
YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
assertNotNull("Codec handler is null", yangCodecHandler);
}
/**
* Unit test case in which verifying registered codec handler for encode is
* null or not.
*/
@Test
public void checkForRegisterDefaultCodecEncode() {
thrown.expectMessage(REG_ENCODE);
YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
YmsManager ymsManager = new YmsManager();
YangCodecRegistry.initializeDefaultCodec();
ymsManager.coreService = new MockCoreService();
ymsManager.activate();
ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
assertNotNull("Codec handler is null", yangCodecHandler);
provider.processSchemaRegistry(null);
List<Object> yangModuleList = new ArrayList<>();
// Creating the object
Object object = CustomssupervisorOpParam.builder()
.supervisor("Customssupervisor").build();
yangModuleList.add(object);
// Get the xml string and compare
Map<String, String> tagAttr = new HashMap<String, String>();
tagAttr.put("type", "subtree");
yangCodecHandler.encodeOperation("filter", "ydt.filter-type",
tagAttr, yangModuleList,
XML, null);
}
/**
* Unit test case in which verifying registered codec handler for decode is
* null or not.
*/
@Test
public void checkForRegisterDefaultCodecDecode() {
thrown.expectMessage(REG_DECODE);
YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
YmsManager ymsManager = new YmsManager();
YangCodecRegistry.initializeDefaultCodec();
ymsManager.coreService = new MockCoreService();
ymsManager.activate();
ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
assertNotNull("Codec handler is null", yangCodecHandler);
provider.processSchemaRegistry(null);
yangCodecHandler.decode("XML String", XML, null);
}
/**
* Unit test case in which verifying registered codec handler for
* composite encode is null or not.
*/
@Test
public void checkForRegisterDefaultCodecCompEncode() {
thrown.expectMessage(REG_COMPO_ENCODE);
YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
YmsManager ymsManager = new YmsManager();
YangCodecRegistry.initializeDefaultCodec();
ymsManager.coreService = new MockCoreService();
ymsManager.activate();
ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
assertNotNull("Codec handler is null", yangCodecHandler);
provider.processSchemaRegistry(null);
// Creating the object
Object object = CustomssupervisorOpParam.builder()
.supervisor("Customssupervisor").build();
yangCodecHandler.encodeCompositeOperation("filter",
"ydt.filter-type", object,
XML, null);
}
/**
* Unit test case in which verifying registered codec handler for
* composite decode is null or not.
*/
@Test
public void checkForRegisterDefaultCodecCompDecode() {
thrown.expectMessage(REG_COMPO_DECODE);
YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
YmsManager ymsManager = new YmsManager();
YangCodecRegistry.initializeDefaultCodec();
ymsManager.coreService = new MockCoreService();
ymsManager.activate();
ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
assertNotNull("Codec handler is null", yangCodecHandler);
provider.processSchemaRegistry(null);
// Creating the object
YangCompositeEncoding yangCompositeEncoding =
new MockYangCompositeEncoding();
yangCodecHandler.decode(yangCompositeEncoding, XML, null);
}
/**
* Unit test case in which verifying overridden codec handler for encode is
* null or not.
*/
@Test
public void checkForOverriddenDataTreeCodecEncode() {
thrown.expectMessage(OVERRIDE_ENCODE);
YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
YmsManager ymsManager = new YmsManager();
ymsManager.coreService = new MockCoreService();
ymsManager.activate();
ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
assertNotNull("Codec handler is null", yangCodecHandler);
YangDataTreeCodec overriddenCodec = new MockOverriddenDataTreeCodec();
yangCodecHandler.registerOverriddenCodec(overriddenCodec, XML);
provider.processSchemaRegistry(null);
List<Object> yangModuleList = new ArrayList<>();
// Creating the object
Object object = CustomssupervisorOpParam.builder()
.supervisor("Customssupervisor").build();
yangModuleList.add(object);
// Get the xml string and compare
Map<String, String> tagAttr = new HashMap<String, String>();
tagAttr.put("type", "subtree");
yangCodecHandler.encodeOperation("filter", "ydt.filter-type",
tagAttr, yangModuleList,
XML, null);
}
/**
* Unit test case in which verifying overridden codec handler for decode is
* null or not.
*/
@Test
public void checkForOverriddenDataTreeCodecDecode() {
thrown.expectMessage(OVERRIDE_DECODE);
YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
YmsManager ymsManager = new YmsManager();
ymsManager.coreService = new MockCoreService();
ymsManager.activate();
ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
assertNotNull("Codec handler is null", yangCodecHandler);
YangDataTreeCodec overriddenCodec = new MockOverriddenDataTreeCodec();
yangCodecHandler.registerOverriddenCodec(overriddenCodec, XML);
provider.processSchemaRegistry(null);
yangCodecHandler.decode("XML String", XML, null);
}
/**
* Unit test case in which verifying overridden codec handler for
* composite encode is null or not.
*/
@Test
public void checkForOverriddenDataTreeCodecCompoEncode() {
thrown.expectMessage(OVERRIDE_COMPO_ENCODE);
YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
YmsManager ymsManager = new YmsManager();
ymsManager.coreService = new MockCoreService();
ymsManager.activate();
ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
assertNotNull("Codec handler is null", yangCodecHandler);
YangDataTreeCodec overriddenCodec = new MockOverriddenDataTreeCodec();
yangCodecHandler.registerOverriddenCodec(overriddenCodec, XML);
provider.processSchemaRegistry(null);
// Creating the object
Object object = CustomssupervisorOpParam.builder()
.supervisor("Customssupervisor").build();
yangCodecHandler.encodeCompositeOperation("filter",
"ydt.filter-type",
object,
XML, null);
}
/**
* Unit test case in which verifying overridden codec handler for
* composite decode is null or not.
*/
@Test
public void checkForOverriddenDataTreeCodecCompoDecode() {
thrown.expectMessage(OVERRIDE_COMPO_DECODE);
YangDataTreeCodec yangDataTreeCodec = new MockRegisteredDataTreeCodec();
YmsManager ymsManager = new YmsManager();
ymsManager.coreService = new MockCoreService();
ymsManager.activate();
ymsManager.registerDefaultCodec(yangDataTreeCodec, XML);
YangCodecHandler yangCodecHandler = ymsManager.getYangCodecHandler();
assertNotNull("Codec handler is null", yangCodecHandler);
YangDataTreeCodec overriddenCodec = new MockOverriddenDataTreeCodec();
yangCodecHandler.registerOverriddenCodec(overriddenCodec, XML);
provider.processSchemaRegistry(null);
// Verify the received object list
YangCompositeEncoding yangCompositeEncoding =
new MockYangCompositeEncoding();
yangCodecHandler.decode(yangCompositeEncoding, XML, null);
}
}