2004-01-02 Nick Drochak <ndrochak@gol.com>
[mono.git] / mcs / class / System / Test / System.Net / ServicePointTest.cs
index 92290f1854d2e164376dc55f72d77b8b3413cc09..01ee2709f1f6c2e8f5d7ec3ed9ec45379452ddd3 100644 (file)
@@ -1,8 +1,11 @@
 //\r
 // ServicePointTest.cs - NUnit Test Cases for System.Net.ServicePoint\r
 //\r
-// Author:\r
+// Authors:\r
 //   Lawrence Pit (loz@cable.a2000.nl)\r
+//   Martin Willemoes Hansen (mwh@sysrq.dk)\r
+//\r
+// (C) 2003 Martin Willemoes Hansen\r
 //\r
 \r
 using NUnit.Framework;\r
@@ -15,144 +18,134 @@ using System.Threading;
 namespace MonoTests.System.Net\r
 {\r
 \r
-public class ServicePointTest : TestCase\r
+[TestFixture]\r
+public class ServicePointTest\r
 {\r
-        public ServicePointTest () :\r
-                base ("[MonoTests.System.Net.ServicePointTest]") {}\r
-\r
-        public ServicePointTest (string name) : base (name) {}\r
-\r
-        protected override void SetUp () {}\r
+       static private int max;\r
+       [SetUp]\r
+       public void SaveMax () {\r
+               max = ServicePointManager.MaxServicePoints;\r
+               ServicePointManager.MaxServicePoints = 0;\r
+       }\r
 \r
-        protected override void TearDown () {}\r
+       [TearDown]\r
+       public void RestoreMax () {\r
+               ServicePointManager.MaxServicePoints = max;\r
+       }\r
 \r
-        public static ITest Suite\r
-        {\r
-                get {\r
-                        return new TestSuite (typeof (ServicePointTest));\r
-                }\r
-        }\r
-        \r
-        public void TestAll ()\r
+        [Test]\r
+        public void All ()\r
         {\r
-               try {\r
-                       ServicePoint p = ServicePointManager.FindServicePoint (new Uri ("mailto:xx@yyy.com"));\r
-                       WriteServicePoint ("A servicepoint that isn't really", p);                      \r
-                       \r
-                       ServicePointManager.MaxServicePoints = 2;\r
-                       ServicePoint google = ServicePointManager.FindServicePoint (new Uri ("http://www.google.com"));\r
-                       try {                   \r
-                               ServicePoint slashdot = ServicePointManager.FindServicePoint (new Uri ("http://www.slashdot.org"));\r
-                               Fail ("#1");\r
-                       } catch (InvalidOperationException) { }\r
-                       ServicePointManager.MaxServicePoints = 0;\r
-                       \r
-                       WriteServicePoint ("google before getting a webrequest", google);\r
-                       \r
-                       HttpWebRequest req = (HttpWebRequest) WebRequest.Create ("http://www.google.com");\r
-                       HttpWebResponse res = (HttpWebResponse) req.GetResponse ();                     \r
-                       \r
-                       WriteServicePoint ("google after getting a response", google);\r
-                       ServicePoint google2 = ServicePointManager.FindServicePoint (new Uri ("http://www.google.com/dilbert.html"));\r
-                       AssertEquals ("#equals", google, google2);\r
-                       res.Close ();\r
-                       \r
-                       // in both instances property CurrentConnections is 0 according to ms.net.\r
-                       // let's see what it says when we do async operations...\r
-                       \r
-                       HttpWebRequest req2 = (HttpWebRequest) WebRequest.Create ("http://www.google.com");\r
-                       req2.Method = "PUT";\r
-                       IAsyncResult async = req2.BeginGetRequestStream (null, null);\r
-                       WriteServicePoint ("after async BeginGetRequestStream", google);\r
-                       // CurrentConnections: 1\r
-                       Stream stream2 = req2.EndGetRequestStream (async);\r
-                       WriteServicePoint ("after async EndGetRequestStream", google);\r
-                       // CurrentConnections: 1\r
-                       stream2.Close ();\r
-                       \r
-                       req2 = (HttpWebRequest) WebRequest.Create ("http://www.google.com");\r
-                       async = req2.BeginGetResponse (null, null);\r
-                       WriteServicePoint ("after async BeginGetResponse", google);\r
-                       // CurrentConnections: 2\r
-                       WebResponse res2 = req2.EndGetResponse (async);\r
-                       WriteServicePoint ("after async EndGetResponse", google);\r
-                       // CurrentConnections: 0                        \r
-                       // curious that after you get the webresponse object CurrentConnections is set to 0.\r
-                       // you'd think that you'd still be connected until you close the webresponse..\r
-                       Console.WriteLine ("ContentLength: " + res2.ContentLength);\r
-                       res2.Close ();\r
-                       \r
-                       \r
-                       // unless of course some buffering is taking place.. let's check\r
-                       Uri uri2 = new Uri ("http://www.apache.org/dist/httpd/httpd-2.0.36.tar.gz");\r
-                       ServicePoint sp2 = ServicePointManager.FindServicePoint (uri2);\r
-                       req2 = (HttpWebRequest) WebRequest.Create (uri2);\r
-                       async = req2.BeginGetResponse (null, null);\r
-                       WriteServicePoint ("Large file: after async BeginGetResponse", sp2);\r
-                       // CurrentConnections: 1\r
-                       res2 = req2.EndGetResponse (async);\r
-                       WriteServicePoint ("Large file: after async EndGetResponse", sp2);\r
-                       // CurrentConnections: 1\r
-                       // and so it shows\r
-                       Console.WriteLine ("ContentLength: " + res2.ContentLength);\r
-                       res2.Close ();\r
-                       \r
-                       \r
-                       // what's the limit of the cache?\r
-                       req2 = (HttpWebRequest) WebRequest.Create ("http://www.apache.org/");\r
-                       res2 = req2.GetResponse ();\r
-                       sp2 = ServicePointManager.FindServicePoint (new Uri("http://www.apache.org/"));\r
-                       WriteServicePoint ("apache", sp2);\r
-                       Console.WriteLine ("ContentLength: " + res2.ContentLength);\r
-                       // CurrentConnections: 1\r
-                       res2.Close ();\r
-                       // curious other effect: address is actually the full Uri of the previous request\r
-                       // anyways, buffer is probably 4096 bytes\r
-\r
-                       \r
-               } catch (WebException e) {\r
-                       Console.WriteLine("\nThe following Exception was raised : {0}", e.Message);\r
-               }\r
+               ServicePoint p = ServicePointManager.FindServicePoint (new Uri ("mailto:xx@yyy.com"));\r
+               //WriteServicePoint ("A servicepoint that isn't really", p);                    \r
+               \r
+               ServicePointManager.MaxServicePoints = 2;\r
+               ServicePoint google = ServicePointManager.FindServicePoint (new Uri ("http://www.google.com"));\r
+               try {                   \r
+                       ServicePoint slashdot = ServicePointManager.FindServicePoint (new Uri ("http://www.slashdot.org"));\r
+                       Assertion.Fail ("#1");\r
+               } catch (InvalidOperationException) { }\r
+               ServicePointManager.MaxServicePoints = 0;\r
+               \r
+               //WriteServicePoint ("google before getting a webrequest", google);\r
+               \r
+               HttpWebRequest req = (HttpWebRequest) WebRequest.Create ("http://www.google.com");\r
+               HttpWebResponse res = (HttpWebResponse) req.GetResponse ();                     \r
+               \r
+               //WriteServicePoint ("google after getting a response", google);\r
+               ServicePoint google2 = ServicePointManager.FindServicePoint (new Uri ("http://www.google.com/dilbert.html"));\r
+               Assertion.AssertEquals ("#equals", google, google2);\r
+               res.Close ();\r
+               \r
+               // in both instances property CurrentConnections is 0 according to ms.net.\r
+               // let's see what it says when we do async operations...\r
+               \r
+               HttpWebRequest req2 = (HttpWebRequest) WebRequest.Create ("http://www.google.com");\r
+               req2.Method = "PUT";\r
+               IAsyncResult async = req2.BeginGetRequestStream (null, null);\r
+               //WriteServicePoint ("after async BeginGetRequestStream", google);\r
+               // CurrentConnections: 1\r
+               Stream stream2 = req2.EndGetRequestStream (async);\r
+               //WriteServicePoint ("after async EndGetRequestStream", google);\r
+               // CurrentConnections: 1\r
+               stream2.Close ();\r
+               \r
+               req2 = (HttpWebRequest) WebRequest.Create ("http://www.google.com");\r
+               async = req2.BeginGetResponse (null, null);\r
+               //WriteServicePoint ("after async BeginGetResponse", google);\r
+               // CurrentConnections: 2\r
+               WebResponse res2 = req2.EndGetResponse (async);\r
+               //WriteServicePoint ("after async EndGetResponse", google);\r
+               // CurrentConnections: 0                        \r
+               // curious that after you get the webresponse object CurrentConnections is set to 0.\r
+               // you'd think that you'd still be connected until you close the webresponse..\r
+               //Console.WriteLine ("ContentLength: " + res2.ContentLength);\r
+               res2.Close ();\r
+               \r
+               \r
+               // unless of course some buffering is taking place.. let's check\r
+               Uri uri2 = new Uri ("http://freedesktop.org/Software/pkgconfig/releases/pkgconfig-0.15.0.tar.gz");\r
+               ServicePoint sp2 = ServicePointManager.FindServicePoint (uri2);\r
+               req2 = (HttpWebRequest) WebRequest.Create (uri2);\r
+               async = req2.BeginGetResponse (null, null);\r
+               //WriteServicePoint ("Large file: after async BeginGetResponse", sp2);\r
+               // CurrentConnections: 1\r
+               res2 = req2.EndGetResponse (async);\r
+               //WriteServicePoint ("Large file: after async EndGetResponse", sp2);\r
+               // CurrentConnections: 1\r
+               // and so it shows\r
+               //Console.WriteLine ("ContentLength: " + res2.ContentLength);\r
+               res2.Close ();\r
+               \r
+               \r
+               // what's the limit of the cache?\r
+               req2 = (HttpWebRequest) WebRequest.Create ("http://www.apache.org/");\r
+               res2 = req2.GetResponse ();\r
+               sp2 = ServicePointManager.FindServicePoint (new Uri("http://www.apache.org/"));\r
+               //WriteServicePoint ("apache", sp2);\r
+               //Console.WriteLine ("ContentLength: " + res2.ContentLength);\r
+               // CurrentConnections: 1\r
+               res2.Close ();\r
+               // curious other effect: address is actually the full Uri of the previous request\r
+               // anyways, buffer is probably 4096 bytes\r
        }\r
 \r
        // try getting the stream to 5 web response objects     \r
        // while ConnectionLimit equals 2\r
-       /*\r
-       public void TestConnectionLimit ()\r
+\r
+       [Test]\r
+       public void ConnectionLimit ()\r
        {               \r
-               try {\r
-                       // the default is already 2, just in case it isn't..\r
-                       ServicePointManager.DefaultConnectionLimit = 2;\r
-                       \r
-                       Uri uri = new Uri ("http://www.apache.org/dist/httpd/httpd-2.0.36.tar.gz");\r
-                       ServicePoint sp = ServicePointManager.FindServicePoint (uri);                   \r
-                       WebResponse [] res = new WebResponse [5];\r
-                       for (int i = 0; i < 5; i++) {\r
-                               Console.WriteLine ("GOT1 : " + i);\r
-                               HttpWebRequest req = (HttpWebRequest) WebRequest.Create (uri);\r
-                               Console.WriteLine ("GOT2 : " + i);\r
-                               res [i] = req.GetResponse ();\r
-                               WriteServicePoint ("after getting " + (i + 1) + " web response objects", sp);\r
-                       }\r
-                       \r
-                       for (int i = 0; i < 5; i++) {\r
-                               Stream stream = res [i].GetResponseStream();\r
-                               Console.WriteLine ("Reading stream: " + i + " : " + stream);\r
-                               int len = 0;\r
-                               while (stream.ReadByte () != -1)\r
-                                       len++;\r
-                               Console.WriteLine ("Finished reading: " + len + " bytes");\r
-                       }\r
-                       \r
-                       for (int i = 0; i < 5; i++) {\r
-                               res [i].Close ();\r
-                       }\r
-               } catch (WebException e) {\r
-                       Console.WriteLine("\nThe following Exception was raised : {0}", e.Message);\r
-               }               \r
+               // the default is already 2, just in case it isn't..\r
+               ServicePointManager.DefaultConnectionLimit = 5;\r
+               \r
+               Uri uri = new Uri ("http://www.go-mono.com/");\r
+               ServicePoint sp = ServicePointManager.FindServicePoint (uri);                   \r
+               WebResponse [] res = new WebResponse [5];\r
+               for (int i = 0; i < 5; i++) {\r
+                       //Console.WriteLine ("GOT1 : " + i);\r
+                       HttpWebRequest req = (HttpWebRequest) WebRequest.Create (uri);\r
+                       //Console.WriteLine ("GOT2 : " + i);\r
+                       res [i] = req.GetResponse ();\r
+                       //WriteServicePoint ("after getting " + (i + 1) + " web response objects", sp);\r
+               }\r
+               \r
+               for (int i = 0; i < 5; i++) {\r
+                       Stream stream = res [i].GetResponseStream();\r
+                       //Console.WriteLine ("Reading stream: " + i + " : " + stream);\r
+                       int len = 0;\r
+                       while (stream.ReadByte () != -1)\r
+                               len++;\r
+                       //Console.WriteLine ("Finished reading: " + len + " bytes");\r
+               }\r
+               \r
+               for (int i = 0; i < 5; i++) {\r
+                       res [i].Close ();\r
+               }\r
        }\r
-       */\r
-       \r
+\r
+// Debug code not used now, but could be useful later\r
+/*\r
        private void WriteServicePoint (string label, ServicePoint sp)\r
        {\r
                Console.WriteLine ("\n" + label);\r
@@ -165,7 +158,7 @@ public class ServicePointTest : TestCase
                Console.WriteLine ("ProtocolVersion: " + sp.ProtocolVersion);\r
                Console.WriteLine ("SupportsPipelining: " + sp.SupportsPipelining);             \r
        }\r
+*/\r
 }\r
-\r
 }\r
 \r