2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.sal.restconf.impl.cnsn.to.json.test;
10 import static org.junit.Assert.assertTrue;
12 import java.io.IOException;
13 import java.util.List;
15 import javax.activation.UnsupportedDataTypeException;
16 import javax.ws.rs.WebApplicationException;
17 import org.junit.BeforeClass;
18 import org.junit.Test;
19 import org.opendaylight.controller.sal.rest.impl.StructuredDataToJsonProvider;
20 import org.opendaylight.controller.sal.rest.impl.XmlToCompositeNodeProvider;
21 import org.opendaylight.controller.sal.restconf.impl.test.TestUtils;
22 import org.opendaylight.controller.sal.restconf.impl.test.YangAndXmlAndDataSchemaLoader;
23 import org.opendaylight.yangtools.yang.common.QName;
24 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
25 import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
26 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
27 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
28 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
29 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
30 import org.opendaylight.yangtools.yang.model.api.Status;
31 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
32 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
33 import org.opendaylight.yangtools.yang.model.api.UsesNode;
34 import org.slf4j.Logger;
35 import org.slf4j.LoggerFactory;
37 public class CnSnToJsonIncorrectTopLevelTest extends YangAndXmlAndDataSchemaLoader {
39 private static final Logger LOG = LoggerFactory.getLogger(CnSnToJsonIncorrectTopLevelTest.class);
42 public static void initialize() {
43 dataLoad("/cnsn-to-json/simple-data-types");
46 private class IncorrectDataSchema implements DataSchemaNode, DataNodeContainer {
49 public String getDescription() {
50 // TODO Auto-generated method stub
55 public SchemaPath getPath() {
56 // TODO Auto-generated method stub
61 public QName getQName() {
62 // TODO Auto-generated method stub
67 public String getReference() {
68 // TODO Auto-generated method stub
73 public Status getStatus() {
74 // TODO Auto-generated method stub
79 public List<UnknownSchemaNode> getUnknownSchemaNodes() {
80 // TODO Auto-generated method stub
85 public Set<DataSchemaNode> getChildNodes() {
86 // TODO Auto-generated method stub
91 public DataSchemaNode getDataChildByName(QName arg0) {
92 // TODO Auto-generated method stub
97 public DataSchemaNode getDataChildByName(String arg0) {
98 // TODO Auto-generated method stub
103 public Set<GroupingDefinition> getGroupings() {
104 // TODO Auto-generated method stub
109 public Set<TypeDefinition<?>> getTypeDefinitions() {
110 // TODO Auto-generated method stub
115 public Set<UsesNode> getUses() {
116 // TODO Auto-generated method stub
121 public ConstraintDefinition getConstraints() {
122 // TODO Auto-generated method stub
126 public boolean isAddedByUses() {
127 // TODO Auto-generated method stub
132 public boolean isAugmenting() {
133 // TODO Auto-generated method stub
138 public boolean isConfiguration() {
139 // TODO Auto-generated method stub
146 public void incorrectTopLevelElementTest() {
148 CompositeNode compositeNode = TestUtils.readInputToCnSn("/cnsn-to-json/simple-data-types/xml/data.xml",
149 XmlToCompositeNodeProvider.INSTANCE);
150 DataSchemaNode incorrectDataSchema = null;
151 incorrectDataSchema = new IncorrectDataSchema();
153 TestUtils.normalizeCompositeNode(compositeNode, modules, "simple-data-types:cont");
155 boolean exceptionRaised = false;
157 TestUtils.writeCompNodeWithSchemaContextToOutput(compositeNode, modules, incorrectDataSchema,
158 StructuredDataToJsonProvider.INSTANCE);
159 } catch (UnsupportedDataTypeException e) {
160 exceptionRaised = true;
161 } catch (WebApplicationException | IOException e) {
162 LOG.error("WebApplicationException or IOException was raised");
165 assertTrue(exceptionRaised);