From 1741d9cae1f148be5f9f7d46d2ba24898c6ed178 Mon Sep 17 00:00:00 2001 From: Maros Marsalek Date: Mon, 25 Aug 2014 15:07:50 +0200 Subject: [PATCH] BUG-1521 Netconf-monitoring test coverage raise Change-Id: Ibcbcd7df788c75879fa0c9a554125144aa5c1545 Signed-off-by: Maros Marsalek --- .../controller/netconf/monitoring/Get.java | 45 +++---- .../osgi/NetconfMonitoringActivator.java | 1 - .../osgi/NetconfMonitoringServiceTracker.java | 21 ++- .../monitoring/xml/JaxBSerializer.java | 10 +- .../monitoring/xml/model/NetconfState.java | 11 +- .../netconf/monitoring/GetTest.java | 122 ++++++++++++++++++ .../monitoring/xml/JaxBSerializerTest.java | 66 ++++++++-- 7 files changed, 209 insertions(+), 67 deletions(-) create mode 100644 opendaylight/netconf/netconf-monitoring/src/test/java/org/opendaylight/controller/netconf/monitoring/GetTest.java diff --git a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/Get.java b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/Get.java index fa78fa4bd3..3b3f71b0ed 100644 --- a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/Get.java +++ b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/Get.java @@ -7,8 +7,7 @@ */ package org.opendaylight.controller.netconf.monitoring; -import com.google.common.collect.Maps; - +import java.util.Collections; import org.opendaylight.controller.netconf.api.NetconfDocumentedException; import org.opendaylight.controller.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.controller.netconf.api.xml.XmlNetconfConstants; @@ -18,36 +17,26 @@ import org.opendaylight.controller.netconf.monitoring.xml.JaxBSerializer; import org.opendaylight.controller.netconf.monitoring.xml.model.NetconfState; import org.opendaylight.controller.netconf.util.mapping.AbstractNetconfOperation; import org.opendaylight.controller.netconf.util.xml.XmlElement; -import org.opendaylight.controller.netconf.util.xml.XmlUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; -import java.util.Map; - public class Get extends AbstractNetconfOperation { private static final Logger logger = LoggerFactory.getLogger(Get.class); private final NetconfMonitoringService netconfMonitor; - public Get(NetconfMonitoringService netconfMonitor) { + public Get(final NetconfMonitoringService netconfMonitor) { super(MonitoringConstants.MODULE_NAME); this.netconfMonitor = netconfMonitor; } - private Element getPlaceholder(Document innerResult) throws NetconfDocumentedException { - try { - XmlElement rootElement = null; - rootElement = XmlElement.fromDomElementWithExpected(innerResult.getDocumentElement(), - XmlNetconfConstants.RPC_REPLY_KEY, XmlNetconfConstants.RFC4741_TARGET_NAMESPACE); - return rootElement.getOnlyChildElement(XmlNetconfConstants.DATA_KEY).getDomElement(); - } catch (RuntimeException e) { - throw new IllegalArgumentException(String.format( - "Input xml in wrong format, Expecting root element %s with child element %s, but was %s", - XmlNetconfConstants.RPC_REPLY_KEY, XmlNetconfConstants.DATA_KEY, - XmlUtil.toString(innerResult.getDocumentElement())), e); - } + private Element getPlaceholder(final Document innerResult) + throws NetconfDocumentedException { + final XmlElement rootElement = XmlElement.fromDomElementWithExpected( + innerResult.getDocumentElement(), XmlNetconfConstants.RPC_REPLY_KEY, XmlNetconfConstants.RFC4741_TARGET_NAMESPACE); + return rootElement.getOnlyChildElement(XmlNetconfConstants.DATA_KEY).getDomElement(); } @Override @@ -61,7 +50,7 @@ public class Get extends AbstractNetconfOperation { } @Override - public Document handle(Document requestMessage, NetconfOperationChainedExecution subsequentOperation) + public Document handle(final Document requestMessage, final NetconfOperationChainedExecution subsequentOperation) throws NetconfDocumentedException { if (subsequentOperation.isExecutionTermination()){ throw new NetconfDocumentedException(String.format("Subsequent netconf operation expected by %s", this), @@ -71,29 +60,29 @@ public class Get extends AbstractNetconfOperation { } try { - Document innerResult = subsequentOperation.execute(requestMessage); + final Document innerResult = subsequentOperation.execute(requestMessage); - NetconfState netconfMonitoring = new NetconfState(netconfMonitor); + final NetconfState netconfMonitoring = new NetconfState(netconfMonitor); Element monitoringXmlElement = new JaxBSerializer().toXml(netconfMonitoring); monitoringXmlElement = (Element) innerResult.importNode(monitoringXmlElement, true); - Element monitoringXmlElementPlaceholder = getPlaceholder(innerResult); + final Element monitoringXmlElementPlaceholder = getPlaceholder(innerResult); monitoringXmlElementPlaceholder.appendChild(monitoringXmlElement); return innerResult; - } catch (RuntimeException e) { - String errorMessage = "Get operation for netconf-state subtree failed"; + } catch (final RuntimeException e) { + final String errorMessage = "Get operation for netconf-state subtree failed"; logger.warn(errorMessage, e); - Map info = Maps.newHashMap(); - info.put(NetconfDocumentedException.ErrorSeverity.error.toString(), e.getMessage()); + throw new NetconfDocumentedException(errorMessage, NetconfDocumentedException.ErrorType.application, NetconfDocumentedException.ErrorTag.operation_failed, - NetconfDocumentedException.ErrorSeverity.error, info); + NetconfDocumentedException.ErrorSeverity.error, + Collections.singletonMap(NetconfDocumentedException.ErrorSeverity.error.toString(), e.getMessage())); } } @Override - protected Element handle(Document document, XmlElement message, NetconfOperationChainedExecution subsequentOperation) + protected Element handle(final Document document, final XmlElement message, final NetconfOperationChainedExecution subsequentOperation) throws NetconfDocumentedException { throw new UnsupportedOperationException("Never gets called"); } diff --git a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringActivator.java b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringActivator.java index 14c47352a8..9d332c6440 100644 --- a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringActivator.java +++ b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringActivator.java @@ -24,7 +24,6 @@ public class NetconfMonitoringActivator implements BundleActivator { public void start(final BundleContext context) { monitor = new NetconfMonitoringServiceTracker(context); monitor.open(); - } @Override diff --git a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringServiceTracker.java b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringServiceTracker.java index 920236b9b6..f99ae54e6d 100644 --- a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringServiceTracker.java +++ b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringServiceTracker.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.netconf.monitoring.osgi; import com.google.common.base.Preconditions; +import java.util.Hashtable; import org.opendaylight.controller.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceFactory; import org.osgi.framework.BundleContext; @@ -17,43 +18,39 @@ import org.osgi.util.tracker.ServiceTracker; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Dictionary; -import java.util.Hashtable; - public class NetconfMonitoringServiceTracker extends ServiceTracker { private static final Logger logger = LoggerFactory.getLogger(NetconfMonitoringServiceTracker.class); private ServiceRegistration reg; - NetconfMonitoringServiceTracker(BundleContext context) { + NetconfMonitoringServiceTracker(final BundleContext context) { super(context, NetconfMonitoringService.class, null); } @Override - public NetconfMonitoringService addingService(ServiceReference reference) { + public NetconfMonitoringService addingService(final ServiceReference reference) { Preconditions.checkState(reg == null, "Monitoring service was already added"); - NetconfMonitoringService netconfMonitoringService = super.addingService(reference); + final NetconfMonitoringService netconfMonitoringService = super.addingService(reference); final NetconfMonitoringOperationService operationService = new NetconfMonitoringOperationService( netconfMonitoringService); - NetconfOperationServiceFactory factory = new NetconfMonitoringActivator.NetconfMonitoringOperationServiceFactory( + final NetconfOperationServiceFactory factory = new NetconfMonitoringActivator.NetconfMonitoringOperationServiceFactory( operationService); - Dictionary props = new Hashtable<>(); - reg = context.registerService(NetconfOperationServiceFactory.class, factory, props); + reg = context.registerService(NetconfOperationServiceFactory.class, factory, new Hashtable()); return netconfMonitoringService; } @Override - public void removedService(ServiceReference reference, - NetconfMonitoringService netconfMonitoringService) { + public void removedService(final ServiceReference reference, + final NetconfMonitoringService netconfMonitoringService) { if(reg!=null) { try { reg.unregister(); - } catch (Exception e) { + } catch (final Exception e) { logger.warn("Ignoring exception while unregistering {}", reg, e); } } diff --git a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/JaxBSerializer.java b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/JaxBSerializer.java index 4b07ab090a..962ad17b66 100644 --- a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/JaxBSerializer.java +++ b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/JaxBSerializer.java @@ -18,17 +18,17 @@ import javax.xml.transform.dom.DOMResult; public class JaxBSerializer { - public Element toXml(NetconfState monitoringModel) { - DOMResult res = null; + public Element toXml(final NetconfState monitoringModel) { + final DOMResult res; try { - JAXBContext jaxbContext = JAXBContext.newInstance(NetconfState.class); - Marshaller marshaller = jaxbContext.createMarshaller(); + final JAXBContext jaxbContext = JAXBContext.newInstance(NetconfState.class); + final Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); res = new DOMResult(); marshaller.marshal(monitoringModel, res); - } catch (JAXBException e) { + } catch (final JAXBException e) { throw new RuntimeException("Unable to serialize netconf state " + monitoringModel, e); } return ((Document)res.getNode()).getDocumentElement(); diff --git a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/model/NetconfState.java b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/model/NetconfState.java index 98bda5833e..8f5a1c029d 100644 --- a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/model/NetconfState.java +++ b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/model/NetconfState.java @@ -28,15 +28,12 @@ public final class NetconfState { private Schemas schemas; private Sessions sessions; - public NetconfState(NetconfMonitoringService monitoringService) { + public NetconfState(final NetconfMonitoringService monitoringService) { this.sessions = monitoringService.getSessions(); this.schemas = monitoringService.getSchemas(); } - public NetconfState() { - } - - + public NetconfState() {} @XmlElementWrapper(name="schemas") @XmlElement(name="schema") @@ -44,7 +41,7 @@ public final class NetconfState { return Collections2.transform(schemas.getSchema(), new Function() { @Nullable @Override - public MonitoringSchema apply(@Nullable Schema input) { + public MonitoringSchema apply(@Nullable final Schema input) { return new MonitoringSchema(input); } }); @@ -56,7 +53,7 @@ public final class NetconfState { return Collections2.transform(sessions.getSession(), new Function() { @Nullable @Override - public MonitoringSession apply(@Nullable Session input) { + public MonitoringSession apply(@Nullable final Session input) { return new MonitoringSession(input); } }); diff --git a/opendaylight/netconf/netconf-monitoring/src/test/java/org/opendaylight/controller/netconf/monitoring/GetTest.java b/opendaylight/netconf/netconf-monitoring/src/test/java/org/opendaylight/controller/netconf/monitoring/GetTest.java new file mode 100644 index 0000000000..5fceac06dd --- /dev/null +++ b/opendaylight/netconf/netconf-monitoring/src/test/java/org/opendaylight/controller/netconf/monitoring/GetTest.java @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2014 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.netconf.monitoring; + +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertTrue; +import static junit.framework.TestCase.fail; +import static org.junit.Assert.assertThat; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.doThrow; + +import java.util.Collections; +import org.hamcrest.CoreMatchers; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.opendaylight.controller.netconf.api.NetconfDocumentedException; +import org.opendaylight.controller.netconf.api.monitoring.NetconfMonitoringService; +import org.opendaylight.controller.netconf.mapping.api.HandlingPriority; +import org.opendaylight.controller.netconf.mapping.api.NetconfOperationChainedExecution; +import org.opendaylight.controller.netconf.util.xml.XmlUtil; +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.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.sessions.Session; +import org.w3c.dom.Document; + +public class GetTest { + + @Mock + private NetconfMonitoringService monitor; + @Mock + private Document request; + @Mock + private NetconfOperationChainedExecution subsequentOperation; + private Document incorrectSubsequentResult; + private Document correctSubsequentResult; + + private Get get; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + + incorrectSubsequentResult = XmlUtil.readXmlToDocument(""); + correctSubsequentResult = XmlUtil.readXmlToDocument(""); + + doReturn(new SessionsBuilder().setSession(Collections.emptyList()).build()).when(monitor).getSessions(); + doReturn(new SchemasBuilder().setSchema(Collections.emptyList()).build()).when(monitor).getSchemas(); + doReturn(false).when(subsequentOperation).isExecutionTermination(); + + get = new Get(monitor); + } + + @Test + public void testHandleNoSubsequent() throws Exception { + try { + get.handle(null, NetconfOperationChainedExecution.EXECUTION_TERMINATION_POINT); + } catch (final NetconfDocumentedException e) { + assertNetconfDocumentedEx(e, NetconfDocumentedException.ErrorSeverity.error, NetconfDocumentedException.ErrorTag.operation_failed, NetconfDocumentedException.ErrorType.application); + return; + } + + fail("Get should fail without subsequent operation"); + } + + @Test + public void testHandleWrongPlaceholder() throws Exception { + doReturn(incorrectSubsequentResult).when(subsequentOperation).execute(request); + try { + get.handle(request, subsequentOperation); + } catch (final NetconfDocumentedException e) { + assertNetconfDocumentedEx(e, NetconfDocumentedException.ErrorSeverity.error, NetconfDocumentedException.ErrorTag.invalid_value, NetconfDocumentedException.ErrorType.application); + return; + } + + fail("Get should fail with wrong xml"); + } + + @Test + public void testHandleRuntimeEx() throws Exception { + doThrow(RuntimeException.class).when(subsequentOperation).execute(request); + try { + get.handle(request, subsequentOperation); + } catch (final NetconfDocumentedException e) { + assertNetconfDocumentedEx(e, NetconfDocumentedException.ErrorSeverity.error, NetconfDocumentedException.ErrorTag.operation_failed, NetconfDocumentedException.ErrorType.application); + assertEquals(1, e.getErrorInfo().size()); + return; + } + + fail("Get should fail with wrong xml"); + } + + @Test + public void testSuccessHandle() throws Exception { + doReturn(correctSubsequentResult).when(subsequentOperation).execute(request); + assertTrue(get.getHandlingPriority().getPriority().get() > HandlingPriority.HANDLE_WITH_DEFAULT_PRIORITY.getPriority().get()); + final Document result = get.handle(request, subsequentOperation); + assertThat(XmlUtil.toString(result), CoreMatchers.containsString("sessions")); + assertThat(XmlUtil.toString(result), CoreMatchers.containsString("schemas")); + + } + + @Test(expected = UnsupportedOperationException.class) + public void testHandle() throws Exception { + get.handle(null, null, null); + + } + + private void assertNetconfDocumentedEx(final NetconfDocumentedException e, final NetconfDocumentedException.ErrorSeverity severity, final NetconfDocumentedException.ErrorTag errorTag, final NetconfDocumentedException.ErrorType type) { + assertEquals(severity, e.getErrorSeverity()); + assertEquals(errorTag, e.getErrorTag()); + assertEquals(type, e.getErrorType()); + } +} 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 02129574da..d0d587fb84 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,37 +7,40 @@ */ 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 com.google.common.collect.Lists; +import org.hamcrest.CoreMatchers; import org.junit.Test; 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 java.util.Date; - -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; public class JaxBSerializerTest { @Test public void testName() throws Exception { - NetconfMonitoringService service = new NetconfMonitoringService() { + final NetconfMonitoringService service = new NetconfMonitoringService() { @Override public Sessions getSessions() { @@ -46,19 +49,54 @@ public class JaxBSerializerTest { @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(); } }; - NetconfState model = new NetconfState(service); - Element xml = new JaxBSerializer().toXml(model); + final NetconfState model = new NetconfState(service); + final String xml = XmlUtil.toString(new JaxBSerializer().toXml(model)); + + assertThat(xml, CoreMatchers.containsString( + "\n" + + "yang\n" + + "id\n" + + "NETCONF\n" + + "localhost\n" + + "v1\n" + + "\n")); + + assertThat(xml, CoreMatchers.containsString( + "\n" + + "1\n" + + "0\n" + + "0\n" + + "loginTime\n" + + "0\n" + + "0\n" + + "client\n" + + "address/port\n" + + "ncme:netconf-tcp\n" + + "username\n" + + "")); + } + + 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(Class transportType) { - 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 DateAndTime("loginTime")).when(mocked).getLoginTime(); doReturn(new Host(new DomainName("address/port"))).when(mocked).getSourceHost(); doReturn(new ZeroBasedCounter32(0L)).when(mocked).getInBadRpcs(); doReturn(new ZeroBasedCounter32(0L)).when(mocked).getInRpcs(); -- 2.36.6