public IActionResult CreateSubGenre([FromBody] SubGenreCreateDTO subGenreDto) { if (subGenreDto is null) { return(BadRequest(ModelState)); } if (_genreRepo.SubGenreExist(subGenreDto.Name)) { ModelState.AddModelError("", "SubGenre already exist!"); return(StatusCode(404, ModelState)); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var genreObj = _mapper.Map <SubGenreModel>(subGenreDto); if (!_genreRepo.CreateSubGenre(genreObj)) { ModelState.AddModelError("", $"Something wrong occured when trying to save record {genreObj.Name}"); return(StatusCode(500, ModelState)); } return(CreatedAtRoute("GetSubGenreById", new { genreId = genreObj.Id }, genreObj)); }
public void CreateSubGenre_Returns_CreatedAtRoute() { // Arrange var subGenreRepositoryMock = new Mock <ISubGenreRepository>(); var subGenreIMapperMock = new MapperConfiguration(config => { config.AddProfile(new MovieMapper()); }); var subGenreMapper = subGenreIMapperMock.CreateMapper(); SubGenresController subGenreApiController = new SubGenresController(subGenreRepositoryMock.Object, mapper: subGenreMapper); var genreModel = new GenreModel() { Name = "Humor", DateCreated = DateTime.Parse("15 May 2015"), Id = Guid.NewGuid() }; var subGenreDto = new SubGenreCreateDTO() { Name = "Humor", DateCreated = DateTime.Parse("15 May 2015"), GenreId = genreModel.Id, Id = Guid.NewGuid() }; subGenreRepositoryMock.Setup(repo => repo.SubGenreExist(It.IsAny <string>())).Returns(false); subGenreRepositoryMock.Setup(repo => repo.CreateSubGenre(It.IsAny <SubGenreModel>())).Returns(true); // Act var subGenreResult = subGenreApiController.CreateSubGenre(subGenreDto); var createdAtRouteResult = subGenreResult as CreatedAtRouteResult; // Assert Assert.True(createdAtRouteResult.StatusCode is StatusCodes.Status201Created); }