예제 #1
0
        public void SipHeaderCollection_Prepend()
        {
            SipHeaderCollection headers;

            headers = new SipHeaderCollection();
            headers.Prepend("Test", "1");
            Assert.AreEqual("Test: 1\r\n\r\n", headers.ToString());

            headers.Prepend("Test", "2");
            Assert.AreEqual("Test: 2, 1\r\n\r\n", headers.ToString());
        }
예제 #2
0
        public void SipHeaderCollection_Basic()
        {
            SipHeaderCollection headers;
            int    p1, p2;
            string s;

            headers = new SipHeaderCollection();
            headers.Add(SipHeader.Via, "SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK-0000");
            headers.Add(SipHeader.Via, "SIP/2.0/UDP www.lilltek.com;branch=z9hG4bK-1234");
            headers.Add(SipHeader.MaxForwards, SipHelper.MaxForwards);
            headers.Add(SipHeader.To, "Bob <sip:[email protected]>");
            headers.Add(SipHeader.ContentLength, "142");

            Assert.AreEqual("SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK-0000, SIP/2.0/UDP www.lilltek.com;branch=z9hG4bK-1234",
                            headers[SipHeader.Via].FullText);

            s = headers.ToString();
            Assert.IsTrue(s.EndsWith("\r\n\r\n"));

            // Verify the priority rendering order.

            p1 = s.IndexOf("Via:");
            p2 = s.IndexOf(SipHeader.MaxForwards);
            Assert.IsTrue(p1 < p2);

            p1 = s.IndexOf("Max-Forwards:");
            p2 = s.IndexOf(SipHeader.To);
            Assert.IsTrue(p1 < p2);

            Assert.AreEqual(SipHelper.MaxForwards, headers[SipHeader.MaxForwards].Text);
            Assert.IsNull(headers["XXX"]);
        }