示例#1
0
        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());
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
-1
        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);
        }