X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-monitoring%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fmonitoring%2Fxml%2FJaxBSerializerTest.java;h=b81d2c144fd38f088db974dba8cd19952ac0dde7;hp=1e3f343624726e9ff0af80f98c3da32e9233f7c5;hb=4e59b3bd93bc8d7bf1880e98b75c87faab8f61c9;hpb=c541f7868e6e2d654b8080b5426bb12a39bddf11 diff --git a/opendaylight/netconf/netconf-monitoring/src/test/java/org/opendaylight/controller/netconf/monitoring/xml/JaxBSerializerTest.java b/opendaylight/netconf/netconf-monitoring/src/test/java/org/opendaylight/controller/netconf/monitoring/xml/JaxBSerializerTest.java index 1e3f343624..b81d2c144f 100644 --- a/opendaylight/netconf/netconf-monitoring/src/test/java/org/opendaylight/controller/netconf/monitoring/xml/JaxBSerializerTest.java +++ b/opendaylight/netconf/netconf-monitoring/src/test/java/org/opendaylight/controller/netconf/monitoring/xml/JaxBSerializerTest.java @@ -7,65 +7,136 @@ */ package org.opendaylight.controller.netconf.monitoring.xml; +import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; -import java.util.Date; - +import com.google.common.base.Optional; +import com.google.common.collect.Lists; +import java.util.Set; +import org.hamcrest.CoreMatchers; import org.junit.Test; +import org.opendaylight.controller.netconf.api.Capability; +import org.opendaylight.controller.netconf.api.monitoring.NetconfManagementSession; import org.opendaylight.controller.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.controller.netconf.monitoring.xml.model.NetconfState; import org.opendaylight.controller.netconf.util.xml.XmlUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.DomainName; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Host; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.NetconfTcp; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.Session1; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfSsh; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Transport; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Yang; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.SchemasBuilder; 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.SessionsBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaKey; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.DateAndTime; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.ZeroBasedCounter32; -import org.w3c.dom.Element; - -import com.google.common.collect.Lists; public class JaxBSerializerTest { @Test - public void testName() throws Exception { + public void testSerialization() throws Exception { + + final NetconfMonitoringService service = new NetconfMonitoringService() { + + @Override + public void onSessionUp(final NetconfManagementSession session) { + + } + + @Override + public void onSessionDown(final NetconfManagementSession session) { + + } + + @Override + public void onCapabilitiesAdded(final Set addedCaps) { - NetconfMonitoringService service = new NetconfMonitoringService() { + } + + @Override + public void onCapabilitiesRemoved(final Set addedCaps) { + + } @Override public Sessions getSessions() { - return new SessionsBuilder().setSession(Lists.newArrayList(getMockSession())).build(); + return new SessionsBuilder().setSession(Lists.newArrayList(getMockSession(NetconfTcp.class), getMockSession(NetconfSsh.class))).build(); } @Override public Schemas getSchemas() { - return new SchemasBuilder().setSchema(Lists.newArrayList()).build(); + return new SchemasBuilder().setSchema(Lists.newArrayList(getMockSchema("id", "v1", Yang.class), getMockSchema("id2", "", Yang.class))).build(); + } + + @Override + public String getSchemaForCapability(final String moduleName, final Optional revision) { + return null; + } + + @Override + public Set getCapabilities() { + return null; } }; - NetconfState model = new NetconfState(service); - Element xml = new JaxBSerializer().toXml(model); - System.out.println(XmlUtil.toString(xml)); + final NetconfState model = new NetconfState(service); + final String xml = XmlUtil.toString(new JaxBSerializer().toXml(model)).replaceAll("\\s", ""); + + assertThat(xml, CoreMatchers.containsString( + "" + + "yang" + + "id" + + "NETCONF" + + "localhost" + + "v1" + + "")); + + assertThat(xml, CoreMatchers.containsString( + "" + + "1" + + "0" + + "0" + + "2010-10-10T12:32:32Z" + + "0" + + "0" + + "client" + + "192.168.1.1" + + "ncme:netconf-tcp" + + "username" + + "")); + } + + private Schema getMockSchema(final String id, final String version, final Class format) { + final Schema mock = mock(Schema.class); + + doReturn(format).when(mock).getFormat(); + doReturn(id).when(mock).getIdentifier(); + doReturn(new Uri("localhost")).when(mock).getNamespace(); + doReturn(version).when(mock).getVersion(); + doReturn(Lists.newArrayList(new Schema.Location(Schema.Location.Enumeration.NETCONF))).when(mock).getLocation(); + doReturn(new SchemaKey(format, id, version)).when(mock).getKey(); + return mock; } - private Session getMockSession() { - Session mocked = mock(Session.class); - Session1 mockedSession1 = mock(Session1.class); + private Session getMockSession(final Class transportType) { + final Session mocked = mock(Session.class); + final Session1 mockedSession1 = mock(Session1.class); doReturn("client").when(mockedSession1).getSessionIdentifier(); doReturn(1L).when(mocked).getSessionId(); - doReturn(new DateAndTime(new Date().toString())).when(mocked).getLoginTime(); - doReturn(new Host(new DomainName("address/port"))).when(mocked).getSourceHost(); + doReturn(new DateAndTime("2010-10-10T12:32:32Z")).when(mocked).getLoginTime(); + doReturn(new Host(new DomainName("192.168.1.1"))).when(mocked).getSourceHost(); doReturn(new ZeroBasedCounter32(0L)).when(mocked).getInBadRpcs(); doReturn(new ZeroBasedCounter32(0L)).when(mocked).getInRpcs(); doReturn(new ZeroBasedCounter32(0L)).when(mocked).getOutNotifications(); doReturn(new ZeroBasedCounter32(0L)).when(mocked).getOutRpcErrors(); - doReturn(NetconfSsh.class).when(mocked).getTransport(); + doReturn(transportType).when(mocked).getTransport(); doReturn("username").when(mocked).getUsername(); doReturn(mockedSession1).when(mocked).getAugmentation(Session1.class); return mocked;