Skip to content

Instantly share code, notes, and snippets.

@DonkeyKongJr
Last active August 24, 2018 13:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DonkeyKongJr/894c5b3a5aaea81f04e61fa3516d224c to your computer and use it in GitHub Desktop.
Save DonkeyKongJr/894c5b3a5aaea81f04e61fa3516d224c to your computer and use it in GitHub Desktop.
HtmlRetrieverTest
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