Exemplo n.º 1
0
        public void ShouldBeAbleToFilterResultsWithQueryParameterFilterName_Id()
        {
            Mock <LoggerFactory> loggerFactory = new Mock <LoggerFactory>();


            var actionExecutedContext =
                BuildMockActionExecutedContext(new Dictionary <string, StringValues> {
                { "filter", "id" }
            },
                                               new OkObjectResult(_data));

            var resultsFilter = new ApiResultsFilter(loggerFactory.Object);

            resultsFilter.OnActionExecuted(actionExecutedContext);

            var result    = actionExecutedContext.Result as OkObjectResult;
            var jsonArray = JArray.Parse(JsonConvert.SerializeObject(result.Value));


            Assert.True(jsonArray.HasValues);

            foreach (var jToken in jsonArray.Children())
            {
                var jsonObject = (JObject)jToken;
                Assert.Contains(jsonObject.Properties().ToList(), p => p.Name == "id");
                Assert.Single(jsonObject.Properties().ToList());
            }
        }
Exemplo n.º 2
0
        public void ShouldReturnEmptyResultSetWithFilterNamesOfPropertiesNotInResultSet()
        {
            Mock <LoggerFactory> loggerFactory = new Mock <LoggerFactory>();


            var actionExecutedContext =
                BuildMockActionExecutedContext(new Dictionary <string, StringValues> {
                { "filter", "non" }
            },
                                               new OkObjectResult(_data));

            var resultsFilter = new ApiResultsFilter(loggerFactory.Object);

            resultsFilter.OnActionExecuted(actionExecutedContext);

            var result    = actionExecutedContext.Result as OkObjectResult;
            var jsonArray = JArray.Parse(JsonConvert.SerializeObject(result.Value));


            Assert.True(jsonArray.HasValues);

            foreach (var jToken in jsonArray.Children())
            {
                var jsonObject = (JObject)jToken;
                Assert.Empty(jsonObject.Properties().ToList());
            }
        }