import java.net.URI;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.junit.Assert;
import org.junit.Before;
-import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.opendaylight.controller.config.util.capability.BasicCapability;
-import org.opendaylight.controller.config.util.capability.Capability;
-import org.opendaylight.controller.config.util.capability.YangModuleCapability;
+import org.opendaylight.netconf.api.capability.BasicCapability;
+import org.opendaylight.netconf.api.capability.Capability;
+import org.opendaylight.netconf.api.capability.YangModuleCapability;
import org.opendaylight.netconf.api.monitoring.NetconfManagementSession;
import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
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.netconf.monitoring.rev101004.netconf.state.sessions.SessionBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange;
-import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
+import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.model.api.Module;
public class NetconfCapabilityMonitoringServiceTest {
private static final String TEST_MODULE_CONTENT2 = "content2";
private static final String TEST_MODULE_REV = "1970-01-01";
private static final String TEST_MODULE_REV2 = "1970-01-02";
- private static final Uri TEST_MODULE_NAMESPACE = new Uri("testModuleNamespace");
+ private static final Uri TEST_MODULE_NAMESPACE = new Uri("testModuleNamespace");
private static final String TEST_MODULE_NAME = "testModule";
- private static Date TEST_MODULE_DATE;
- private static Date TEST_MODULE_DATE2;
+ private static final Revision TEST_MODULE_DATE = Revision.of(TEST_MODULE_REV);
+ private static final Revision TEST_MODULE_DATE2 = Revision.of(TEST_MODULE_REV2);
private YangModuleCapability moduleCapability1;
private YangModuleCapability moduleCapability2;
.build();
private int capabilitiesSize;
- private final Set<Capability> CAPABILITIES = new HashSet<>();
+ private final Set<Capability> capabilities = new HashSet<>();
@Mock
private Module moduleMock;
private NetconfCapabilityMonitoringService monitoringService;
- @BeforeClass
- public static void suiteSetUp() throws Exception {
- TEST_MODULE_DATE = SimpleDateFormatUtil.getRevisionFormat().parse(TEST_MODULE_REV);
- TEST_MODULE_DATE2= SimpleDateFormatUtil.getRevisionFormat().parse(TEST_MODULE_REV2);
- }
-
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
doReturn(new URI(TEST_MODULE_NAMESPACE.getValue())).when(moduleMock).getNamespace();
doReturn(TEST_MODULE_NAME).when(moduleMock).getName();
- doReturn(TEST_MODULE_DATE).when(moduleMock).getRevision();
+ doReturn(java.util.Optional.of(TEST_MODULE_DATE)).when(moduleMock).getRevision();
moduleCapability1 = new YangModuleCapability(moduleMock, TEST_MODULE_CONTENT);
- CAPABILITIES.add(moduleCapability1);
+ capabilities.add(moduleCapability1);
doReturn(new URI(TEST_MODULE_NAMESPACE.getValue())).when(moduleMock2).getNamespace();
doReturn(TEST_MODULE_NAME).when(moduleMock2).getName();
- doReturn(TEST_MODULE_DATE2).when(moduleMock2).getRevision();
+ doReturn(java.util.Optional.of(TEST_MODULE_DATE2)).when(moduleMock2).getRevision();
moduleCapability2 = new YangModuleCapability(moduleMock2, TEST_MODULE_CONTENT2);
- CAPABILITIES.add(new BasicCapability("urn:ietf:params:netconf:base:1.0"));
- CAPABILITIES.add(new BasicCapability("urn:ietf:params:netconf:base:1.1"));
- CAPABILITIES.add(new BasicCapability("urn:ietf:params:xml:ns:yang:ietf-inet-types?module=ietf-inet-types&revision=2010-09-24"));
+ capabilities.add(new BasicCapability("urn:ietf:params:netconf:base:1.0"));
+ capabilities.add(new BasicCapability("urn:ietf:params:netconf:base:1.1"));
+ capabilities.add(new BasicCapability("urn:ietf:params:xml:ns:yang:ietf-inet-types?module=ietf-inet-types&"
+ + "revision=2010-09-24"));
- doReturn(CAPABILITIES).when(operationServiceFactoryMock).getCapabilities();
- doReturn(null).when(operationServiceFactoryMock).registerCapabilityListener(any(NetconfCapabilityMonitoringService.class));
+ doReturn(capabilities).when(operationServiceFactoryMock).getCapabilities();
+ doReturn(null).when(operationServiceFactoryMock)
+ .registerCapabilityListener(any(NetconfCapabilityMonitoringService.class));
doReturn(SESSION).when(sessionMock).toManagementSession();
doNothing().when(listener).onCapabilitiesChanged(any());
doNothing().when(notificationPublisher).onSessionEnded(any());
monitoringService = new NetconfCapabilityMonitoringService(operationServiceFactoryMock);
- monitoringService.onCapabilitiesChanged(CAPABILITIES, Collections.emptySet());
+ monitoringService.onCapabilitiesChanged(capabilities, Collections.emptySet());
monitoringService.setNotificationPublisher(notificationPublisher);
monitoringService.registerListener(listener);
capabilitiesSize = monitoringService.getCapabilities().getCapability().size();
public void testGetSchemaForCapability() throws Exception {
//test multiple revisions of the same capability
monitoringService.onCapabilitiesChanged(Collections.singleton(moduleCapability2), Collections.emptySet());
- final String schema = monitoringService.getSchemaForModuleRevision(TEST_MODULE_NAME, Optional.of(TEST_MODULE_REV));
+ final String schema =
+ monitoringService.getSchemaForModuleRevision(TEST_MODULE_NAME, Optional.of(TEST_MODULE_REV));
Assert.assertEquals(TEST_MODULE_CONTENT, schema);
- final String schema2 = monitoringService.getSchemaForModuleRevision(TEST_MODULE_NAME, Optional.of(TEST_MODULE_REV2));
+ final String schema2 =
+ monitoringService.getSchemaForModuleRevision(TEST_MODULE_NAME, Optional.of(TEST_MODULE_REV2));
Assert.assertEquals(TEST_MODULE_CONTENT2, schema2);
//remove one revision
monitoringService.onCapabilitiesChanged(Collections.emptySet(), Collections.singleton(moduleCapability1));
public void testGetCapabilities() throws Exception {
Capabilities actual = monitoringService.getCapabilities();
List<Uri> exp = new ArrayList<>();
- for (Capability capability : CAPABILITIES) {
+ for (Capability capability : capabilities) {
exp.add(new Uri(capability.getCapabilityUri()));
}
//candidate is added by monitoring service automatically
final Uri uri = new Uri(capUri);
final HashSet<Capability> testCaps = new HashSet<>();
testCaps.add(new BasicCapability(capUri));
- final ArgumentCaptor<NetconfCapabilityChange> capabilityChangeCaptor = ArgumentCaptor.forClass(NetconfCapabilityChange.class);
+ final ArgumentCaptor<NetconfCapabilityChange> capabilityChangeCaptor =
+ ArgumentCaptor.forClass(NetconfCapabilityChange.class);
final ArgumentCaptor<Capabilities> monitoringListenerCaptor = ArgumentCaptor.forClass(Capabilities.class);
//add capability
monitoringService.onCapabilitiesChanged(testCaps, Collections.emptySet());
//remove capability
monitoringService.onCapabilitiesChanged(Collections.emptySet(), testCaps);
- verify(listener, times(3)).onCapabilitiesChanged((monitoringListenerCaptor.capture()));
+ verify(listener, times(3)).onCapabilitiesChanged(monitoringListenerCaptor.capture());
verify(notificationPublisher, times(2)).onCapabilityChanged(capabilityChangeCaptor.capture());
//verify listener calls