# 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();
}
}
----