package org.opendaylight.controller.sal.restconf.impl.cnsn.to.xml.test;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import javax.ws.rs.WebApplicationException;
import org.junit.BeforeClass;
import org.junit.Test;
import org.opendaylight.controller.sal.rest.impl.StructuredDataToXmlProvider;
import org.opendaylight.controller.sal.restconf.impl.test.TestUtils;
import org.opendaylight.controller.sal.restconf.impl.test.YangAndXmlAndDataSchemaLoader;
import org.opendaylight.yangtools.yang.data.api.*;
import org.opendaylight.yangtools.yang.data.impl.NodeFactory;
/**
*
* CnSn = Composite node and Simple node data structure Class contains test of
* serializing simple nodes data values according data types from YANG schema to
* XML file
*
*/
public class CnSnToXmlWithChoiceTest extends YangAndXmlAndDataSchemaLoader {
@BeforeClass
public static void initialization() {
dataLoad("/cnsn-to-xml/choice", 1, "module-with-choice", "cont");
}
@Test
public void cnSnToXmlWithYangChoice() {
String xmlOutput = "";
try {
xmlOutput = TestUtils.writeCompNodeWithSchemaContextToOutput(
prepareCnStructForYangData("lf1", "String data1"), modules, dataSchemaNode,
StructuredDataToXmlProvider.INSTANCE);
} catch (WebApplicationException | IOException e) {
}
assertTrue(xmlOutput.contains("String data1"));
try {
xmlOutput = TestUtils.writeCompNodeWithSchemaContextToOutput(
prepareCnStructForYangData("lf2", "String data2"), modules, dataSchemaNode,
StructuredDataToXmlProvider.INSTANCE);
} catch (WebApplicationException | IOException e) {
}
assertTrue(xmlOutput.contains("String data2"));
}
private CompositeNode prepareCnStructForYangData(String lfName, Object data) {
MutableCompositeNode cont = NodeFactory.createMutableCompositeNode(TestUtils.buildQName("cont"), null, null,
ModifyAction.CREATE, null);
MutableSimpleNode