public async Task <IHttpActionResult> Post(AdvertiserCreateViewModel 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 industryCategory = await _industryCategoryService.GetIndustryCategory(model.IndustryCategoryId.GetValueOrDefault(0)).ConfigureAwait(false); if (industryCategory == null) { return(BadRequest("The specified industry category was not found.")); } var advertiser = _mapping.Map <Advertiser>(model); await _advertiserService.CreateAdvertiser(advertiser).ConfigureAwait(false); advertiser = await _advertiserService.GetAdvertiser(advertiser.AdvertiserUuid).ConfigureAwait(false); var advertiserViewModel = _mapping.Map <AdvertiserViewModel>(advertiser); return(CreatedAtRoute("Advertisers.GetById", new { Id = advertiserViewModel.AdvertiserUuid }, advertiserViewModel)); }
public async Task Post_ShouldReturnOk() { // Arrange var model = new AdvertiserCreateViewModel { BuyerAccountUuid = Guid.NewGuid(), IndustryCategoryId = 1 }; Mock.Mock <IAccountService>().Setup(x => x.GetAccount(model.BuyerAccountUuid.Value)) .Returns(Task.FromResult(new BuyerAccount())); Mock.Mock <IIndustryCategoryService>().Setup(x => x.GetIndustryCategory(model.IndustryCategoryId.Value)) .Returns(Task.FromResult(new IndustryCategory())); Mock.Mock <IAdvertiserService>().Setup(x => x.GetAdvertiser(It.IsAny <Guid>())) .Returns(Task.FromResult(new Advertiser())); // Act var retVal = await Controller.Post(model); // Assert Assert.That(retVal, Is.Not.Null); Assert.That(retVal, Is.TypeOf <CreatedAtRouteNegotiatedContentResult <AdvertiserViewModel> >()); Mock.Mock <IAdvertiserService>().Verify(x => x.CreateAdvertiser(It.IsAny <Advertiser>()), Times.Once); }