Example #1
0
        public async Task Test_GetMovieSessions_NoSuccess()
        {
            // arrange
            var responseData = new GetTicketingPageResponse
            {
                IsOK          = "false",
                ResultMessage = "ERROR"
            };

            _requesterMock
            .Setup(x => x.Post <GetTicketingPageResponse>(
                       It.IsAny <string>(),
                       It.IsAny <string>(),
                       It.IsAny <string>()))
            .ReturnsAsync(responseData);

            // action
            var service  = new LotteService(_requesterMock.Object);
            var response = await service.GetMovieSessions("10001");

            // assert
            Assert.IsFalse(response.Success);
            Assert.IsNull(response.Data);
            Assert.AreEqual("ERROR", response.Message);
        }
Example #2
0
        public async Task Test_GetMovieSession_NoSuccess()
        {
            // arrange
            var responseData = new GetPlaySequenceResponse
            {
                IsOK          = "false",
                ResultMessage = "ERROR"
            };

            _requesterMock
            .Setup(x => x.Post <GetPlaySequenceResponse>(
                       It.IsAny <string>(),
                       It.Is <string>(y =>
                                      y.Contains("MethodName:'GetPlaySequence'") &&
                                      y.Contains("playDate:'20191129'") &&
                                      y.Contains("cinemaID:'1|0001|8008'") &&
                                      y.Contains("representationMovieCode:'10001'")),
                       It.IsAny <string>()))
            .ReturnsAsync(responseData);

            // action
            var service  = new LotteService(_requesterMock.Object);
            var response = await service.GetMovieSession("10001", "20191129", "8008", "1", "0001");

            // assert
            Assert.AreEqual(0, response.Count);
        }
Example #3
0
        public async Task Test_GetMovieDetails_NoSuccess()
        {
            // arrange
            var responseData = new GetMovieDetailResponse
            {
                IsOK          = "false",
                ResultMessage = "NOT FOUND"
            };

            _requesterMock
            .Setup(x => x.Post <GetMovieDetailResponse>(
                       It.IsAny <string>(),
                       It.Is <string>(y => y.Contains("representationMovieCode:'10001'")),
                       It.IsAny <string>()))
            .ReturnsAsync(responseData);

            // action
            var service  = new LotteService(_requesterMock.Object);
            var response = await service.GetMovieDetails("10001");

            // assert
            Assert.IsFalse(response.Success);
            Assert.IsNull(response.Data);
            Assert.AreEqual("NOT FOUND", response.Message);
        }
Example #4
0
        public async Task Test_GetMovieSession_Success()
        {
            // arrange
            var responseData = new GetPlaySequenceResponse
            {
                IsOK          = "true",
                ResultMessage = "SUCCESS",
                PlaySeqs      = new DataItem <LotteMovieSession>
                {
                    ItemCount = 2,
                    Items     = new List <LotteMovieSession>
                    {
                        new LotteMovieSession
                        {
                            CinemaID  = "8008",
                            PlayDt    = "20191129",
                            StartTime = "1945"
                        },
                        new LotteMovieSession
                        {
                            CinemaID  = "8008",
                            PlayDt    = "20191129",
                            StartTime = "2015"
                        }
                    }
                }
            };

            _requesterMock
            .Setup(x => x.Post <GetPlaySequenceResponse>(
                       It.IsAny <string>(),
                       It.Is <string>(y =>
                                      y.Contains("MethodName:'GetPlaySequence'") &&
                                      y.Contains("playDate:'20191129'") &&
                                      y.Contains("cinemaID:'1|0001|8008'") &&
                                      y.Contains("representationMovieCode:'10001'")),
                       It.IsAny <string>()))
            .ReturnsAsync(responseData);

            // action
            var service  = new LotteService(_requesterMock.Object);
            var response = await service.GetMovieSession("10001", "20191129", "8008", "1", "0001");

            // assert
            Assert.AreEqual(2, response.Count);

            Assert.AreEqual("8008", response[0].CinemaID);
            Assert.AreEqual("20191129", response[0].PlayDt);
            Assert.AreEqual("1945", response[0].StartTime);

            Assert.AreEqual("8008", response[1].CinemaID);
            Assert.AreEqual("20191129", response[1].PlayDt);
            Assert.AreEqual("2015", response[1].StartTime);
        }
