コード例 #1
0
        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");
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
            }
        }