package org.opendaylight.netconf.util;
import static org.hamcrest.CoreMatchers.containsString;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertThrows;
import java.util.Collections;
import javax.xml.transform.dom.DOMResult;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.opendaylight.controller.config.util.xml.XmlUtil;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
+import org.opendaylight.binding.runtime.spi.BindingRuntimeHelpers;
+import org.opendaylight.netconf.api.xml.XmlUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.$YangModuleInfoImpl;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session;
import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
public void testConflictingVersionDetection() throws Exception {
final Document document = XmlUtil.readXmlToDocument(getClass()
.getResourceAsStream("/netconfMessages/conflictingversion/conflictingVersionResponse.xml"));
- try {
- NetconfUtil.checkIsMessageOk(document);
- fail();
- } catch (final IllegalStateException e) {
- assertThat(e.getMessage(), containsString("Optimistic lock failed. Expected parent version 21, was 18"));
- }
+
+ final IllegalStateException e = assertThrows(IllegalStateException.class,
+ () -> NetconfUtil.checkIsMessageOk(document));
+ assertThat(e.getMessage(), containsString("Optimistic lock failed. Expected parent version 21, was 18"));
}
@Test
public void testWriteNormalizedNode() throws Exception {
- final ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create();
- moduleInfoBackedContext.addModuleInfos(Collections.singletonList($YangModuleInfoImpl.getInstance()));
- final SchemaContext context = moduleInfoBackedContext.getSchemaContext();
- final LeafNode username = Builders.leafBuilder()
- .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(QName.create(Session.QNAME, "username")))
+ final SchemaContext context = BindingRuntimeHelpers.createEffectiveModel(
+ Collections.singletonList($YangModuleInfoImpl.getInstance()));
+ final LeafNode<?> username = Builders.leafBuilder()
+ .withNodeIdentifier(new NodeIdentifier(QName.create(Session.QNAME, "username")))
.withValue("admin")
.build();
final MapEntryNode session1 = Builders.mapEntryBuilder()
- .withNodeIdentifier(new YangInstanceIdentifier
- .NodeIdentifierWithPredicates(Session.QNAME, QName.create(Session.QNAME, "session-id"), 1L))
+ .withNodeIdentifier(
+ NodeIdentifierWithPredicates.of(Session.QNAME, QName.create(Session.QNAME, "session-id"), 1L))
.withChild(username)
.build();
final MapNode sessionList = Builders.mapBuilder()
- .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(Session.QNAME))
+ .withNodeIdentifier(new NodeIdentifier(Session.QNAME))
.withChild(session1)
.build();
final ContainerNode sessions = Builders.containerBuilder()
- .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(Sessions.QNAME))
+ .withNodeIdentifier(new NodeIdentifier(Sessions.QNAME))
.withChild(sessionList)
.build();
final DOMResult result = new DOMResult(XmlUtil.newDocument());
final SchemaPath path = SchemaPath.create(true, NetconfState.QNAME);
NetconfUtil.writeNormalizedNode(sessions, result, path, context);
- final Document expected = XmlUtil.readXmlToDocument(getClass().getResourceAsStream("/sessions.xml"));
final Document actual = (Document) result.getNode();
+ final Document expected = XmlUtil.readXmlToDocument(getClass().getResourceAsStream("/sessions.xml"));
final Diff diff = XMLUnit.compareXML(expected, actual);
Assert.assertTrue(diff.toString(), diff.similar());
}