public async Task <IHttpActionResult> Get([FromUri] AccountQueryViewModel model) { model = model ?? new AccountQueryViewModel(); // super/system admins can pass null to get all accounts if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (model.UserId.HasValue) { var user = await _userService.GetUser(model.UserId.Value).ConfigureAwait(false); if (user == null) { return(BadRequest("The specified user was not found.")); } } var accountQueryOptions = _mapping.Map <AccountQueryOptions>(model); var accounts = await _accountService.GetAccounts(accountQueryOptions).ToPagedListAsync(model).ConfigureAwait(false); var retVal = _mapping.Map <PagedListViewModel <AccountListViewModel> >(accounts); return(Ok(retVal)); }
public async Task Get_ShouldReturnListOfAccounts() { // Arrange var userId = Guid.NewGuid(); var account1 = new BuyerAccount { CompanyName = "Brandscreen" }; var account2 = new BuyerAccount { CompanyName = "WJsHome" }; var accounts = new List <BuyerAccount> { account1, account2 }; var model = new AccountQueryViewModel { UserId = userId }; Mock.Mock <IAccountService>().Setup(x => x.GetAccounts(It.IsAny <AccountQueryOptions>())) .Returns(accounts.ToAsyncEnumerable()); Mock.Mock <IUserService>().Setup(x => x.GetUser(userId)).Returns(Task.FromResult(new User())); // Act var retVal = await Controller.Get(model); // Assert Assert.That(retVal, Is.Not.Null); Assert.That(retVal, Is.TypeOf <OkNegotiatedContentResult <PagedListViewModel <AccountListViewModel> > >()); var content = ((OkNegotiatedContentResult <PagedListViewModel <AccountListViewModel> >)retVal).Content; Assert.That(content.TotalItemCount, Is.EqualTo(2)); var data = content.Data.ToList(); Assert.That(data[0].CompanyName, Is.EqualTo(account1.CompanyName)); Assert.That(data[1].CompanyName, Is.EqualTo(account2.CompanyName)); }