public void GetAPublicGoogleCalendar ()
		{
			IAgora agora = new Agora ();
			var pattayaILoveRoom1PublicUrl = "https://www.google.com/calendar/ical/sm0qpodqh5iedidbd4g0j9hsp0%40group.calendar.google.com/public/basic.ics";
			var taskRunCalendar = Task.Run (() => Calendar.Castoriadis.MainClass.Main (null));
			// wait until it's registered
			while (!agora.GetRegistrations().Any(reg => reg.Namespace == "calendar")) {
				Thread.Sleep (100);
			}
			var result = agora.ResolveSingle<dynamic> ("calendar", "calendar", new {
				Name="Pattaya I Love Room #1",
				Url = pattayaILoveRoom1PublicUrl
			}, 10000);
			Assert.NotNull (result);
		}
		public void WebServerStartsAndResponds404 ()
		{
			IAgora agora = new Agora ();
			// start the web server
			var taskWeb = Task.Run(() => WebServer.MainClass.Main (new[]{"8080"}));
			while (!agora.GetRegistrations().Any(reg => reg.Namespace == "httpd")) {
				System.Threading.Thread.Sleep (100);
				agora.Refresh ();
			}
			System.Threading.Thread.Sleep (2000);
			if (taskWeb.Status != TaskStatus.Running) {
				throw taskWeb.Exception;
			}
			using (var wc = new WebClient()) {
				try{
					var text = wc.DownloadString ("http://localhost:8080/");
					Assert.Fail();
				}
				catch(WebException wex) {
					Assert.AreEqual ("The remote server returned an error: (404) Not Found.", wex.Message);
				}
			}
		}