Example #5
0
        public async Task Test_GetShowingMovies_Success()
        {
            // arrange
            var responseData = new GetMoviesResponse
            {
                IsOK          = "true",
                ResultMessage = "SUCCESS",
                Movies        = new DataItem <LotteMovieShortView>
                {
                    ItemCount = 2,
                    Items     = new List <LotteMovieShortView>
                    {
                        new LotteMovieShortView
                        {
                            RepresentationMovieCode = "10001",
                            MovieName      = "Movie 1",
                            ReleaseDate    = "20191129",
                            ViewEvaluation = (decimal)7.34
                        },
                        new LotteMovieShortView
                        {
                            RepresentationMovieCode = "10002",
                            MovieName      = "Movie 2",
                            ReleaseDate    = "20191130",
                            ViewEvaluation = (decimal)8.82
                        }
                    }
                }
            };

            _requesterMock
            .Setup(x => x.Post <GetMoviesResponse>(It.IsAny <string>(), It.IsAny <object>(), It.IsAny <string>()))
            .ReturnsAsync(responseData);

            // action
            var service  = new LotteService(_requesterMock.Object);
            var response = await service.GetShowingMovies();

            // assert
            Assert.IsTrue(response.Success);
            Assert.AreEqual(2, response.Data.Count);

            Assert.AreEqual("10001", response.Data[0].Id);
            Assert.AreEqual("Movie 1", response.Data[0].Name);
            Assert.AreEqual(new DateTime(2019, 11, 29), response.Data[0].ReleaseDate);
            Assert.AreEqual((decimal)7.34, response.Data[0].Rating);
            Assert.IsNull(response.Data[0].Description);

            Assert.AreEqual("10002", response.Data[1].Id);
            Assert.AreEqual("Movie 2", response.Data[1].Name);
            Assert.AreEqual(new DateTime(2019, 11, 30), response.Data[1].ReleaseDate);
            Assert.AreEqual((decimal)8.82, response.Data[1].Rating);
            Assert.IsNull(response.Data[1].Description);
        }
Example #6
0
        public async Task Test_GetShowingMovies_Failed()
        {
            // arrange
            _requesterMock
            .Setup(x => x.Post <GetMoviesResponse>(It.IsAny <string>(), It.IsAny <object>(), It.IsAny <string>()))
            .ThrowsAsync(new Exception("Request failed"));

            // action
            var service  = new LotteService(_requesterMock.Object);
            var response = await service.GetShowingMovies();

            // assert
            Assert.IsFalse(response.Success);
            Assert.IsNull(response.Data);
            Assert.AreEqual("Request failed", response.Message);
        }
Example #7
0
        public async Task Test_GetMovieDetails_Failed()
        {
            // arrange
            _requesterMock
            .Setup(x => x.Post <GetMovieDetailResponse>(
                       It.IsAny <string>(),
                       It.Is <string>(y => y.Contains("representationMovieCode:'10001'")),
                       It.IsAny <string>()))
            .ThrowsAsync(new Exception("Request failed"));

            // action
            var service  = new LotteService(_requesterMock.Object);
            var response = await service.GetMovieDetails("10001");

            // assert
            Assert.IsFalse(response.Success);
            Assert.IsNull(response.Data);
            Assert.AreEqual("Request failed", response.Message);
        }
