[tests] Avoid "Address already in use"
[mono.git] / mcs / class / System.ServiceModel.Web / Test / System.ServiceModel.Web / WebServiceHostTest.cs
index 2c7509da96cd4aa4b0f5cb860c3a1da5389aeba4..8f0cd0e14e28e5f90462acd83306d44d44497bb8 100644 (file)
@@ -37,6 +37,8 @@ using System.ServiceModel.Description;
 using System.ServiceModel.Dispatcher;\r
 using System.Net;\r
 \r
+using MonoTests.Helpers;\r
+\r
 namespace MonoTests.System.ServiceModel.Web\r
 {\r
        [TestFixture]\r
@@ -46,7 +48,7 @@ namespace MonoTests.System.ServiceModel.Web
                [Category("NotWorking")]\r
                public void ServiceDebugBehaviorTest () {\r
 \r
-                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://localhost:30158/"));\r
+                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString()));\r
                        ServiceEndpoint webHttp = host.AddServiceEndpoint ("MonoTests.System.ServiceModel.Web.WebServiceHostTest+MyService", new WebHttpBinding (), "WebHttpBinding");\r
 \r
                        Assert.AreEqual (true, host.Description.Behaviors.Find<ServiceDebugBehavior> ().HttpHelpPageEnabled, "HttpHelpPageEnabled #1");\r
@@ -64,7 +66,7 @@ namespace MonoTests.System.ServiceModel.Web
                [Category ("NotWorking")]\r
                public void WebHttpBehaviorTest1 () {\r
 \r
-                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://localhost:30158/"));\r
+                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString()));\r
                        ServiceEndpoint webHttp = host.AddServiceEndpoint ("MonoTests.System.ServiceModel.Web.WebServiceHostTest+MyService", new WebHttpBinding (), "WebHttpBinding");\r
                        ServiceEndpoint basicHttp = host.AddServiceEndpoint ("MonoTests.System.ServiceModel.Web.WebServiceHostTest+MyService", new BasicHttpBinding (), "BasicHttpBinding");\r
 \r
@@ -84,7 +86,7 @@ namespace MonoTests.System.ServiceModel.Web
                [Category("NotWorking")]\r
                public void WebHttpBehaviorTest2 () {\r
 \r
-                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://localhost:30158/"));\r
+                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString()));\r
                        ServiceEndpoint webHttp = host.AddServiceEndpoint ("MonoTests.System.ServiceModel.Web.WebServiceHostTest+MyService", new WebHttpBinding (), "WebHttpBinding");\r
                        MyWebHttpBehavior behavior = new MyWebHttpBehavior ();\r
                        behavior.ApplyDispatchBehaviorBegin += delegate {\r
@@ -104,7 +106,7 @@ namespace MonoTests.System.ServiceModel.Web
                [Test]\r
                public void ServiceBaseUriTest () {\r
 \r
-                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://localhost:30158/"));\r
+                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString()));\r
                        Assert.AreEqual (0, host.Description.Endpoints.Count, "no endpoints yet");\r
                        host.Open ();\r
                        Assert.AreEqual (1, host.Description.Endpoints.Count, "default endpoint after open");\r
@@ -138,12 +140,13 @@ namespace MonoTests.System.ServiceModel.Web
                [Test]\r
                public void Connect ()\r
                {\r
+                       var url = "http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString();\r
                        var host = new WebServiceHost (typeof (DemoService), new Uri\r
-                                                      ("http://localhost:30158/"));\r
+                                                      (url));\r
                        try {\r
                                host.Open ();\r
                                var wc = new WebClient();\r
-                               wc.DownloadString("http://localhost:30158/testData");\r
+                               wc.DownloadString(url + "/testData");\r
                                Console.WriteLine();\r
                        } finally {\r
                                host.Close();\r