public Task<MovieTrailer> ParseTrailerResponse(string response) { return Task.Run<MovieTrailer>(() => { XmlDocument doc = new XmlDocument(); doc.LoadXml(response); var node = doc.SelectSingleNode("//movie"); if (node == null) { return null; } MovieTrailer movie = new MovieTrailer(); movie.SourceId = node.Attributes["imdbID"].Value; movie.Title = node.Attributes["title"].Value; movie.CoverUrl = node.Attributes["poster"] == null ? string.Empty : node.Attributes["poster"].Value; movie.Description = node.Attributes["plot"].Value; movie.Source = Models.Source.OMDB; int releaseYear; if (int.TryParse(node.Attributes["year"].Value, out releaseYear)) { movie.ReleaseYear = releaseYear; } ulong votes; if (ulong.TryParse(node.Attributes["imdbVotes"].Value, System.Globalization.NumberStyles.AllowThousands, new System.Globalization.CultureInfo("en-US"), out votes)) { movie.Votes = votes; } return movie; }); }
public async Task GetTrailerResultInDataProp() { var testTrailer = new MovieTrailer() { SourceId = "id", Title = "MyTrailer", ReleaseYear = 2015 }; _serviceMock.Setup(s => s.GetTrailer(It.IsAny<string>(), It.IsAny<Source>())).ReturnsAsync(testTrailer); var response = await _controller.GetTrailer("id", Source.OMDB); Assert.IsFalse(response.IsError); Assert.AreEqual(testTrailer.SourceId, response.Data.SourceId); Assert.AreEqual(testTrailer.Title, response.Data.Title); Assert.AreEqual(testTrailer.ReleaseYear, response.Data.ReleaseYear); }
public void TestInit() { _omdbDataSourceMock = new Mock<IMovieDataAccess>(); _omdbDataSourceMock.SetupGet(s => s.Source).Returns(Source.OMDB); var omdbData = GenerateTestData(Source.OMDB, 10); _omdbDataSourceMock.Setup(s => s.Search(It.IsAny<DataSearchRequest>(), It.IsAny<int>())).ReturnsAsync(new DataSearchResponse() { Movies = omdbData, TotalResults = 10 }); var omdbTrailer = new MovieTrailer() { SourceId = "omId", Title = "OMDBTrailer", ReleaseYear = 2015 }; _omdbDataSourceMock.Setup(s => s.Get(It.IsAny<string>())).ReturnsAsync(omdbTrailer); _youtubeDataSourceMock = new Mock<IMovieDataAccess>(); _youtubeDataSourceMock.SetupGet(s => s.Source).Returns(Source.Youtube); _youtubeDataSourceMock.Setup(s => s.Search(It.IsAny<DataSearchRequest>(), It.IsAny<int>())) .Returns<DataSearchRequest, int>( (r, c) => Task <DataSearchResponse>.Run(() => new DataSearchResponse() { Movies = GenerateTestData(Source.Youtube, c > 100 ? 100 : c), TotalResults = 100 })); var youtubeTrailer = new MovieTrailer() { SourceId = "youtubeId", Title = "YoutubeTrailer", ReleaseYear = 2013 }; _youtubeDataSourceMock.Setup(s => s.Get(It.IsAny<string>())).ReturnsAsync(youtubeTrailer); _service = new MovieTrailerService(new IMovieDataAccess[] { _omdbDataSourceMock.Object, _youtubeDataSourceMock.Object }); }