.setBaseSchemaProvider(BASE_SCHEMAS)
.build());
- netconfSpy.onRemoteSessionUp(getSessionCaps(false, CapabilityURN.NOTIFICATION), getListener());
+ netconfSpy.onRemoteSessionUp(getSessionCaps(false, CapabilityURN.NOTIFICATION,
+ CapabilityURN.INTERLEAVE), getListener());
final var argument = ArgumentCaptor.forClass(NetconfDeviceSchema.class);
verify(facade, timeout(5000)).onDeviceConnected(argument.capture(), any(NetconfSessionPreferences.class),
.build()), argument.getValue().capabilities().resolvedCapabilities());
}
+ @Test
+ public void testNetconfDeviceNotificationsModelNotPresentWithoutInterleaveCapability() throws Exception {
+ final var facade = getFacade();
+ final var netconfSpy = spy(new NetconfDeviceBuilder()
+ .setDeviceSchemaProvider(mockDeviceNetconfSchemaProvider())
+ .setProcessingExecutor(MoreExecutors.directExecutor())
+ .setId(getId())
+ .setSalFacade(facade)
+ .setBaseSchemaProvider(BASE_SCHEMAS)
+ .build());
+
+ final var sessionCaps = getSessionCaps(false,
+ TEST_NAMESPACE + "?module=" + TEST_MODULE + "&revision=" + TEST_REVISION, CapabilityURN.NOTIFICATION);
+
+ netconfSpy.onRemoteSessionUp(sessionCaps, getListener());
+
+ final var argument = ArgumentCaptor.forClass(NetconfDeviceSchema.class);
+ verify(facade, timeout(5000)).onDeviceConnected(argument.capture(), any(NetconfSessionPreferences.class),
+ any(RemoteDeviceServices.class));
+
+ // Notification schema was not added when there is no Interleave capability
+ assertEquals(Set.of(
+ new AvailableCapabilityBuilder()
+ .setCapability("(test:namespace?revision=2013-07-22)test-module")
+ .setCapabilityOrigin(CapabilityOrigin.DeviceAdvertised)
+ .build()), argument.getValue().capabilities().resolvedCapabilities());
+ }
+
@Test
public void testNetconfDeviceNotificationsModelIsPresent() throws Exception {
final var facade = getFacade();