public void endpoint() { ElvinURI uri = new ElvinURI("elvin://elvin_host"); Assert.AreEqual("elvin_host", uri.Host); Assert.AreEqual(Common.DefaultPort, uri.Port); uri = new ElvinURI("elvin://elvin_host:12345"); Assert.AreEqual("elvin_host", uri.Host); Assert.AreEqual(12345, uri.Port); AssertInvalid("elvin://"); AssertInvalid("elvin://hello:there"); }
public void canonicalize() { ElvinURI uri = new ElvinURI("elvin://elvin_host"); Assert.AreEqual("elvin://elvin_host", uri.ToString()); Assert.AreEqual("elvin:4.0/tcp,none,xdr/elvin_host:2917", uri.ToCanonicalString()); uri = new ElvinURI("elvin://elvin_host;name1=value1"); Assert.AreEqual("elvin:4.0/tcp,none,xdr/elvin_host:2917;name1=value1", uri.ToCanonicalString()); uri = new ElvinURI("elvin:/secure/elvin_host:29170;b=2;a=1"); Assert.AreEqual("elvin:4.0/ssl,none,xdr/elvin_host:29170;a=1;b=2", uri.ToCanonicalString()); uri = new ElvinURI("elvin:5.1/secure/elvin_host:29170;b=2;a=1"); Assert.AreEqual("elvin:5.1/ssl,none,xdr/elvin_host:29170;a=1;b=2", uri.ToCanonicalString()); }
public void constructors() { ElvinURI defaultUri = new ElvinURI("elvin:5.6/a,b,c/default_host:1234"); ElvinURI uri = new ElvinURI("elvin://host", defaultUri); Assert.AreEqual(defaultUri.Scheme, "elvin"); Assert.AreEqual(defaultUri.VersionMajor, uri.VersionMajor); Assert.AreEqual(defaultUri.VersionMinor, uri.VersionMinor); Assert.AreEqual(defaultUri.Protocol, uri.Protocol); Assert.AreEqual("host", uri.Host); Assert.AreEqual(defaultUri.Port, uri.Port); uri = new ElvinURI("elvin:7.0/x,y,z/host:5678", defaultUri); Assert.AreEqual(7, uri.VersionMajor); Assert.AreEqual(0, uri.VersionMinor); Assert.IsTrue(uri.Protocol.SequenceEqual(new List<String>() { "x", "y", "z" })); Assert.AreEqual("host", uri.Host); Assert.AreEqual(5678, uri.Port); }
public void ipv6() { ElvinURI uri = new ElvinURI("elvin://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:1234"); Assert.AreEqual("[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]", uri.Host); Assert.AreEqual(1234, uri.Port); uri = new ElvinURI("elvin:/tcp,xdr,ssl/[::1/128]:4567"); Assert.IsTrue(uri.Protocol.SequenceEqual(new List<String>() { "tcp", "xdr", "ssl" })); Assert.AreEqual("[::1/128]", uri.Host); Assert.AreEqual(4567, uri.Port); AssertInvalid("elvin://[::1/128"); AssertInvalid("elvin://[[::1/128"); AssertInvalid("elvin://[::1/128]]"); AssertInvalid("elvin://[]"); AssertInvalid("elvin://["); AssertInvalid("elvin://[::1/128];hello"); AssertInvalid("elvin://[::1/128]:xyz"); AssertInvalid("elvin://[::1/128];"); AssertInvalid("elvin:///[::1/128]"); }
public void version() { ElvinURI uri = new ElvinURI("elvin://elvin_host"); Assert.AreEqual(Common.ClientVersionMajor, uri.VersionMajor); Assert.AreEqual(Common.ClientVersionMinor, uri.VersionMinor); Assert.AreEqual("elvin_host", uri.Host); uri = new ElvinURI("elvin:5.1//elvin_host"); Assert.AreEqual(5, uri.VersionMajor); Assert.AreEqual(1, uri.VersionMinor); Assert.AreEqual("elvin_host", uri.Host); uri = new ElvinURI("elvin:5//elvin_host"); Assert.AreEqual(5, uri.VersionMajor); Assert.AreEqual(Common.ClientVersionMinor, uri.VersionMinor); Assert.AreEqual("elvin_host", uri.Host); /* AssertInvalid("http:hello//elvin_host"); AssertInvalid("elvin:hello//elvin_host"); AssertInvalid("elvin:4.0.0//elvin_host"); AssertInvalid("elvin:4.//elvin_host"); AssertInvalid("elvin: //elvin_host"); AssertInvalid("elvin:111111111111111.2222222222222222222//elvin_host"); */ }
public void protocol() { ElvinURI uri = new ElvinURI("elvin://elvin_host"); Assert.AreEqual(Protocols.DefaultProtocol, uri.Protocol); uri = new ElvinURI("elvin:/tcp,xdr,ssl/elvin_host"); Assert.IsTrue(uri.Protocol.SequenceEqual(new List<String>() { "tcp", "xdr", "ssl" })); Assert.AreEqual("elvin_host", uri.Host); uri = new ElvinURI("elvin:/secure/elvin_host"); Assert.AreEqual(Protocols.SecureProtocol, uri.Protocol); AssertInvalid("elvin:/abc,xyz/elvin_host"); AssertInvalid("elvin:/abc,xyz,dfg,qwe/elvin_host"); AssertInvalid("elvin:/abc,/elvin_host"); AssertInvalid("elvin:/,abc/elvin_host"); AssertInvalid("elvin:/abc,,xyz/elvin_host"); AssertInvalid("elvin:///elvin_host"); }
public void options() { ElvinURI uri = new ElvinURI("elvin://elvin_host;name1=value1"); var d = new Dictionary<String, String>(); d.Add("name1", "value1"); CollectionAssert.AreEquivalent(d, uri.Options); uri = new ElvinURI("elvin://elvin_host;name1=value1;name2=value2"); d.Add("name2", "value2"); CollectionAssert.AreEquivalent(d, uri.Options); AssertInvalid("elvin://elvin_host;name1;name2=value2"); AssertInvalid("elvin://elvin_host;=name1;name2=value2"); AssertInvalid("elvin://elvin_host;"); AssertInvalid("elvin://;x=y"); AssertInvalid("elvin://;x="); }