public async Task Post_ShouldReturnOk() { // Arrange var model = new DealCreateViewModel { BuyerAccountUuid = Guid.NewGuid(), PublisherUuid = Guid.NewGuid(), DealKey = "JingWu", DealType = "Fixed" }; var deal = new Deal(); Mock.Mock <IAccountService>().Setup(x => x.GetAccount(model.BuyerAccountUuid.Value)) .Returns(Task.FromResult(new BuyerAccount())); Mock.Mock <IPublisherService>().Setup(x => x.GetPublisher(model.PublisherUuid.Value)) .Returns(Task.FromResult(new Publisher())); Mock.Mock <ICurrencyService>().Setup(x => x.GetCurrency(It.IsAny <string>())) .Returns(Task.FromResult(new Currency())); Mock.Mock <IDealService>().Setup(x => x.CreateDeal(It.IsAny <Deal>())) .Returns(Task.FromResult(deal)); Mock.Mock <IDealService>().Setup(x => x.GetDeal(It.IsAny <Guid>())) .Returns(Task.FromResult(deal)); // Act var retVal = await Controller.Post(model); // Assert Assert.That(retVal, Is.Not.Null); Assert.That(retVal, Is.TypeOf <CreatedAtRouteNegotiatedContentResult <DealViewModel> >()); Mock.Mock <IDealService>().Verify(x => x.CreateDeal(It.IsAny <Deal>()), Times.Once); }
public async Task <IHttpActionResult> Post(DealCreateViewModel model) { if (model == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var buyerAccount = await _accountService.GetAccount(model.BuyerAccountUuid.GetValueOrDefault(Guid.Empty)).ConfigureAwait(false); if (buyerAccount == null) { return(BadRequest("The specified buyer account was not found.")); } var publisher = await _publisherService.GetPublisher(model.PublisherUuid.GetValueOrDefault(Guid.Empty)).ConfigureAwait(false); if (publisher == null) { return(BadRequest("The specified publisher was not found.")); } // map var deal = _mapping.Map <Deal>(model); deal.BuyerAccountId = buyerAccount.BuyerAccountId; deal.PublisherId = publisher.PartnerId; deal.PublishersName = publisher.PublisherName; try { deal = await _dealService.CreateDeal(deal).ConfigureAwait(false); // create deal = await _dealService.GetDeal(deal.DealUuid).ConfigureAwait(false); // reload var dealViewModel = _mapping.Map <DealViewModel>(deal); return(CreatedAtRoute("Deals.GetById", new { Id = dealViewModel.DealUuid }, dealViewModel)); } catch (BrandscreenException ex) { ModelState.AddModelError("", ex.Message); return(BadRequest(ModelState)); } }
public async Task <IActionResult> Create(DealCreateViewModel input) { var user = await this.userManager.GetUserAsync(this.User); var userId = await this.userManager.GetUserIdAsync(user); input.UserId = userId; if (!this.ModelState.IsValid || input.UserId == null) { return(this.View(input)); } Stage stage = (Stage)Enum.ToObject(typeof(AccountType), input.Stage); var dealId = await this.dealsService.CreateAsync(input.Name, input.UserId, input.Description, stage, input.AccountId); this.TempData["InfoMessage"] = "Deal created!"; return(this.Redirect("/Deals/GetAll")); }