X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=restconf%2Frestconf-nb-bierman02%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Frestconf%2Fimpl%2Fnn%2Fto%2Fxml%2Ftest%2FNnToXmlTest.java;h=ac0ee801db1b970d5fb365da0f50823b23913db0;hb=b2ddabbbdc758576fb98076df661f9956e4ef56d;hp=03a6279965363acf90b4daa4620960a72abe9a03;hpb=01a6df747b35181b5cb7a1a8cf7bdd8ecd511ef6;p=netconf.git
diff --git a/restconf/restconf-nb-bierman02/src/test/java/org/opendaylight/controller/sal/restconf/impl/nn/to/xml/test/NnToXmlTest.java b/restconf/restconf-nb-bierman02/src/test/java/org/opendaylight/controller/sal/restconf/impl/nn/to/xml/test/NnToXmlTest.java
index 03a6279965..ac0ee801db 100644
--- a/restconf/restconf-nb-bierman02/src/test/java/org/opendaylight/controller/sal/restconf/impl/nn/to/xml/test/NnToXmlTest.java
+++ b/restconf/restconf-nb-bierman02/src/test/java/org/opendaylight/controller/sal/restconf/impl/nn/to/xml/test/NnToXmlTest.java
@@ -7,18 +7,21 @@
*/
package org.opendaylight.controller.sal.restconf.impl.nn.to.xml.test;
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
-import com.google.common.base.VerifyException;
+import com.google.common.base.Throwables;
import com.google.common.collect.Iterables;
import java.io.ByteArrayOutputStream;
+import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import javax.ws.rs.core.MediaType;
import org.junit.BeforeClass;
-import org.junit.Rule;
import org.junit.Test;
-import org.junit.rules.ExpectedException;
import org.mockito.Mockito;
import org.opendaylight.controller.sal.rest.impl.test.providers.AbstractBodyReaderTest;
import org.opendaylight.netconf.sal.rest.impl.NormalizedNodeXmlBodyWriter;
@@ -26,40 +29,37 @@ import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
import org.opendaylight.restconf.common.context.InstanceIdentifierContext;
import org.opendaylight.restconf.common.context.NormalizedNodeContext;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.codec.TypeDefinitionAwareCodec;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder;
+import org.opendaylight.yangtools.yang.data.impl.schema.SchemaAwareBuilders;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;
-import org.opendaylight.yangtools.yang.model.util.type.BaseTypes;
-import org.opendaylight.yangtools.yang.model.util.type.BitsTypeBuilder;
-import org.opendaylight.yangtools.yang.model.util.type.EnumerationTypeBuilder;
-import org.opendaylight.yangtools.yang.model.util.type.UnionTypeBuilder;
+import org.opendaylight.yangtools.yang.model.ri.type.BaseTypes;
+import org.opendaylight.yangtools.yang.model.ri.type.BitsTypeBuilder;
+import org.opendaylight.yangtools.yang.model.ri.type.EnumerationTypeBuilder;
+import org.opendaylight.yangtools.yang.model.ri.type.UnionTypeBuilder;
public class NnToXmlTest extends AbstractBodyReaderTest {
-
- @Rule
- public ExpectedException thrown = ExpectedException.none();
+ private static EffectiveModelContext schemaContext;
private final NormalizedNodeXmlBodyWriter xmlBodyWriter;
- private static SchemaContext schemaContext;
- public NnToXmlTest() throws NoSuchFieldException, SecurityException {
- this.xmlBodyWriter = new NormalizedNodeXmlBodyWriter();
+ public NnToXmlTest() {
+ super(schemaContext, null);
+ xmlBodyWriter = new NormalizedNodeXmlBodyWriter();
}
@BeforeClass
public static void initialization() {
schemaContext = schemaContextLoader("/nn-to-xml/yang", schemaContext);
- CONTROLLER_CONTEXT.setSchemas(schemaContext);
}
@Test
@@ -82,8 +82,7 @@ public class NnToXmlTest extends AbstractBodyReaderTest {
@Test
public void nnAsYangLeafrefWithPrefixToXMLTest() throws Exception {
- final NormalizedNodeContext normalizedNodeContext = prepareLeafrefData();
- nnToXml(normalizedNodeContext, "true", "true");
+ nnToXml(prepareLeafrefData(), "true", "true");
}
/**
@@ -94,9 +93,12 @@ public class NnToXmlTest extends AbstractBodyReaderTest {
public void nnAsYangLeafrefWithPrefixToXMLNegativeTest() throws Exception {
final NormalizedNodeContext normalizedNodeContext = prepareLeafrefNegativeData();
- thrown.expect(VerifyException.class);
- nnToXml(normalizedNodeContext, "value",
- "value");
+ final IOException ex = assertThrows(IOException.class, () -> nnToXml(normalizedNodeContext,
+ "value", "value"));
+ final Throwable rootCause = Throwables.getRootCause(ex);
+ assertThat(rootCause, instanceOf(IllegalArgumentException.class));
+ assertEquals("Data tree child (basic:module?revision=2013-12-02)not-existing not present in schema parent "
+ + "(basic:module?revision=2013-12-02)cont", rootCause.getMessage());
}
@Test
@@ -192,11 +194,11 @@ public class NnToXmlTest extends AbstractBodyReaderTest {
public void nnAsYangBitsToXmlTest() throws Exception {
final BitsTypeDefinition.Bit mockBit1 = Mockito.mock(BitsTypeDefinition.Bit.class);
Mockito.when(mockBit1.getName()).thenReturn("one");
- Mockito.when(mockBit1.getPosition()).thenReturn(1L);
+ Mockito.when(mockBit1.getPosition()).thenReturn(Uint32.ONE);
final BitsTypeDefinition.Bit mockBit2 = Mockito.mock(BitsTypeDefinition.Bit.class);
Mockito.when(mockBit2.getName()).thenReturn("two");
- Mockito.when(mockBit2.getPosition()).thenReturn(2L);
- final BitsTypeBuilder bitsTypeBuilder = BaseTypes.bitsTypeBuilder(Mockito.mock(SchemaPath.class));
+ Mockito.when(mockBit2.getPosition()).thenReturn(Uint32.TWO);
+ final BitsTypeBuilder bitsTypeBuilder = BaseTypes.bitsTypeBuilder(QName.create("foo", "foo"));
bitsTypeBuilder.addBit(mockBit1);
bitsTypeBuilder.addBit(mockBit2);
@@ -212,7 +214,7 @@ public class NnToXmlTest extends AbstractBodyReaderTest {
Mockito.when(mockEnum.getName()).thenReturn("enum2");
final EnumerationTypeBuilder enumerationTypeBuilder = BaseTypes
- .enumerationTypeBuilder(Mockito.mock(SchemaPath.class));
+ .enumerationTypeBuilder(QName.create("foo", "foo"));
enumerationTypeBuilder.addEnum(mockEnum);
final String elName = "lfEnumeration";
@@ -225,8 +227,8 @@ public class NnToXmlTest extends AbstractBodyReaderTest {
public void nnAsYangEmptyToXmlTest() throws Exception {
final String elName = "lfEmpty";
final NormalizedNodeContext normalizedNodeContext = prepareNNC(
- TypeDefinitionAwareCodec.from(BaseTypes.emptyType()).deserialize(null), elName);
- nnToXml(normalizedNodeContext, "<" + elName + ">" + elName + ">");
+ TypeDefinitionAwareCodec.from(BaseTypes.emptyType()).deserialize(""), elName);
+ nnToXml(normalizedNodeContext, "<" + elName + "/>");
}
@Test
@@ -245,16 +247,16 @@ public class NnToXmlTest extends AbstractBodyReaderTest {
public void nnAsYangUnionToXmlTest() throws Exception {
final BitsTypeDefinition.Bit mockBit1 = Mockito.mock(BitsTypeDefinition.Bit.class);
Mockito.when(mockBit1.getName()).thenReturn("first");
- Mockito.when(mockBit1.getPosition()).thenReturn(1L);
+ Mockito.when(mockBit1.getPosition()).thenReturn(Uint32.ONE);
final BitsTypeDefinition.Bit mockBit2 = Mockito.mock(BitsTypeDefinition.Bit.class);
Mockito.when(mockBit2.getName()).thenReturn("second");
- Mockito.when(mockBit2.getPosition()).thenReturn(2L);
+ Mockito.when(mockBit2.getPosition()).thenReturn(Uint32.TWO);
- final BitsTypeBuilder bitsTypeBuilder = BaseTypes.bitsTypeBuilder(Mockito.mock(SchemaPath.class));
+ final BitsTypeBuilder bitsTypeBuilder = BaseTypes.bitsTypeBuilder(QName.create("foo", "foo"));
bitsTypeBuilder.addBit(mockBit1);
bitsTypeBuilder.addBit(mockBit2);
- final UnionTypeBuilder unionTypeBuilder = BaseTypes.unionTypeBuilder(Mockito.mock(SchemaPath.class));
+ final UnionTypeBuilder unionTypeBuilder = BaseTypes.unionTypeBuilder(QName.create("foo", "foo"));
unionTypeBuilder.addType(BaseTypes.int8Type());
unionTypeBuilder.addType(bitsTypeBuilder.build());
unionTypeBuilder.addType(BaseTypes.booleanType());
@@ -288,19 +290,19 @@ public class NnToXmlTest extends AbstractBodyReaderTest {
}
private static NormalizedNodeContext prepareNNC(final Object object, final String name) {
- final QName cont = QName.create("basic:module", "2013-12-2", "cont");
- final QName lf = QName.create("basic:module", "2013-12-2", name);
+ final QName cont = QName.create("basic:module", "2013-12-02", "cont");
+ final QName lf = QName.create("basic:module", "2013-12-02", name);
final DataSchemaNode contSchema = schemaContext.getDataChildByName(cont);
- final DataContainerNodeAttrBuilder contData = Builders
+ final DataContainerNodeBuilder contData = SchemaAwareBuilders
.containerBuilder((ContainerSchemaNode) contSchema);
final List instanceLf = ControllerContext
.findInstanceDataChildrenByName((DataNodeContainer) contSchema, lf.getLocalName());
final DataSchemaNode schemaLf = Iterables.getFirst(instanceLf, null);
- contData.withChild(Builders.leafBuilder((LeafSchemaNode) schemaLf).withValue(object).build());
+ contData.withChild(SchemaAwareBuilders.leafBuilder((LeafSchemaNode) schemaLf).withValue(object).build());
final NormalizedNodeContext testNormalizedNodeContext = new NormalizedNodeContext(
new InstanceIdentifierContext<>(null, contSchema, null, schemaContext), contData.build());
@@ -311,7 +313,7 @@ public class NnToXmlTest extends AbstractBodyReaderTest {
private void nnToXml(final NormalizedNodeContext normalizedNodeContext, final String... xmlRepresentation)
throws Exception {
final OutputStream output = new ByteArrayOutputStream();
- this.xmlBodyWriter.writeTo(normalizedNodeContext, null, null, null, this.mediaType, null, output);
+ xmlBodyWriter.writeTo(normalizedNodeContext, null, null, null, mediaType, null, output);
for (String element : xmlRepresentation) {
assertTrue(output.toString().contains(element));
@@ -319,26 +321,26 @@ public class NnToXmlTest extends AbstractBodyReaderTest {
}
private static NormalizedNodeContext prepareLeafrefData() {
- final QName cont = QName.create("basic:module", "2013-12-2", "cont");
- final QName lfBoolean = QName.create("basic:module", "2013-12-2", "lfBoolean");
- final QName lfLfref = QName.create("basic:module", "2013-12-2", "lfLfref");
+ final QName cont = QName.create("basic:module", "2013-12-02", "cont");
+ final QName lfBoolean = QName.create("basic:module", "2013-12-02", "lfBoolean");
+ final QName lfLfref = QName.create("basic:module", "2013-12-02", "lfLfref");
final DataSchemaNode contSchema = schemaContext.getDataChildByName(cont);
- final DataContainerNodeAttrBuilder contData = Builders
+ final DataContainerNodeBuilder contData = SchemaAwareBuilders
.containerBuilder((ContainerSchemaNode) contSchema);
List instanceLf = ControllerContext
.findInstanceDataChildrenByName((DataNodeContainer) contSchema, lfBoolean.getLocalName());
DataSchemaNode schemaLf = Iterables.getFirst(instanceLf, null);
- contData.withChild(Builders.leafBuilder((LeafSchemaNode) schemaLf).withValue(Boolean.TRUE).build());
+ contData.withChild(SchemaAwareBuilders.leafBuilder((LeafSchemaNode) schemaLf).withValue(Boolean.TRUE).build());
instanceLf = ControllerContext.findInstanceDataChildrenByName((DataNodeContainer) contSchema,
lfLfref.getLocalName());
schemaLf = Iterables.getFirst(instanceLf, null);
- contData.withChild(Builders.leafBuilder((LeafSchemaNode) schemaLf).withValue("true").build());
+ contData.withChild(SchemaAwareBuilders.leafBuilder((LeafSchemaNode) schemaLf).withValue("true").build());
final NormalizedNodeContext testNormalizedNodeContext = new NormalizedNodeContext(
new InstanceIdentifierContext<>(null, contSchema, null, schemaContext), contData.build());
@@ -347,41 +349,41 @@ public class NnToXmlTest extends AbstractBodyReaderTest {
}
private static NormalizedNodeContext prepareLeafrefNegativeData() {
- final QName cont = QName.create("basic:module", "2013-12-2", "cont");
- final QName lfLfref = QName.create("basic:module", "2013-12-2", "lfLfrefNegative");
+ final QName cont = QName.create("basic:module", "2013-12-02", "cont");
+ final QName lfLfref = QName.create("basic:module", "2013-12-02", "lfLfrefNegative");
final DataSchemaNode contSchema = schemaContext.getDataChildByName(cont);
- final DataContainerNodeAttrBuilder contData = Builders
+ final DataContainerNodeBuilder contData = SchemaAwareBuilders
.containerBuilder((ContainerSchemaNode) contSchema);
final List instanceLf = ControllerContext.findInstanceDataChildrenByName((DataNodeContainer)
contSchema, lfLfref.getLocalName());
final DataSchemaNode schemaLf = Iterables.getFirst(instanceLf, null);
- contData.withChild(Builders.leafBuilder((LeafSchemaNode) schemaLf).withValue("value").build());
+ contData.withChild(SchemaAwareBuilders.leafBuilder((LeafSchemaNode) schemaLf).withValue("value").build());
return new NormalizedNodeContext(
new InstanceIdentifierContext<>(null, contSchema, null, schemaContext), contData.build());
}
private static NormalizedNodeContext prepareIdrefData(final String prefix, final boolean valueAsQName) {
- final QName cont = QName.create("basic:module", "2013-12-2", "cont");
- final QName cont1 = QName.create("basic:module", "2013-12-2", "cont1");
- final QName lf11 = QName.create("basic:module", "2013-12-2", "lf11");
+ final QName cont = QName.create("basic:module", "2013-12-02", "cont");
+ final QName cont1 = QName.create("basic:module", "2013-12-02", "cont1");
+ final QName lf11 = QName.create("basic:module", "2013-12-02", "lf11");
final DataSchemaNode contSchema = schemaContext.getDataChildByName(cont);
- final DataContainerNodeAttrBuilder contData = Builders
+ final DataContainerNodeBuilder contData = SchemaAwareBuilders
.containerBuilder((ContainerSchemaNode) contSchema);
final DataSchemaNode cont1Schema = ((ContainerSchemaNode) contSchema).getDataChildByName(cont1);
- final DataContainerNodeAttrBuilder cont1Data = Builders
+ final DataContainerNodeBuilder cont1Data = SchemaAwareBuilders
.containerBuilder((ContainerSchemaNode) cont1Schema);
Object value = null;
if (valueAsQName) {
- value = QName.create("referenced:module", "2013-12-2", "iden");
+ value = QName.create("referenced:module", "2013-12-02", "iden");
} else {
value = "no qname value";
}
@@ -390,7 +392,7 @@ public class NnToXmlTest extends AbstractBodyReaderTest {
.findInstanceDataChildrenByName((DataNodeContainer) cont1Schema, lf11.getLocalName());
final DataSchemaNode schemaLf = Iterables.getFirst(instanceLf, null);
- cont1Data.withChild(Builders.leafBuilder((LeafSchemaNode) schemaLf).withValue(value).build());
+ cont1Data.withChild(SchemaAwareBuilders.leafBuilder((LeafSchemaNode) schemaLf).withValue(value).build());
contData.withChild(cont1Data.build());