Example #8
0
        public async Task Test_GetMovieSession_Failed()
        {
            // arrange
            _requesterMock
            .Setup(x => x.Post <GetPlaySequenceResponse>(
                       It.IsAny <string>(),
                       It.Is <string>(y =>
                                      y.Contains("MethodName:'GetPlaySequence'") &&
                                      y.Contains("playDate:'20191129'") &&
                                      y.Contains("cinemaID:'1|0001|8008'") &&
                                      y.Contains("representationMovieCode:'10001'")),
                       It.IsAny <string>()))
            .ThrowsAsync(new Exception("Request failed"));

            // action
            var service  = new LotteService(_requesterMock.Object);
            var response = await service.GetMovieSession("10001", "20191129", "8008", "1", "0001");

            // assert
            Assert.AreEqual(0, response.Count);
        }
Example #9
0
 /// <summary>
 /// Get movie details (default domain)
 /// </summary>
 /// <param name="type">Type of vender (ex: Galaxy, Lotte, ...)</param>
 /// <param name="movieId">Moive's id, type string: different id's type between vendors (string is the best type here)</param>
 /// <returns>Detail of movie with status and message</returns>
 public async Task <MovieResult> GetMovieDetails(VendorType type, string movieId)
 {
     if (type == VendorType.GalaxyCinema)
     {
         var galaxyService = new GalaxyService(_requester);
         return(await galaxyService.GetMovieDetails(movieId));
     }
     else if (type == VendorType.Lotteria)
     {
         var lotteService = new LotteService(_requester);
         return(await lotteService.GetMovieDetails(movieId));
     }
     else
     {
         return(new MovieResult
         {
             Success = false,
             Message = "Not implemented"
         });
     };
 }
Example #10
0
 /// <summary>
 /// Get current showing movies (new domain)
 /// </summary>
 /// <param name="type">Type of vender (ex: Galaxy, Lotte, ...)</param>
 /// <returns>List of current show movie model with status and message</returns>
 public async Task <MovieListResult> GetShowingMovies(VendorType type, string domain)
 {
     if (type == VendorType.GalaxyCinema)
     {
         var galaxyService = new GalaxyService(domain, _requester);
         return(await galaxyService.GetShowingMovies());
     }
     else if (type == VendorType.Lotteria)
     {
         var lotteService = new LotteService(domain, _requester);
         return(await lotteService.GetShowingMovies());
     }
     else
     {
         return(new MovieListResult
         {
             Success = false,
             Message = "Not implemented"
         });
     };
 }
Example #11
0
        public async Task Test_GetMovieDetails_Success()
        {
            // arrange
            var responseData = new GetMovieDetailResponse
            {
                IsOK          = "true",
                ResultMessage = "SUCCESS",
                Movie         = new LotteMovie
                {
                    RepresentationMovieCode = "10001",
                    MovieName      = "Movie 1",
                    ReleaseDate    = "20191129",
                    ViewEvaluation = (decimal)7.34,
                    Synopsis       = "Description 1"
                }
            };

            _requesterMock
            .Setup(x => x.Post <GetMovieDetailResponse>(
                       It.IsAny <string>(),
                       It.Is <string>(y => y.Contains("representationMovieCode:'10001'")),
                       It.IsAny <string>()))
            .ReturnsAsync(responseData);

            // action
            var service  = new LotteService(_requesterMock.Object);
            var response = await service.GetMovieDetails("10001");

            // assert
            Assert.IsTrue(response.Success);
            Assert.AreEqual("10001", response.Data.Id);
            Assert.AreEqual("Movie 1", response.Data.Name);
            Assert.AreEqual(new DateTime(2019, 11, 29), response.Data.ReleaseDate);
            Assert.AreEqual((decimal)7.34, response.Data.Rating);
            Assert.AreEqual("Description 1", response.Data.Description);
        }
