Example #1
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 #2
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 #3
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 #4
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);
        }