@@ -798,4 +798,74 @@ private <T> void assertBetterArrayEquals(T[] expect, T[]got) {
798798    String  gotStr  = StringUtils .join (got , ", " );
799799    assertEquals (expectStr , gotStr );
800800  }
801+ 
802+   @ Test 
803+   public  void  testIPV6Address () {
804+     final  String  IPV6_SAMPLE_ADDRESS1  = "FFFF:FFFF:FFFF:FFFF::1:12345" ;
805+     final  String  IPV6_SAMPLE_ADDRESS2  = "FFFF:FFFF:FFFF::1:FFFF:12345" ;
806+     final  String  IPV6_SAMPLE_ADDRESS3  = "FFFF:FFFF::1:FFFF:FFFF:12345" ;
807+     final  String  IPV4_SAMPLE_ADDRESS  = "192.168.0.1:12345" ;
808+     assertTrue (NetUtils .isIPV6Address (IPV6_SAMPLE_ADDRESS1 ));
809+     assertTrue (NetUtils .isIPV6Address (IPV6_SAMPLE_ADDRESS2 ));
810+     assertTrue (NetUtils .isIPV6Address (IPV6_SAMPLE_ADDRESS3 ));
811+     assertFalse (NetUtils .isIPV6Address (IPV4_SAMPLE_ADDRESS ));
812+   }
813+ 
814+   @ Test 
815+   public  void  testNormalizeIPV6Address () {
816+     final  String  IPV6_SAMPLE_ADDRESS1  = "FFFF:FFFF:FFFF:FFFF::1" ;
817+     final  String  IPV6_SAMPLE_ADDRESS2  = "FFFF:FFFF:FFFF::1:FFFF" ;
818+     final  String  IPV6_SAMPLE_ADDRESS3  = "FFFF:FFFF::1:FFFF:FFFF" ;
819+     final  String  PORT_SUFFIX  = ":12345" ;
820+     String  IPV6_SAMPLE_ADDRESS1_WITH_PORT  = IPV6_SAMPLE_ADDRESS1  + PORT_SUFFIX ;
821+     String  IPV6_SAMPLE_ADDRESS2_WITH_PORT  = IPV6_SAMPLE_ADDRESS2  + PORT_SUFFIX ;
822+     String  IPV6_SAMPLE_ADDRESS3_WITH_PORT  = IPV6_SAMPLE_ADDRESS3  + PORT_SUFFIX ;
823+     assertEquals ("["  + IPV6_SAMPLE_ADDRESS1  + "]"  + PORT_SUFFIX  , NetUtils .normalizeV6Address (IPV6_SAMPLE_ADDRESS1_WITH_PORT ));
824+     assertEquals ("["  + IPV6_SAMPLE_ADDRESS2  + "]"  + PORT_SUFFIX  , NetUtils .normalizeV6Address (IPV6_SAMPLE_ADDRESS2_WITH_PORT ));
825+     assertEquals ("["  + IPV6_SAMPLE_ADDRESS3  + "]"  + PORT_SUFFIX  , NetUtils .normalizeV6Address (IPV6_SAMPLE_ADDRESS3_WITH_PORT ));
826+   }
827+ 
828+   @ Test 
829+   public  void  testCreateSocketAddressWithIPV6 () throws  Throwable  {
830+     final  String  IPV6_SAMPLE_ADDRESS1  = "FFFF:FFFF:FFFF:FFFF::1" ;
831+     final  String  IPV6_SAMPLE_ADDRESS2  = "FFFF:FFFF:FFFF::1:FFFF" ;
832+     final  String  IPV6_SAMPLE_ADDRESS3  = "FFFF:FFFF::1:FFFF:FFFF" ;
833+     final  String  IPV4_SAMPLE_ADDRESS  = "192.168.0.1" ;
834+     final  String  PORT_SUFFIX  = ":12345" ;
835+     final  int  DEFAULT_PORT  = 10000 ;
836+ 
837+     String  IPV6_SAMPLE_ADDRESS1_WITH_PORT  = IPV6_SAMPLE_ADDRESS1  + PORT_SUFFIX ;
838+     String  IPV6_SAMPLE_ADDRESS2_WITH_PORT  = IPV6_SAMPLE_ADDRESS2  + PORT_SUFFIX ;
839+     String  IPV6_SAMPLE_ADDRESS3_WITH_PORT  = IPV6_SAMPLE_ADDRESS3  + PORT_SUFFIX ;
840+     String  IPV4_SAMPLE_ADDRESS_WITH_PORT  = IPV4_SAMPLE_ADDRESS  + PORT_SUFFIX ;
841+ 
842+     InetSocketAddress  addr1  = NetUtils .createSocketAddr (IPV6_SAMPLE_ADDRESS1_WITH_PORT , DEFAULT_PORT , "myconfig1" );
843+     InetSocketAddress  addr2  = NetUtils .createSocketAddr (IPV6_SAMPLE_ADDRESS2_WITH_PORT , DEFAULT_PORT , "myconfig2" );
844+     InetSocketAddress  addr3  = NetUtils .createSocketAddr (IPV6_SAMPLE_ADDRESS3_WITH_PORT , DEFAULT_PORT , "myconfig3" );
845+     InetSocketAddress  addr4  = NetUtils .createSocketAddr (IPV4_SAMPLE_ADDRESS_WITH_PORT , DEFAULT_PORT , "myconfig4" );
846+     assertEquals ("["  + IPV6_SAMPLE_ADDRESS1  + "]" , addr1 .getHostName ());
847+     assertEquals ("["  + IPV6_SAMPLE_ADDRESS2  + "]" , addr2 .getHostName ());
848+     assertEquals ("["  + IPV6_SAMPLE_ADDRESS3  + "]" , addr3 .getHostName ());
849+     assertEquals ("["  + IPV4_SAMPLE_ADDRESS  + "]" , addr4 .getHostName ());
850+     assertEquals (12345 , addr1 .getPort ());
851+     assertEquals (12345 , addr2 .getPort ());
852+     assertEquals (12345 , addr3 .getPort ());
853+     assertEquals (12345 , addr4 .getPort ());
854+ 
855+     final  String  IPV6_SAMPLE_ADDRESS1_WITHSCOPE  = IPV6_SAMPLE_ADDRESS1  + "%2" ;
856+     final  String  IPV6_SAMPLE_ADDRESS2_WITHSCOPE  = IPV6_SAMPLE_ADDRESS2  + "%2" ;
857+     final  String  IPV6_SAMPLE_ADDRESS3_WITHSCOPE  = IPV6_SAMPLE_ADDRESS3  + "%2" ;
858+     IPV6_SAMPLE_ADDRESS1_WITH_PORT  = IPV6_SAMPLE_ADDRESS1_WITHSCOPE  + PORT_SUFFIX ;
859+     IPV6_SAMPLE_ADDRESS2_WITH_PORT  = IPV6_SAMPLE_ADDRESS2_WITHSCOPE  + PORT_SUFFIX ;
860+     IPV6_SAMPLE_ADDRESS3_WITH_PORT  = IPV6_SAMPLE_ADDRESS3_WITHSCOPE  + PORT_SUFFIX ;
861+     addr1  = NetUtils .createSocketAddr (IPV6_SAMPLE_ADDRESS1_WITH_PORT , DEFAULT_PORT , "myconfig1" );
862+     addr2  = NetUtils .createSocketAddr (IPV6_SAMPLE_ADDRESS2_WITH_PORT , DEFAULT_PORT , "myconfig2" );
863+     addr3  = NetUtils .createSocketAddr (IPV6_SAMPLE_ADDRESS3_WITH_PORT , DEFAULT_PORT , "myconfig3" );
864+     assertEquals ("["  + IPV6_SAMPLE_ADDRESS1  + "]" , addr1 .getHostName ());
865+     assertEquals ("["  + IPV6_SAMPLE_ADDRESS2  + "]" , addr2 .getHostName ());
866+     assertEquals ("["  + IPV6_SAMPLE_ADDRESS3  + "]" , addr3 .getHostName ());
867+     assertEquals (12345 , addr1 .getPort ());
868+     assertEquals (12345 , addr2 .getPort ());
869+     assertEquals (12345 , addr3 .getPort ());
870+   }
801871}
0 commit comments