public async Task <IHttpActionResult> PostDoohVideo(CreativeDoohVideoCreateViewModel 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 creativeSize = await _creativeSizeService.GetCreativeSize(model.CreativeSizeId.GetValueOrDefault(0)).ConfigureAwait(false); if (creativeSize == null) { return(BadRequest("The specified creative size was not found.")); } var creativeDoohVideoCreateOptions = _mapping.Map <CreativeDoohVideoCreateOptions>(model); try { var creative = await _creativeService.CreateCreative(creativeDoohVideoCreateOptions).ConfigureAwait(false); creative = await _creativeService.GetCreative(creative.CreativeUuid).ConfigureAwait(false); // reload var creativeViewModel = _mapping.Map <CreativeViewModel>(creative); return(CreatedAtRoute("Creatives.GetById", new { Id = creativeViewModel.CreativeUuid }, creativeViewModel)); } catch (BrandscreenException ex) { ModelState.AddModelError("", ex.Message); return(BadRequest(ModelState)); } }
public async Task PostDoohVideo_ShouldReturnOk() { // Arrange var model = new CreativeDoohVideoCreateViewModel { BrandUuid = Guid.NewGuid(), CreativeName = "WJsHome", CreativeSizeId = 1 }; var creative = new Creative { CreativeUuid = Guid.NewGuid(), CreativeName = model.CreativeName, AdvertiserProduct = new AdvertiserProduct { AdvertiserProductUuid = model.BrandUuid.Value }, CreativeFile = new CreativeFile() }; Mock.Mock <IBrandService>().Setup(x => x.GetBrand(model.BrandUuid.Value)) .Returns(Task.FromResult(creative.AdvertiserProduct)); Mock.Mock <ICreativeService>().Setup(x => x.CreateCreative(It.IsAny <CreativeDoohVideoCreateOptions>())) .Returns(Task.FromResult(creative)); Mock.Mock <ICreativeService>().Setup(x => x.GetCreative(creative.CreativeUuid)) .Returns(Task.FromResult(creative)); Mock.Mock <ICreativeSizeService>().Setup(x => x.GetCreativeSize(model.CreativeSizeId.Value)) .Returns(Task.FromResult(new CreativeSize())); Mock.Mock <IAmazonSettings>().SetupGet(x => x.BucketCreativeUrl) .Returns("https://creatives.brandscreen.com"); // Act var retVal = await Controller.PostDoohVideo(model); // Assert Assert.That(retVal, Is.Not.Null); Assert.That(retVal, Is.TypeOf <CreatedAtRouteNegotiatedContentResult <CreativeViewModel> >()); }