示例#1
0
        /// <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;
            }
        }
示例#2
0
 /// <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();
     }
 }
示例#3
0
        /// <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));
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }