/// <summary> /// Filter the object DRM adn Episode count criteria /// </summary> /// <param name="JsonObject">Object</param> /// <returns>Object filtered</returns> public static FilteredPayLoad FilterFullPayLoad(FullPayLoad JsonObject) { try { if (JsonObject == null) { throw new NullReferenceException("Please inform a Full Pay Load object"); } if (JsonObject.PayLoad == null) { throw new NullReferenceException("Please inform a Full Pay Load object"); } IEnumerable <PayLoad> filteredResult = JsonObject.PayLoad.Where(p => p.Drm && p.EpisodeCount > 0 && p.Image != null); List <ShortPayLoad> formatedResult = filteredResult.Select(p => new ShortPayLoad() { Image = p.Image.ShowImage, Slug = p.Slug, Title = p.Title }).ToList(); FilteredPayLoad result = new FilteredPayLoad() { Response = formatedResult }; return(result); } catch (Exception ex) { throw ex; } }
/// <summary> /// Comparing the source and the result /// </summary> /// <param name="filtered">filtered list</param> /// <param name="full">full list</param> public void Compare(FilteredPayLoad filtered, FullPayLoad full) { foreach (var response in filtered.Response.Take(5000)) { full.PayLoad.Any(p => p.Image != null && p.Image.ShowImage == response.Image).Should().BeTrue(); full.PayLoad.Any(p => p.Slug == response.Slug).Should().BeTrue(); full.PayLoad.Any(p => p.Title == response.Title).Should().BeTrue(); } }
/// <summary> /// Calling the controller /// </summary> /// <param name="input"></param> /// <returns></returns> public HttpResponseMessage Validate(FullPayLoad input) { // Arrange var controller = new FilterController(); controller.Request = new HttpRequestMessage(); controller.Configuration = new HttpConfiguration(); TestData data = TestData.Instance; // Act return(controller.Post(input)); }
public HttpResponseMessage Post(FullPayLoad JsonObject) { HttpResponseMessage response; try { response = Request.CreateResponse(HttpStatusCode.OK, Helper.FilterFullPayLoad(JsonObject)); } catch { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ErrorMessage { Error = "Could not decode request: JSON parsing failed" }); } return(response); }
public void ValidateInputUsingJsonFile() { string allText = System.IO.File.ReadAllText(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"base\SampleInput.json")); FullPayLoad jsonObject = JsonConvert.DeserializeObject <FullPayLoad>(allText); //Act var responseMessage = Validate(jsonObject); // Assert responseMessage.StatusCode.Should().Be(HttpStatusCode.OK); FilteredPayLoad response; (responseMessage.TryGetContentValue <FilteredPayLoad>(out response)).Should().BeTrue(); response.Response.Count.Should().Be(jsonObject.PayLoad.Count - 3); Compare(response, jsonObject); }