public async Task <IHttpActionResult> Post(CreativeSizeCreateViewModel model) { if (model == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (await _creativeSizeService.GetCreativeSize(model.CreativeSizeId.GetValueOrDefault(0)) != null) { return(BadRequest("The specified creative size id is already taken.")); } // map var creativeSize = _mapping.Map <CreativeSize>(model); await _creativeSizeService.CreateCreativeSize(creativeSize).ConfigureAwait(false); creativeSize = await _creativeSizeService.GetCreativeSize(creativeSize.CreativeSizeId).ConfigureAwait(false); var creativeSizeViewModel = _mapping.Map <CreativeSizeViewModel>(creativeSize); return(CreatedAtRoute("CreativeSizes.GetById", new { Id = creativeSizeViewModel.CreativeSizeId }, creativeSizeViewModel)); }
public async Task Post_ShouldReturnOk() { // Arrange const int creativeSizeId = 1; var model = new CreativeSizeCreateViewModel { CreativeSizeId = creativeSizeId, CreativeSizeName = "WJsHome", MediaType = "Display" }; var creativeSize = new CreativeSize { CreativeSizeId = creativeSizeId }; var creativeSizeQueue = new Queue <CreativeSize>(new List <CreativeSize> { null, creativeSize }); // moq returns Mock.Mock <ICreativeSizeService>().Setup(x => x.GetCreativeSize(creativeSizeId)) .Returns(() => Task.FromResult(creativeSizeQueue.Dequeue())); // Act var retVal = await Controller.Post(model); // Assert Assert.That(retVal, Is.Not.Null); Assert.That(retVal, Is.TypeOf <CreatedAtRouteNegotiatedContentResult <CreativeSizeViewModel> >()); Mock.Mock <ICreativeSizeService>().Verify(x => x.CreateCreativeSize(It.IsAny <CreativeSize>()), Times.Once); }