public async Task <IHttpActionResult> Post(CampaignCreateViewModel model) { if (model == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var brand = await _brandService.GetBrand(model.BrandUuid.GetValueOrDefault(Guid.Empty)).ConfigureAwait(false); if (brand == null) { return(BadRequest("The specified brand was not found.")); } var campaign = _mapping.Map <Campaign>(model); await _campaignService.CreateCampaign(campaign).ConfigureAwait(false); campaign = await _campaignService.GetCampaign(campaign.CampaignUuid).ConfigureAwait(false); var campaignViewModel = _mapping.Map <CampaignViewModel>(campaign); return(CreatedAtRoute("Campaigns.GetById", new { Id = campaignViewModel.CampaignUuid }, campaignViewModel)); }
public async Task Post_ShouldReturnOk() { // Arrange var model = new CampaignCreateViewModel { BrandUuid = Guid.NewGuid() }; Mock.Mock <IBrandService>().Setup(x => x.GetBrand(model.BrandUuid.Value)) .Returns(Task.FromResult(new AdvertiserProduct())); Mock.Mock <ICampaignService>().Setup(x => x.GetCampaign(It.IsAny <Guid>())) .Returns(Task.FromResult(new Campaign())); // Act var retVal = await Controller.Post(model); // Assert Assert.That(retVal, Is.Not.Null); Assert.That(retVal, Is.TypeOf <CreatedAtRouteNegotiatedContentResult <CampaignViewModel> >()); Mock.Mock <ICampaignService>().Verify(x => x.CreateCampaign(It.IsAny <Campaign>()), Times.Once); }