X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-netconf-connector%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fconnect%2Fnetconf%2FNetconfToNotificationTest.java;h=0f4fe3c26d01f0ed78cb7ed762d8071bb96fb5bd;hb=071a641d7c12c0e6112d5ce0afe806b54f116ed2;hp=5d19188b12733a2127add593233477cd1ce4cd6a;hpb=e316a0ef36279a72767703d190f38a39d7d49395;p=controller.git diff --git a/opendaylight/md-sal/sal-netconf-connector/src/test/java/org/opendaylight/controller/sal/connect/netconf/NetconfToNotificationTest.java b/opendaylight/md-sal/sal-netconf-connector/src/test/java/org/opendaylight/controller/sal/connect/netconf/NetconfToNotificationTest.java index 5d19188b12..0f4fe3c26d 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/test/java/org/opendaylight/controller/sal/connect/netconf/NetconfToNotificationTest.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/test/java/org/opendaylight/controller/sal/connect/netconf/NetconfToNotificationTest.java @@ -1,19 +1,33 @@ +/* + * Copyright (c) 2014, 2015 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + package org.opendaylight.controller.sal.connect.netconf; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; + +import com.google.common.collect.Iterables; import java.io.InputStream; +import java.text.SimpleDateFormat; import java.util.Collections; import java.util.List; import java.util.Set; import javax.xml.parsers.DocumentBuilderFactory; import org.junit.Before; import org.junit.Test; +import org.opendaylight.controller.md.sal.dom.api.DOMEvent; +import org.opendaylight.controller.md.sal.dom.api.DOMNotification; import org.opendaylight.controller.netconf.api.NetconfMessage; +import org.opendaylight.controller.netconf.notifications.NetconfNotification; import org.opendaylight.controller.netconf.util.xml.XmlUtil; import org.opendaylight.controller.sal.connect.netconf.schema.mapping.NetconfMessageTransformer; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser; @@ -32,15 +46,9 @@ public class NetconfToNotificationTest { @SuppressWarnings("deprecation") @Before public void setup() throws Exception { - final List modelsToParse = Collections.singletonList(getClass().getResourceAsStream("/schemas/user-notification.yang")); - final YangContextParser parser = new YangParserImpl(); - final Set modules = parser.parseYangModelsFromStreams(modelsToParse); - assertTrue(!modules.isEmpty()); - final SchemaContext schemaContext = parser.resolveSchemaContext(modules); - assertNotNull(schemaContext); + final SchemaContext schemaContext = getNotificationSchemaContext(getClass()); - messageTransformer = new NetconfMessageTransformer(); - messageTransformer.onGlobalContextUpdated(schemaContext); + messageTransformer = new NetconfMessageTransformer(schemaContext, true); final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); @@ -52,12 +60,24 @@ public class NetconfToNotificationTest { userNotification = new NetconfMessage(doc); } + static SchemaContext getNotificationSchemaContext(Class loadClass) { + final List modelsToParse = Collections.singletonList(loadClass.getResourceAsStream("/schemas/user-notification.yang")); + final YangContextParser parser = new YangParserImpl(); + final Set modules = parser.parseYangModelsFromStreams(modelsToParse); + assertTrue(!modules.isEmpty()); + final SchemaContext schemaContext = parser.resolveSchemaContext(modules); + assertNotNull(schemaContext); + return schemaContext; + } + @Test public void test() throws Exception { - final CompositeNode root = messageTransformer.toNotification(userNotification); - + final DOMNotification domNotification = messageTransformer.toNotification(userNotification); + final ContainerNode root = domNotification.getBody(); assertNotNull(root); - assertEquals(6, root.size()); - assertEquals("user-visited-page", root.getKey().getLocalName()); + assertEquals(6, Iterables.size(root.getValue())); + assertEquals("user-visited-page", root.getNodeType().getLocalName()); + assertEquals(new SimpleDateFormat(NetconfNotification.RFC3339_DATE_FORMAT_BLUEPRINT).parse("2007-07-08T00:01:00Z"), + ((DOMEvent) domNotification).getEventTime()); } }