public async Task <IActionResult> AddShow(ShowDetailsDto bookingDetails) { if (await _repo.GetMultiplexe(bookingDetails.MultiplexId) == null) { return(NotFound("Multiplex not found")); } var movieToRepo = _mapper.Map <Movie>(bookingDetails); _repo.Add(movieToRepo); if (await _repo.SaveAll()) { var showToRepo = _mapper.Map <Show>(bookingDetails); showToRepo.MovieId = movieToRepo.Id; _repo.Add(showToRepo); var showToReturn = _mapper.Map <ShowDetailsReturnDto>(showToRepo); if (await _repo.SaveAll()) { return(CreatedAtRoute("Getshow", new { controller = "Movies", multiplxId = showToRepo.MultiplexId }, showToRepo)); } } throw new Exception("Error in saving Movie show details"); }
public async void AddShow_ValidDetails_ShowDetail() { try { //Arrange Mock <IMovieBookingRepository> mockRepo = new Mock <IMovieBookingRepository>(); ShowDetailsDto showDetailsDto = new ShowDetailsDto() { MovieName = "Pink Sky", Genre = "Biography", Language = "Gujrati", ShowDate = DateTime.Today.AddDays(2).Date, MultiplexId = 2 }; //auto mapper configuration var mockMapper = new MapperConfiguration(cfg => { cfg.AddProfile(new AutoMapperProfiles()); }); var mapper = mockMapper.CreateMapper(); AdminController controller = new AdminController(repo: mockRepo.Object, mapper: mapper); //Act var result = await controller.AddShow(showDetailsDto); //Assert var okResult = result as OkObjectResult; if (okResult != null) { Assert.NotNull(okResult); } var model = okResult.Value as IEnumerable <ShowDetailsReturnDto>; if (model.Count() > 0) { Assert.NotNull(model); Assert.NotNull(model?.FirstOrDefault().Id); var expected = model?.FirstOrDefault().Movie.MovieName; var actual = showDetailsDto?.MovieName; Assert.Equal(expected: expected, actual: actual); } } catch (Exception ex) { //Assert Assert.False(false, ex.Message); } }
public async void AddShow_InvalidMultiplex_NotFound() { try { //Arrange Mock <IMovieBookingRepository> mockRepo = new Mock <IMovieBookingRepository>(); ShowDetailsDto showDetailsDto = new ShowDetailsDto() { MovieName = "Sky", Genre = "Biography", Language = "Hindi", ShowDate = DateTime.Today.AddDays(2).Date, MultiplexId = 5 }; //auto mapper configuration var mockMapper = new MapperConfiguration(cfg => { cfg.AddProfile(new AutoMapperProfiles()); }); var mapper = mockMapper.CreateMapper(); AdminController controller = new AdminController(repo: mockRepo.Object, mapper: mapper); //Act var result = await controller.AddShow(showDetailsDto); //Assert var notFoundresult = result as NotFoundResult; if (notFoundresult != null) { Assert.NotNull(notFoundresult); } } catch (Exception ex) { //Assert Assert.False(false, ex.Message); } }