Use base64 encoding for netconf device passwords
[netconf.git] / apps / netconf-topology / src / test / java / org / opendaylight / netconf / topology / spi / AbstractNetconfTopologyTest.java
index f50c17274a65cc30ed924fb29488920d8bd1b365..da83a95e800fff0aae26f422c62ded19bad253a5 100644 (file)
@@ -7,27 +7,29 @@
  */
 package org.opendaylight.netconf.topology.spi;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev231024.connection.parameters.Protocol.Name;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev231024.connection.parameters.ProtocolBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev231024.credentials.credentials.LoginPasswordBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev231121.connection.parameters.Protocol.Name;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev231121.connection.parameters.ProtocolBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev231121.credentials.credentials.LoginPwUnencryptedBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev231121.credentials.credentials.login.pw.unencrypted.LoginPasswordUnencryptedBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNodeBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
 import org.opendaylight.yangtools.yang.common.Uint16;
 import org.opendaylight.yangtools.yang.common.Uint32;
 
-public class AbstractNetconfTopologyTest {
+class AbstractNetconfTopologyTest {
     @Test
-    public void hideCredentialsTest() {
+    void hideCredentials() {
         final String userName = "admin";
         final String password = "pa$$word";
         final Node node = new NodeBuilder()
@@ -40,9 +42,11 @@ public class AbstractNetconfTopologyTest {
                     .setKeepaliveDelay(Uint32.valueOf(1000))
                     .setTcpOnly(false)
                     .setProtocol(new ProtocolBuilder().setName(Name.TLS).build())
-                    .setCredentials(new LoginPasswordBuilder()
-                        .setUsername(userName)
-                        .setPassword(password)
+                    .setCredentials(new LoginPwUnencryptedBuilder()
+                        .setLoginPasswordUnencrypted(new LoginPasswordUnencryptedBuilder()
+                            .setUsername(userName)
+                            .setPassword(password)
+                            .build())
                         .build())
                     .build())
                 .setNodeId(NodeId.getDefaultInstance("junos"))
@@ -52,4 +56,20 @@ public class AbstractNetconfTopologyTest {
         assertFalse(transformedNetconfNode.contains(userName));
         assertFalse(transformedNetconfNode.contains(password));
     }
+
+    @Test
+    void hideNullCredentials() {
+        final Node node = new NodeBuilder()
+            .setNodeId(new NodeId("id"))
+            .addAugmentation(new NetconfNodeBuilder()
+                .setHost(new Host(new IpAddress(new Ipv4Address("127.0.0.1"))))
+                .setPort(new PortNumber(Uint16.valueOf(9999)))
+                .setSchemaless(false)
+                .setReconnectOnChangedSchema(false)
+                .setMaxConnectionAttempts(Uint32.ZERO)
+                .setLockDatastore(true)
+                .build())
+            .build();
+        assertNotNull(AbstractNetconfTopology.hideCredentials(node));
+    }
 }