public async Task <IHttpActionResult> Get([FromUri] PublisherQueryViewModel model)
        {
            model = model ?? new PublisherQueryViewModel();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var publisherQueryOptions = _mapping.Map <PublisherQueryOptions>(model);
            var publishers            = await _publisherService.GetPublishers(publisherQueryOptions).ToPagedListAsync(model).ConfigureAwait(false);

            var retVal = _mapping.Map <PagedListViewModel <PublisherListViewModel> >(publishers);

            return(Ok(retVal));
        }
        public async Task Get_ShouldReturnPublisherList()
        {
            // Arrange
            var model     = new PublisherQueryViewModel();
            var publisher = new Publisher {
                PublisherUuid = Guid.NewGuid()
            };
            var publishers = new List <Publisher> {
                publisher
            };

            Mock.Mock <IPublisherService>().Setup(x => x.GetPublishers(It.IsAny <PublisherQueryOptions>())).Returns(publishers.ToAsyncEnumerable());

            // Act
            var retVal = await Controller.Get(model);

            // Assert
            Assert.That(retVal, Is.Not.Null);
            Assert.That(retVal, Is.TypeOf <OkNegotiatedContentResult <PagedListViewModel <PublisherListViewModel> > >());
            var content = ((OkNegotiatedContentResult <PagedListViewModel <PublisherListViewModel> >)retVal).Content;

            Assert.That(content.TotalItemCount, Is.EqualTo(1));
            Assert.That(content.Data.ElementAt(0).PublisherUuid, Is.EqualTo(publisher.PublisherUuid));
        }