public void TestIPv6() { var addr = IPAddress.IPv6Loopback; Assert.Equal("::1", addr + ""); var ep = new IPEndPoint(addr, 80); Assert.Equal("[::1]:80", ep + ""); var uri = new NetUri(NetType.Tcp, ep); Assert.Equal("Tcp://[::1]:80", uri.ToString()); Assert.Equal(ep, uri.EndPoint); Assert.True(uri.IsTcp); uri.Port = 0; Assert.Equal("Tcp://::1", uri + ""); var uri2 = new NetUri("http://[::1]:80"); Assert.Equal(NetType.Http, uri2.Type); Assert.False(uri2.IsUdp); Assert.Null(uri2.Host); Assert.Equal(IPAddress.IPv6Loopback, uri2.Address); Assert.Equal(80, uri2.Port); Assert.Equal("Http://[::1]:80", uri2.ToString()); var uri3 = new NetUri("wss://::1"); Assert.Equal(NetType.WebSocket, uri3.Type); Assert.Null(uri3.Host); Assert.Equal(IPAddress.IPv6Loopback, uri3.Address); Assert.Equal(443, uri3.Port); Assert.Equal("wss://[::1]:443", uri3.ToString()); var uri4 = new NetUri(); uri4.Parse("ws://[240e:e0:9930:2100:9914:b410:c7d8:c0a6]"); Assert.Equal(NetType.WebSocket, uri4.Type); Assert.Null(uri4.Host); Assert.Equal("240e:e0:9930:2100:9914:b410:c7d8:c0a6", uri4.Address + ""); Assert.Equal(80, uri4.Port); Assert.Equal("ws://[240e:e0:9930:2100:9914:b410:c7d8:c0a6]:80", uri4.ToString()); }