Exemple #1
0
        public async Task ExecuteAsync_ReturnDisqusResponse_IfRequestIsValid()
        {
            /* arrange */

            // simulate success request to Disqus API

            string response = @"
                {
                    ""code"": 0,
                    ""response"": ""Payload""
                }
            ";

            HttpResponseMessage successResponse = new HttpResponseMessage
            {
                Content    = new StringContent(response),
                StatusCode = HttpStatusCode.OK
            };

            var restClient = new Mock <IDisqusRestClient>();

            restClient
            .Setup(r => r.ExecuteGetAsync(It.IsAny <string>(), It.IsAny <ICollection <KeyValuePair <string, string> > >()))
            .ReturnsAsync(successResponse);

            IDisqusRequestProcessor processor = new DisqusRequestProcessor(restClient.Object);

            /* act */

            var result = await processor.ExecuteAsync <DisqusResponse <string> >(DisqusRequestMethod.Get, "test", new List <KeyValuePair <string, string> >());

            Assert.That(result, Is.Not.Null);
            Assert.That(result.Code, Is.EqualTo(DisqusApiResponseCode.Success));
            Assert.That(result.Response, Is.EqualTo("Payload"));
        }
Exemple #2
0
        public void ExecuteAsync_ThrowsDisqusApiException_IfRequestIsInvalid()
        {
            /* arrange */

            // simulate bad request to Disqus API

            string response = @"
                {
                    ""code"": 2,
                    ""response"": ""Invalid argument, 'user': Unable to find user '-1'""
                }
            ";

            HttpResponseMessage errorResponse = new HttpResponseMessage
            {
                Content    = new StringContent(response),
                StatusCode = HttpStatusCode.BadRequest
            };

            var restClient = new Mock <IDisqusRestClient>();

            restClient
            .Setup(r => r.ExecuteGetAsync(It.IsAny <string>(), It.IsAny <ICollection <KeyValuePair <string, string> > >()))
            .ReturnsAsync(errorResponse);

            IDisqusRequestProcessor processor = new DisqusRequestProcessor(restClient.Object);

            /* act */

            ActualValueDelegate <Task <DisqusResponse <string> > > x = async() => await processor.ExecuteAsync <DisqusResponse <string> >(DisqusRequestMethod.Get, "test", new List <KeyValuePair <string, string> >());

            Assert.That(x, Throws.TypeOf <DisqusApiException>());
        }