コード例 #1
0
ファイル: NetUriTests.cs プロジェクト: hvppy/X
        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());
        }