Last active
August 24, 2018 13:54
-
-
Save DonkeyKongJr/894c5b3a5aaea81f04e61fa3516d224c to your computer and use it in GitHub Desktop.
HtmlRetrieverTest
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.IO; | |
using System.Linq; | |
using System.Net; | |
using System.Text; | |
using FluentAssertions; | |
using LinkReader.Installer; | |
using LinkReader.Reader; | |
using LinkReader.Retriever; | |
using LinkReader.Retriever.Interfaces; | |
using Moq; | |
using Xunit; | |
namespace LinkReaderTest | |
{ | |
public class HtmlRetrieverTest | |
{ | |
[Fact] | |
public void ShouldReturnEmptyStringWhenStatusCodeIsNotOk() | |
{ | |
var moq = new Mock<IWebRequest>(); | |
var moqHttpWebRequest = new Mock<HttpWebRequest>(); | |
var moqHttpWebResponse = new Mock<HttpWebResponse>(); | |
moqHttpWebResponse.Setup(_ => _.StatusCode).Returns(HttpStatusCode.BadRequest); | |
moqHttpWebRequest.Setup(_ => _.GetResponse()).Returns(moqHttpWebResponse.Object); | |
moq.Setup(_ => _.Create(It.IsAny<string>())).Returns(moqHttpWebRequest.Object); | |
var retriever = new HtmlRetriever(moq.Object); | |
var result = retriever.Retrieve("test"); | |
result.Should().BeEmpty(); | |
} | |
[Fact] | |
public void ShouldReturnContentStringWhenStatusCodeIsOk() | |
{ | |
var resultContent = "<html><b>I am the test</b></html>"; | |
var resultContentBytes = Encoding.ASCII.GetBytes(resultContent); | |
var moq = new Mock<IWebRequest>(); | |
var moqHttpWebRequest = new Mock<HttpWebRequest>(); | |
var moqHttpWebResponse = new Mock<HttpWebResponse>(); | |
moqHttpWebResponse.Setup(_ => _.StatusCode).Returns(HttpStatusCode.OK); | |
moqHttpWebResponse.Setup(_ => _.GetResponseStream()).Returns(new MemoryStream(resultContentBytes)); | |
moqHttpWebRequest.Setup(_ => _.GetResponse()).Returns(moqHttpWebResponse.Object); | |
moq.Setup(_ => _.Create(It.IsAny<string>())).Returns(moqHttpWebRequest.Object); | |
var retriever = new HtmlRetriever(moq.Object); | |
var result = retriever.Retrieve("test"); | |
result.Should().Be(resultContent); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment