public void CreateMovie_Returns_CreatedAtRouteResult() { // Arrange var movieRepositoryMock = new Mock <IMovieRepository>(); var subGenreIMapperMock = new MapperConfiguration(config => { config.AddProfile(new MovieMapper()); }); var movieMapper = subGenreIMapperMock.CreateMapper(); MoviesController movieApiController = new MoviesController(movieRepositoryMock.Object, mapper: movieMapper); var movieModel = new MovieModel() { Name = "Adult Content", DateCreated = DateTime.Parse("15 May 2015"), Id = Guid.NewGuid(), GenreId = Guid.NewGuid(), Genres = new GenreModel(), }; var movieDto = new MoviesCreateDTO() { Name = movieModel.Name, DateCreated = movieModel.DateCreated, GenreId = movieModel.GenreId, SubGenreId = Guid.NewGuid() }; movieRepositoryMock.Setup(repo => repo.MovieExist(It.IsAny <string>())).Returns(false); movieRepositoryMock.Setup(repo => repo.CreateMovie(It.IsAny <MovieModel>())).Returns(true); // Act var movieResult = movieApiController.CreateMovie(movieDto); var createdAtRouteResult = movieResult as CreatedAtRouteResult; // Assert Assert.True(createdAtRouteResult.StatusCode is StatusCodes.Status201Created); }
public IActionResult CreateMovie([FromBody] MoviesCreateDTO moviesDto) { if (moviesDto is null) { return(BadRequest(ModelState)); } if (_movieRepo.MovieExist(moviesDto.Name)) { ModelState.AddModelError("", "SubGenre already exist!"); return(StatusCode(404, ModelState)); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var movieObj = _mapper.Map <MovieModel>(moviesDto); if (!_movieRepo.CreateMovie(movieObj)) { ModelState.AddModelError("", $"Something wrong occured when trying to save record {movieObj.Name}"); return(StatusCode(500, ModelState)); } return(CreatedAtRoute("GetMovieById", new { movieId = movieObj.Id }, movieObj)); }