public async Task <IHttpActionResult> Get([FromUri] DealQueryViewModel model) { model = model ?? new DealQueryViewModel(); // super/system admins can pass null to get all deals if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (model.BuyerAccountUuid.HasValue) { var account = await _accountService.GetAccount(model.BuyerAccountUuid.Value).ConfigureAwait(false); if (account == null) { return(BadRequest("The specified account was not found.")); } } var dealQueryOptions = _mapping.Map <DealQueryOptions>(model); var deals = await _dealService.GetDeals(dealQueryOptions).ToPagedListAsync(model).ConfigureAwait(false); var retVal = _mapping.Map <PagedListViewModel <DealListViewModel> >(deals); return(Ok(retVal)); }
public async Task Get_ShouldReturnDealList() { // Arrange var model = new DealQueryViewModel(); var deal = new Deal { DealUuid = Guid.NewGuid() }; var deals = new List <Deal> { deal }; Mock.Mock <IDealService>().Setup(x => x.GetDeals(It.IsAny <DealQueryOptions>())).Returns(deals.ToAsyncEnumerable()); // Act var retVal = await Controller.Get(model); // Assert Assert.That(retVal, Is.Not.Null); Assert.That(retVal, Is.TypeOf <OkNegotiatedContentResult <PagedListViewModel <DealListViewModel> > >()); var content = ((OkNegotiatedContentResult <PagedListViewModel <DealListViewModel> >)retVal).Content; Assert.That(content.TotalItemCount, Is.EqualTo(1)); Assert.That(content.Data.ElementAt(0).DealUuid, Is.EqualTo(deal.DealUuid)); }