# NetConf TestTool This project is used to simulate NetConf devices in order to test NetConf south-bound plugin and applications using this plugin. *netconf-testtool* project is designed as versatile java library to be used for custom NetConf device test simulations. ## How to use as standalone application * compile project * start org.opendaylight.netconf.test.tool.Main ## How to use it in your code * Use maven dependency in your project ---- org.opendaylight.netconf netconf-testtool-core 0.1.0-SNAPSHOT ---- * Prepare configuration - models are loaded by classloader from classpath. ---- Set models = ImmutableSet.of( "models/iana-afn-safi@2013-07-04.yang", "models/ietf-inet-types@2013-07-15.yang", "models/ietf-netconf@2011-06-01.yang", "models/ietf-netconf-monitoring@2010-10-04.yang", "models/ietf-yang-library@2016-06-21.yang", "models/ietf-yang-types@2013-07-15.yang", "models/nc-notifications@2008-07-14.yang", "models/notifications@2008-07-14.yang", "models/odl-netconf-monitoring@2022-07-18.yang", ... ); ---- * Prepare list of capabilities ---- Set capabilities = ImmutableSet.of( "urn:ietf:params:netconf:base:1.0", "urn:ietf:params:netconf:base:1.1", ... ); ---- * Override RPC mapping provider org.opendaylight.netconf.test.tool.rpchandler.RpcHandler ---- public class RpcHandlerImpl implements RpcHandler { @Override public Optional getResponse(XmlElement rpcElement) { ... return response; } } ---- * Override operations creator org.opendaylight.netconf.test.tool.operations.OperationsCreator in order to inject custom simulated behavior. ---- public class OperationsCreatorImpl implements OperationsCreator { @Override public NetconfOperationService getNetconfOperationService(Set capabilities, SessionIdProvider idProvider, String netconfSessionIdForReporting) { ... return netconfOperationService; } } ---- * Start NetConf device simulator in your code ---- public class Main { public static void main(String[] args) { Configuration configuration = new ConfigurationBuilder() .setModels(models) .setCapabilities(capabilities) .setRpcHandler(new RpcHandlerImpl()) .setOperationsCreator(new OperationsCreatorImpl()); .build(); NetConfDeviceSimulator netConfDeviceSimulator = new NetConfDeviceSimulator(configuration); netConfDeviceSimulator.start(); } } ----