Exemple #1
0
        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);
        }