예제 #1
0
        public void TestParse1()
        {
            string testUrl = "tcp://*****:*****@127.0.0.1:4001";
            URL    url1    = new URL(testUrl);

            Assert.AreEqual("tcp", url1.Scheme);
            Assert.AreEqual("user", url1.User);
            Assert.AreEqual("password", url1.Password);
            Assert.AreEqual("127.0.0.1", url1.Host);
            Assert.AreEqual(4001, url1.Port);

            //scheme tests

            Assert.IsFalse(url1.HasTerms());
            Assert.IsFalse(url1.HasParams());

            Assert.AreEqual("tcp://*****:*****@127.0.0.1:4001/", url1.ToString());
        }
예제 #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());
        }