public void Dicovery_Source_Empty() { // Setup var request = new Mock<HttpRequestBase>(MockBehavior.Strict); string request_content = String.Format("<?xml version=\"1.0\"?><methodCall><methodName>pingback.ping</methodName><params><param><value><string>{0}</string></value></param><param><value><string>{1}</string></value></param></params></methodCall>", "http://source/1", "http://target/1"); request.SetupGet(x => x.InputStream).Returns(new MemoryStream(new UTF8Encoding().GetBytes(request_content))); var webRequest = new Mock<IHttpWebRequestImplementation>(MockBehavior.Strict); var webResponse = new Mock<IHttpWebResponseImplementation>(MockBehavior.Strict); webRequest.Setup(x => x.Create(new Uri("http://source/1", UriKind.Absolute))).Returns(webRequest.Object); webRequest.Setup(x => x.GetResponse()).Returns(webResponse.Object); webResponse.Setup(x => x.Close()); webResponse.SetupGet(x => x.IsHttpStatusCode2XX).Returns(true); webResponse.Setup(x => x.GetResponseStream()).Returns(new MemoryStream(new UTF8Encoding().GetBytes(""))); // Test var pingback = new Pingback(webRequest.Object); var result = pingback.Receive(request.Object, null); // Verify request.VerifyAll(); webRequest.VerifyAll(); webResponse.VerifyAll(); Assert.False(result.Valid); Assert.Equal("http://source/1", result.SourceUri.ToString().ToLowerInvariant()); Assert.Equal("http://target/1", result.TargetUri.ToString().ToLowerInvariant()); }
public void Request_Params_Not_Http_TargetURI() { // Setup var request = new Mock<HttpRequestBase>(MockBehavior.Strict); string request_content = String.Format("<?xml version=\"1.0\"?><methodCall><methodName>pingback.ping</methodName><params><param><value><string>{0}</string></value></param><param><value><string>{1}</string></value></param></params></methodCall>", "http://source/1", "ftp://target/1"); request.SetupGet(x => x.InputStream).Returns(new MemoryStream(new UTF8Encoding().GetBytes(request_content))); var webRequest = new Mock<IHttpWebRequestImplementation>(MockBehavior.Strict); // Test var pingback = new Pingback(webRequest.Object); var result = pingback.Receive(request.Object, null); // Verify request.VerifyAll(); webRequest.VerifyAll(); Assert.False(result.Valid); Assert.Equal("http://source/1", result.SourceUri.ToString().ToLowerInvariant()); Assert.Null(result.TargetUri); }
public void WebException_Saved() { // Setup var request = new Mock<HttpRequestBase>(MockBehavior.Strict); string request_content = String.Format("<?xml version=\"1.0\"?><methodCall><methodName>pingback.ping</methodName><params><param><value><string>{0}</string></value></param><param><value><string>{1}</string></value></param></params></methodCall>", "http://source/1", "http://target/1"); request.SetupGet(x => x.InputStream).Returns(new MemoryStream(new UTF8Encoding().GetBytes(request_content))); var webRequest = new Mock<IHttpWebRequestImplementation>(MockBehavior.Strict); webRequest.Setup(x => x.Create(new Uri("http://source/1", UriKind.Absolute))).Returns(webRequest.Object); webRequest.Setup(x => x.GetResponse()).Throws(new System.Net.WebException("WebException")); // Test var pingback = new Pingback(webRequest.Object); var result = pingback.Receive(request.Object, null); // Verify request.VerifyAll(); webRequest.VerifyAll(); Assert.False(result.Valid); Assert.IsType<System.Net.WebException>(result.ReceiveException); Assert.Equal("WebException", result.ReceiveException.Message); }
public void Receive() { // Setup var request = new Mock<HttpRequestBase>(MockBehavior.Strict); string request_content = String.Format("<?xml version=\"1.0\"?><methodCall><methodName>pingback.ping</methodName><params><param><value><string>{0}</string></value></param><param><value><string>{1}</string></value></param></params></methodCall>", "http://source/1", "http://target/1"); request.SetupGet(x => x.InputStream).Returns(new MemoryStream(new UTF8Encoding().GetBytes(request_content))); var webRequest = new Mock<IHttpWebRequestImplementation>(MockBehavior.Strict); var webResponse = new Mock<IHttpWebResponseImplementation>(MockBehavior.Strict); webRequest.Setup(x => x.Create(new Uri("http://source/1", UriKind.Absolute))).Returns(webRequest.Object); webRequest.Setup(x => x.GetResponse()).Returns(webResponse.Object); webResponse.Setup(x => x.Close()); webResponse.SetupGet(x => x.IsHttpStatusCode2XX).Returns(true); string source = @" ... <head> <title>Source Title</title> </head> <div> <p> This is a text <a href=""http://tarGet/1"">post1</a> with link </p> </div> ... "; webResponse.Setup(x => x.GetResponseStream()).Returns(new MemoryStream(new UTF8Encoding().GetBytes(source))); // Test var pingback = new Pingback(webRequest.Object); var result = pingback.Receive(request.Object, null); // Verify request.VerifyAll(); webRequest.VerifyAll(); webResponse.VerifyAll(); Assert.True(result.Valid); Assert.Equal("http://source/1", result.SourceUri.ToString().ToLowerInvariant()); Assert.Equal("http://target/1", result.TargetUri.ToString().ToLowerInvariant()); Assert.Equal("Source Title", result.Title); Assert.Equal("Source Title", result.BlogName); Assert.Equal("This is a text post1 with link", result.Excerpt); }