public async Task ShouldSucceedIfSomeEndpointsAreOnline() { using (var http = InitializeInvalidHostHelper( (xh, xr) => { if (xr.RequestUri.ToString().StartsWith(Uri2.ToString())) { return(xh.ResponseQueue.Any() ? xh.ResponseQueue.Dequeue() : new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(string.Empty) }); } throw new SocketException(); })) { http.RespondWith("etc 1.2.3"); http.RespondWith("etc 1.2.3"); http.RespondWith("etc 1.2.3"); http.RespondWith("etc 1.2.3"); http.RespondWith("etc 1.2.3"); var epool = await CreateSut(VerificationStrategy) .VerifyAndBuild(Uris); epool.Should().NotBeNull(); epool.OnlineEndpoints.Should().HaveCount(1); var endpoint = epool.OnlineEndpoints.First(); endpoint.Uri .Should() .BeSameAs(Uri2); } }
public async Task Download_ReturnsFalse_ForUnsupportedProtocol() { var href = "http://example.org/test"; var fakeResponseHandler = new FakeResponseHandler(); fakeResponseHandler.AddHtmlResponse(new Uri(href), HttpStatusCode.OK, "Foo content", 123456L); var url = new Uri2(href); var resource = new Resource(url, false); var downloader = new Downloader(fakeResponseHandler); //var toAwait = downloader.Download(resource); //await toAwait; await downloader.Download(resource); Assert.AreEqual("Foo content", resource.Content); Assert.AreEqual("text/html", resource.ContentType); Assert.AreEqual("utf-8", resource.ContentEncoding); Assert.AreEqual(123456L, resource.ContentLength); //var result = downloader.IsProtocolSupported; //Assert.IsTrue(result); }
public void AddItem_Adds1ItemWhen2OnlyDifferByCase_WhenCaseInsensitive() { var log = new ResourceLog(); var urlA = new Uri2("http://www.foo.com/page.html"); var urlB = new Uri2("http://www.foo.com/Page.html"); log.AddItem(urlA); log.AddItem(urlB); Assert.AreEqual(1, log.ItemCount); }
public void AddItem_AddsTheItemToTheLog_WhenCalled() { var log = new ResourceLog(); log.CaseSensitive = true; var url = new Uri2("http://www.foo.com/Page.html"); log.AddItem(url); Assert.AreEqual(1, log.ItemCount); }
public void AddItem_Adds2ItemsThatOnlyDifferByCase_WhenCaseSensitive() { var log = new ResourceLog(); log.CaseSensitive = true; var urlA = new Uri2("http://www.foo.com/page.html"); var urlB = new Uri2("http://www.foo.com/Page.html"); log.AddItem(urlA); log.AddItem(urlB); Assert.AreEqual(2, log.ItemCount); }
public void AllProperties_AreSet_WhenValidUrlAndBaseUrlPassedToCtor() { var relativeUri = "bar?baz=qux#hash"; var baseUrl = new Uri2("http://www.foo.com"); var url = new Uri2(baseUrl, relativeUri); Assert.AreEqual("http", url.Scheme); Assert.AreEqual("", url.UserInfo); Assert.AreEqual("www.foo.com", url.Host); Assert.AreEqual("www.foo.com", url.Authority); Assert.AreEqual(80, url.Port); Assert.AreEqual("/bar?baz=qux", url.PathAndQuery); Assert.AreEqual("?baz=qux", url.Query); Assert.AreEqual("#hash", url.Fragment); }