private void VerifyCall(ContactsSearchCriteriaModel criteria, System.Net.HttpStatusCode expectedCode)
        {
            var json = criteria == null ? string.Empty : JsonConvert.SerializeObject(criteria);

            using var content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");

            var response = _client.PostAsync(ContactsApiUrl + "/search", content).Result;

            Assert.IsTrue(response.StatusCode == expectedCode);
        }
        public async Task <ActionResult <SearchResults <ContactDto> > > Search([FromBody] ContactsSearchCriteriaModel criteria)
        {
            try
            {
                var results = await _mediator.Send(new GetContactsQuery(criteria.PageNumber, criteria.PageSize, criteria.Text));

                return(Ok(results));
            }
            catch (InvalidParametersException)
            {
                return(BadRequest());
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "Error searching contacts");
                return(BadRequest());
            }
        }
Exemplo n.º 3
0
        public void InvalidPageNumberParameterThrowsException()
        {
            var criteria = new ContactsSearchCriteriaModel()
            {
                PageNumber = 0, PageSize = 1
            };

            mediator
            .Setup(x => x.Send(It.Is <GetContactsQuery>(x => x.Page == criteria.PageNumber && x.Size == criteria.PageSize && x.Text == criteria.Text), It.IsAny <CancellationToken>()))
            .Throws(new InvalidParametersException("Invalid search parameters"));

            var returned = controller.Search(criteria).Result;

            Assert.IsNotNull(returned);
            Assert.IsNotNull(returned.Result);
            Assert.IsTrue(returned.Result is BadRequestResult);

            mediator.VerifyAll();
        }