import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import com.google.common.collect.Lists;
import java.util.List;
import org.junit.Test;
import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil;
-import org.opendaylight.yangtools.yang.common.QName;
public class NetconfSessionPreferencesTest {
-
@Test
- public void testMerge() throws Exception {
- final List<String> caps1 = Lists.newArrayList(
- "namespace:1?module=module1&revision=2012-12-12",
- "namespace:2?module=module2&revision=2012-12-12",
- "urn:ietf:params:xml:ns:yang:"
- + "ietf-netconf-monitoring?module=ietf-netconf-monitoring&revision=2010-10-04",
- "urn:ietf:params:netconf:base:1.0",
- "urn:ietf:params:netconf:capability:rollback-on-error:1.0"
- );
- final NetconfSessionPreferences sessionCaps1 = NetconfSessionPreferences.fromStrings(caps1);
+ public void testMerge() {
+ final var sessionCaps1 = NetconfSessionPreferences.fromStrings(List.of(
+ "namespace:1?module=module1&revision=2012-12-12",
+ "namespace:2?module=module2&revision=2012-12-12",
+ "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring?module=ietf-netconf-monitoring"
+ + "&revision=2010-10-04",
+ "urn:ietf:params:netconf:base:1.0",
+ "urn:ietf:params:netconf:capability:rollback-on-error:1.0"));
assertCaps(sessionCaps1, 2, 3);
- final List<String> caps2 = Lists.newArrayList(
- "namespace:3?module=module3&revision=2012-12-12",
- "namespace:4?module=module4&revision=2012-12-12",
- "randomNonModuleCap"
- );
- final NetconfSessionPreferences sessionCaps2 = NetconfSessionPreferences.fromStrings(caps2);
+ final var sessionCaps2 = NetconfSessionPreferences.fromStrings(List.of(
+ "namespace:3?module=module3&revision=2012-12-12",
+ "namespace:4?module=module4&revision=2012-12-12",
+ "randomNonModuleCap"));
assertCaps(sessionCaps2, 1, 2);
- final NetconfSessionPreferences merged = sessionCaps1.addModuleCaps(sessionCaps2);
+ final var merged = sessionCaps1.addModuleCaps(sessionCaps2);
assertCaps(merged, 2, 2 + 1 /*Preserved monitoring*/ + 2 /*already present*/);
- for (final QName qualifiedName : sessionCaps2.getModuleBasedCaps()) {
- assertThat(merged.getModuleBasedCaps(), hasItem(qualifiedName));
+ for (var qname : sessionCaps2.getModuleBasedCaps()) {
+ assertThat(merged.getModuleBasedCaps(), hasItem(qname));
}
assertThat(merged.getModuleBasedCaps(), hasItem(NetconfMessageTransformUtil.IETF_NETCONF_MONITORING));
@Test
public void testReplace() throws Exception {
- final List<String> caps1 = Lists.newArrayList(
- "namespace:1?module=module1&revision=2012-12-12",
- "namespace:2?module=module2&revision=2012-12-12",
- "urn:ietf:params:xml:ns:yang:"
- + "ietf-netconf-monitoring?module=ietf-netconf-monitoring&revision=2010-10-04",
- "urn:ietf:params:netconf:base:1.0",
- "urn:ietf:params:netconf:capability:rollback-on-error:1.0"
- );
- final NetconfSessionPreferences sessionCaps1 = NetconfSessionPreferences.fromStrings(caps1);
+ final var sessionCaps1 = NetconfSessionPreferences.fromStrings(List.of(
+ "namespace:1?module=module1&revision=2012-12-12",
+ "namespace:2?module=module2&revision=2012-12-12",
+ "urn:ietf:params:xml:ns:yang:"
+ + "ietf-netconf-monitoring?module=ietf-netconf-monitoring&revision=2010-10-04",
+ "urn:ietf:params:netconf:base:1.0",
+ "urn:ietf:params:netconf:capability:rollback-on-error:1.0"));
assertCaps(sessionCaps1, 2, 3);
- final List<String> caps2 = Lists.newArrayList(
- "namespace:3?module=module3&revision=2012-12-12",
- "namespace:4?module=module4&revision=2012-12-12",
- "randomNonModuleCap"
- );
- final NetconfSessionPreferences sessionCaps2 = NetconfSessionPreferences.fromStrings(caps2);
+ final var sessionCaps2 = NetconfSessionPreferences.fromStrings(List.of(
+ "namespace:3?module=module3&revision=2012-12-12",
+ "namespace:4?module=module4&revision=2012-12-12",
+ "randomNonModuleCap"));
assertCaps(sessionCaps2, 1, 2);
-
- final NetconfSessionPreferences replaced = sessionCaps1.replaceModuleCaps(sessionCaps2);
- assertCaps(replaced, 2, 2);
+ assertCaps(sessionCaps1.replaceModuleCaps(sessionCaps2), 2, 2);
}
@Test
public void testNonModuleMerge() throws Exception {
- final List<String> caps1 = Lists.newArrayList(
- "namespace:1?module=module1&revision=2012-12-12",
- "namespace:2?module=module2&revision=2012-12-12",
- "urn:ietf:params:xml:ns:yang:"
- + "ietf-netconf-monitoring?module=ietf-netconf-monitoring&revision=2010-10-04",
- "urn:ietf:params:netconf:base:1.0",
- "urn:ietf:params:netconf:capability:rollback-on-error:1.0",
- "urn:ietf:params:netconf:capability:candidate:1.0"
- );
- final NetconfSessionPreferences sessionCaps1 = NetconfSessionPreferences.fromStrings(caps1);
+ final var sessionCaps1 = NetconfSessionPreferences.fromStrings(List.of(
+ "namespace:1?module=module1&revision=2012-12-12",
+ "namespace:2?module=module2&revision=2012-12-12",
+ "urn:ietf:params:xml:ns:yang:"
+ + "ietf-netconf-monitoring?module=ietf-netconf-monitoring&revision=2010-10-04",
+ "urn:ietf:params:netconf:base:1.0",
+ "urn:ietf:params:netconf:capability:rollback-on-error:1.0",
+ "urn:ietf:params:netconf:capability:candidate:1.0"));
assertCaps(sessionCaps1, 3, 3);
assertTrue(sessionCaps1.isCandidateSupported());
- final List<String> caps2 = Lists.newArrayList(
- "namespace:3?module=module3&revision=2012-12-12",
- "namespace:4?module=module4&revision=2012-12-12",
- "urn:ietf:params:netconf:capability:writable-running:1.0",
- "urn:ietf:params:netconf:capability:notification:1.0"
- );
- final NetconfSessionPreferences sessionCaps2 = NetconfSessionPreferences.fromStrings(caps2);
+ final var sessionCaps2 = NetconfSessionPreferences.fromStrings(List.of(
+ "namespace:3?module=module3&revision=2012-12-12",
+ "namespace:4?module=module4&revision=2012-12-12",
+ "urn:ietf:params:netconf:capability:writable-running:1.0",
+ "urn:ietf:params:netconf:capability:notification:1.0"));
assertCaps(sessionCaps2, 2, 2);
assertTrue(sessionCaps2.isRunningWritable());
- final NetconfSessionPreferences merged = sessionCaps1.addNonModuleCaps(sessionCaps2);
+ final var merged = sessionCaps1.addNonModuleCaps(sessionCaps2);
assertCaps(merged, 3 + 2, 3);
- for (final String capability : sessionCaps2.getNonModuleCaps()) {
- assertThat(merged.getNonModuleCaps(), hasItem(capability));
- }
+ sessionCaps2.getNonModuleCaps().forEach(
+ capability -> assertThat(merged.getNonModuleCaps(), hasItem(capability)));
assertThat(merged.getNonModuleCaps(), hasItem("urn:ietf:params:netconf:base:1.0"));
assertThat(merged.getNonModuleCaps(), hasItem("urn:ietf:params:netconf:capability:rollback-on-error:1.0"));
@Test
public void testNonmoduleReplace() throws Exception {
- final List<String> caps1 = Lists.newArrayList(
- "namespace:1?module=module1&revision=2012-12-12",
- "namespace:2?module=module2&revision=2012-12-12",
- "urn:ietf:params:xml:ns:yang:"
- + "ietf-netconf-monitoring?module=ietf-netconf-monitoring&revision=2010-10-04",
- "urn:ietf:params:netconf:base:1.0",
- "urn:ietf:params:netconf:capability:rollback-on-error:1.0",
- "urn:ietf:params:netconf:capability:candidate:1.0"
- );
- final NetconfSessionPreferences sessionCaps1 = NetconfSessionPreferences.fromStrings(caps1);
+ final var sessionCaps1 = NetconfSessionPreferences.fromStrings(List.of(
+ "namespace:1?module=module1&revision=2012-12-12",
+ "namespace:2?module=module2&revision=2012-12-12",
+ "urn:ietf:params:xml:ns:yang:"
+ + "ietf-netconf-monitoring?module=ietf-netconf-monitoring&revision=2010-10-04",
+ "urn:ietf:params:netconf:base:1.0",
+ "urn:ietf:params:netconf:capability:rollback-on-error:1.0",
+ "urn:ietf:params:netconf:capability:candidate:1.0"));
assertCaps(sessionCaps1, 3, 3);
assertTrue(sessionCaps1.isCandidateSupported());
- final List<String> caps2 = Lists.newArrayList(
- "namespace:3?module=module3&revision=2012-12-12",
- "namespace:4?module=module4&revision=2012-12-12",
- "randomNonModuleCap",
- "urn:ietf:params:netconf:capability:writable-running:1.0"
- );
- final NetconfSessionPreferences sessionCaps2 = NetconfSessionPreferences.fromStrings(caps2);
+ final var sessionCaps2 = NetconfSessionPreferences.fromStrings(List.of(
+ "namespace:3?module=module3&revision=2012-12-12",
+ "namespace:4?module=module4&revision=2012-12-12",
+ "randomNonModuleCap",
+ "urn:ietf:params:netconf:capability:writable-running:1.0"));
assertCaps(sessionCaps2, 2, 2);
assertTrue(sessionCaps2.isRunningWritable());
- final NetconfSessionPreferences replaced = sessionCaps1.replaceNonModuleCaps(sessionCaps2);
+ final var replaced = sessionCaps1.replaceNonModuleCaps(sessionCaps2);
assertCaps(replaced, 2, 3);
assertFalse(replaced.isCandidateSupported());
assertTrue(replaced.isRunningWritable());
@Test
public void testCapabilityNoRevision() throws Exception {
- final List<String> caps1 = Lists.newArrayList(
- "namespace:2?module=module2",
- "namespace:2?module=module2&revision=2012-12-12",
- "namespace:2?module=module1&RANDOMSTRING;revision=2013-12-12",
- // Revision parameter present, but no revision defined
- "namespace:2?module=module4&RANDOMSTRING;revision=",
- // This one should be ignored(same as first), since revision is in wrong format
- "namespace:2?module=module2&RANDOMSTRING;revision=2013-12-12"
- );
-
- final NetconfSessionPreferences sessionCaps1 = NetconfSessionPreferences.fromStrings(caps1);
- assertCaps(sessionCaps1, 0, 4);
+ assertCaps(NetconfSessionPreferences.fromStrings(List.of(
+ "namespace:2?module=module2",
+ "namespace:2?module=module2&revision=2012-12-12",
+ "namespace:2?module=module1&RANDOMSTRING;revision=2013-12-12",
+ // Revision parameter present, but no revision defined
+ "namespace:2?module=module4&RANDOMSTRING;revision=",
+ // This one should be ignored(same as first), since revision is in wrong format
+ "namespace:2?module=module2&RANDOMSTRING;revision=2013-12-12")),
+ 0, 4);
}
private static void assertCaps(final NetconfSessionPreferences sessionCaps1, final int nonModuleCaps,