Esempio n. 1
0
        public TlsConnection(Socket socket, URL uri, Resources resources)
            : base(uri, resources)
        {
            SetCertificateName(uri.GetTerm(CERT_NAME, "default"));
            SetAuthReqd(uri.GetBooleanTerm(AUTH_REQD, true));

            if (socket == null)
            {
                String host = uri.Host;
                if (host == null)
                {
                    throw new ArgumentNullException("host == null");
                }

                int?port = uri.Port;
                if (port == null)
                {
                    throw new ArgumentNullException("port == null");
                }

                if (port <= 0 || port >= 65536)
                {
                    throw new ArgumentOutOfRangeException("port <= 0 || port >= 65536");
                }

                this.socket = null;
                this.host   = host;
                this.port   = (int)port;
            }
            else
            {
                this.socket = socket;
                this.host   = null;
                this.port   = 0;
            }
        }
Esempio n. 2
0
        public void TestQueryTerms()
        {
            String testUrl = "tcp://*****:*****@127.0.0.1:4001/cuae";
            URL    url     = new URL(testUrl);

            Assert.IsFalse(url.HasTerms());

            testUrl = "tcp://*****:*****@127.0.0.1:4001/cuae?term1=500";
            url     = new URL(testUrl);

            Assert.IsTrue(url.HasTerms());
            Assert.IsTrue(url.HasTerm("term1"));
            Assert.IsTrue(url.HasTerm("term1", "500"));
            Assert.IsTrue(url.HasTerm("term1", 500));
            Assert.IsFalse(url.HasTerm("term1", "1000"));
            Assert.IsFalse(url.HasTerm("term1", 1000));
            Assert.IsFalse(url.HasMultipleValues("term1"));
            Assert.AreEqual("500", url.GetTerm("term1"));
            Assert.AreEqual(500, url.GetIntegerTerm("term1"));
            Assert.AreEqual("500", url.GetTerm("term1", "x"));
            Assert.AreEqual(500, url.GetIntegerTerm("term1", 2));

            Assert.IsFalse(url.HasTerm("term2"));
            Assert.IsFalse(url.HasTerm("term2", "500"));
            Assert.IsFalse(url.HasTerm("term2", 500));
            Assert.IsNull(url.GetTerm("term2"));
            Assert.IsNull(url.GetIntegerTerm("term2"));
            Assert.AreEqual("x", url.GetTerm("term2", "x"));
            Assert.AreEqual(2, url.GetIntegerTerm("term2", 2));

            // multiple values of the same term
            url.AddTerm("term1", 500.5);
            Assert.IsTrue(url.HasMultipleValues("term1"));
            Assert.IsTrue(url.HasTerm("term1"));
            Assert.IsTrue(url.HasTerm("term1", "500"));
            Assert.IsTrue(url.HasTerm("term1", 500));
            Assert.IsTrue(url.HasTerm("term1", "500.5"));
            Assert.IsTrue(url.HasTerm("term1", 500.5));
            try
            {
                url.GetTerm("term1");
                Assert.Fail("Exception wasn't thrown...");
            }
            catch (Exception)
            {
                // ignore exception
            }
            string[] t = url.GetTerms("term1");
            Assert.AreEqual(2, t.Length);
            Assert.AreEqual("500", t[0]);
            Assert.AreEqual("500.5", t[1]);

            // add another term => multiple terms
            url.AddTerm("term2", "value");
            Assert.IsFalse(url.HasMultipleValues("term2"));
            Assert.IsTrue(url.HasTerm("term2"));
            Assert.IsTrue(url.HasTerm("term2", "value"));
            Assert.AreEqual("value", url.GetTerm("term2"));

            t = url.GetTermNames();
            Assert.AreEqual(2, t.Length);
            Assert.AreEqual("term1", t[0]);
            Assert.AreEqual("term2", t[1]);

            // Console.WriteLine( url.ToString() );
            // remove term
            Assert.IsFalse(url.RemoveTerm("term3"));
            Assert.IsTrue(url.RemoveTerm("term2"));
            Assert.IsFalse(url.HasTerm("term2"));
            t = url.GetTermNames();
            Assert.AreEqual(1, t.Length);
            Assert.AreEqual("term1", t[0]);

            // remove one value from a list of values for a term
            Assert.IsTrue(url.RemoveTerm("term1", "500.5"));
            Assert.IsFalse(url.HasMultipleValues("term1"));
            Assert.AreEqual("500", url.GetTerm("term1"));

            // clear terms
            url.ClearTerms();
            Assert.IsFalse(url.HasTerms());
            Assert.AreEqual(0, url.GetTermNames().Length);
            Assert.AreEqual("tcp://*****:*****@127.0.0.1:4001/cuae", url.ToString());
        }