Example #12
0
        public async Task Test_GetCinemaAddressDict()
        {
            // arrange
            var data = new List <LotteCinemaItem>
            {
                new LotteCinemaItem
                {
                    CinemaID           = "8000",
                    DivisionCode       = "1",
                    DetailDivisionCode = "0001",
                },
                new LotteCinemaItem
                {
                    CinemaID           = "8001",
                    DivisionCode       = "1",
                    DetailDivisionCode = "0001",
                },
                new LotteCinemaItem
                {
                    CinemaID           = "8000",
                    DivisionCode       = "2",
                    DetailDivisionCode = "0002",
                }
            };

            foreach (var cinema in data)
            {
                _requesterMock
                .Setup(x => x.Post <GetCinemaDetailItem>(
                           It.IsAny <string>(),
                           It.Is <string>(y =>
                                          y.Contains($"divisionCode:'{cinema.DivisionCode}'") &&
                                          y.Contains($"detailDivisionCode:'{cinema.DetailDivisionCode}'") &&
                                          y.Contains($"cinemaID:'{cinema.CinemaID}'")),
                           It.IsAny <string>()))
                .ReturnsAsync(new GetCinemaDetailItem
                {
                    IsOK          = "true",
                    ResultMessage = "SUCCESS",
                    CinemaDetail  = new LotteCinemaItem
                    {
                        CinemaID           = cinema.CinemaID,
                        DivisionCode       = cinema.DivisionCode,
                        DetailDivisionCode = cinema.DetailDivisionCode,
                        Address            = $"Cinema {cinema.CinemaID}"
                    }
                });
            }

            // action
            var service  = new LotteService(_requesterMock.Object);
            var response = await service.GetCinemaAddressDict(data);

            // assert
            _requesterMock.Verify(m => m.Post <GetCinemaDetailItem>(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(2));
            Assert.AreEqual(2, response.Count);

            Assert.IsTrue(response.ContainsKey("8000"));
            Assert.AreEqual("Cinema 8000", response["8000"]);

            Assert.IsTrue(response.ContainsKey("8001"));
            Assert.AreEqual("Cinema 8001", response["8001"]);
        }
Example #13
0
        public async Task Test_GetMovieSessions_Success()
        {
            // arrange
            var responseData = new GetTicketingPageResponse
            {
                IsOK           = "true",
                ResultMessage  = "SUCCESS",
                MoviePlayDates = new GetTicketingPageDate
                {
                    IsOK          = "true",
                    ResultMessage = "SUCCESS",
                    Items         = new DataItem <LottePlayDate>
                    {
                        ItemCount = 2,
                        Items     = new List <LottePlayDate>
                        {
                            new LottePlayDate
                            {
                                IsPlayDate = "Y",
                                PlayDate   = "20191129"
                            },
                            new LottePlayDate
                            {
                                IsPlayDate = "N",
                                PlayDate   = "20191130"
                            }
                        }
                    }
                },
                Cinemas = new GetTicketingPageCinema
                {
                    IsOK          = "true",
                    ResultMessage = "SUCCESS",
                    Cinemas       = new DataItem <LotteCinemaItem>
                    {
                        ItemCount = 2,
                        Items     = new List <LotteCinemaItem>
                        {
                            new LotteCinemaItem
                            {
                                CinemaID           = "8000",
                                DivisionCode       = "1",
                                DetailDivisionCode = "0001",
                            },
                            new LotteCinemaItem
                            {
                                CinemaID           = "8001",
                                DivisionCode       = "2",
                                DetailDivisionCode = "0002",
                            }
                        }
                    }
                }
            };

            _requesterMock
            .Setup(x => x.Post <GetTicketingPageResponse>(
                       It.IsAny <string>(),
                       It.IsAny <string>(),
                       It.IsAny <string>()))
            .ReturnsAsync(responseData);
            _requesterMock
            .Setup(x => x.Post <GetCinemaDetailItem>(
                       It.IsAny <string>(),
                       It.Is <string>(y =>
                                      y.Contains($"divisionCode:'1'") &&
                                      y.Contains($"detailDivisionCode:'0001'") &&
                                      y.Contains($"cinemaID:'8000'")),
                       It.IsAny <string>()))
            .ReturnsAsync(new GetCinemaDetailItem
            {
                IsOK          = "true",
                ResultMessage = "SUCCESS",
                CinemaDetail  = new LotteCinemaItem
                {
                    CinemaID           = "8000",
                    DivisionCode       = "1",
                    DetailDivisionCode = "0001",
                    Address            = "Cinema 8000"
                }
            });
            _requesterMock
            .Setup(x => x.Post <GetCinemaDetailItem>(
                       It.IsAny <string>(),
                       It.Is <string>(y =>
                                      y.Contains($"divisionCode:'2'") &&
                                      y.Contains($"detailDivisionCode:'0002'") &&
                                      y.Contains($"cinemaID:'8001'")),
                       It.IsAny <string>()))
            .ReturnsAsync(new GetCinemaDetailItem
            {
                IsOK          = "true",
                ResultMessage = "SUCCESS",
                CinemaDetail  = new LotteCinemaItem
                {
                    CinemaID           = "8001",
                    DivisionCode       = "2",
                    DetailDivisionCode = "0002",
                    Address            = "Cinema 8001"
                }
            });
            _requesterMock
            .Setup(x => x.Post <GetPlaySequenceResponse>(
                       It.IsAny <string>(),
                       It.Is <string>(y =>
                                      y.Contains("MethodName:'GetPlaySequence'") &&
                                      y.Contains("playDate:'20191129'") &&
                                      y.Contains("cinemaID:'1|0001|8000'") &&
                                      y.Contains("representationMovieCode:'10001'")),
                       It.IsAny <string>()))
            .ReturnsAsync(new GetPlaySequenceResponse
            {
                IsOK          = "true",
                ResultMessage = "SUCCESS",
                PlaySeqs      = new DataItem <LotteMovieSession>
                {
                    ItemCount = 2,
                    Items     = new List <LotteMovieSession>
                    {
                        new LotteMovieSession
                        {
                            CinemaID  = "8000",
                            PlayDt    = "20191129",
                            StartTime = "1945"
                        },
                        new LotteMovieSession
                        {
                            CinemaID  = "8000",
                            PlayDt    = "20191129",
                            StartTime = "2030"
                        }
                    }
                }
            });
            _requesterMock
            .Setup(x => x.Post <GetPlaySequenceResponse>(
                       It.IsAny <string>(),
                       It.Is <string>(y =>
                                      y.Contains("MethodName:'GetPlaySequence'") &&
                                      y.Contains("playDate:'20191129'") &&
                                      y.Contains("cinemaID:'2|0002|8001'") &&
                                      y.Contains("representationMovieCode:'10001'")),
                       It.IsAny <string>()))
            .ReturnsAsync(new GetPlaySequenceResponse
            {
                IsOK          = "true",
                ResultMessage = "SUCCESS",
                PlaySeqs      = new DataItem <LotteMovieSession>
                {
                    ItemCount = 2,
                    Items     = new List <LotteMovieSession>
                    {
                        new LotteMovieSession
                        {
                            CinemaID  = "8001",
                            PlayDt    = "20191129",
                            StartTime = "1700"
                        }
                    }
                }
            });

            // action
            var service  = new LotteService(_requesterMock.Object);
            var response = await service.GetMovieSessions("10001");

            // assert
            Assert.IsTrue(response.Success);
            Assert.AreEqual(3, response.Data.Count);

            Assert.AreEqual("10001", response.Data[0].MovieId);
            Assert.AreEqual("Cinema 8000", response.Data[0].Location);
            Assert.AreEqual("20191129", response.Data[0].ShowDate);
            Assert.AreEqual("1945", response.Data[0].ShowTime);

            Assert.AreEqual("10001", response.Data[1].MovieId);
            Assert.AreEqual("Cinema 8000", response.Data[1].Location);
            Assert.AreEqual("20191129", response.Data[1].ShowDate);
            Assert.AreEqual("2030", response.Data[1].ShowTime);

            Assert.AreEqual("10001", response.Data[2].MovieId);
            Assert.AreEqual("Cinema 8001", response.Data[2].Location);
            Assert.AreEqual("20191129", response.Data[2].ShowDate);
            Assert.AreEqual("1700", response.Data[2].ShowTime);
        }