Esempio n. 1
0
        public void ProcessParsesResultAsync()
        {
            var requestMock = new MockWebRequest();

            requestMock.SetupResponse("responsetext");

            var expected = new BluePayPost20ResponseV3();

            var parserMock = new Mock <IBluePayResponseParser <BluePayPost20ResponseV3> >();

            parserMock.Setup(p => p.ParseAsync(It.Is((TextReader tr) => tr.ReadToEnd() == "responsetext")))
            .ReturnsAsync(expected);

            var proxy = new BluePay20PostClient(
                endpoint: "https://example.org",
                parser: parserMock.Object,
                webRequestProvider: (url) => {
                Assert.AreEqual("https://example.org", url);
                return(requestMock.Object);
            });

            var response = proxy.ProcessAsync(new BluePayMessage()).Result;

            Assert.AreSame(expected, response);
        }
Esempio n. 2
0
        public void ProcessWrapsExceptionAsync()
        {
            var responseMock = new Mock <WebResponse>();

            responseMock.Setup(r => r.GetResponseStream())
            .Returns(new MemoryStream(Encoding.UTF8.GetBytes("response error")));

            var expected   = new BluePayPost20ResponseV3();
            var parserMock = new Mock <IBluePayResponseParser <BluePayPost20ResponseV3> >();

            parserMock.Setup(p => p.ParseAsync(It.Is((TextReader tr) => tr.ReadToEnd() == "response error")))
            .ReturnsAsync(expected);

            var inner = new WebException("inner", null, WebExceptionStatus.UnknownError, responseMock.Object);

            var proxy = new BluePay20PostClient(
                endpoint: "https://example.org",
                parser: parserMock.Object,
                webRequestProvider: (url) => { throw inner; });

            var response = proxy.ProcessAsync(new BluePayMessage()).Result;

            Assert.AreSame(expected, response);
        }