示例#1
0
        private static QueryStringReader CreateQueryParameterDiscoveryForAll(IResourceGraph resourceGraph,
                                                                             JsonApiRequest request, IJsonApiOptions options, FakeRequestQueryStringAccessor queryStringAccessor)
        {
            var resourceFactory = new ResourceFactory(new ServiceContainer());

            var filterReader         = new FilterQueryStringParameterReader(request, resourceGraph, resourceFactory, options);
            var sortReader           = new SortQueryStringParameterReader(request, resourceGraph);
            var sparseFieldSetReader = new SparseFieldSetQueryStringParameterReader(request, resourceGraph);
            var paginationReader     = new PaginationQueryStringParameterReader(request, resourceGraph, options);
            var defaultsReader       = new DefaultsQueryStringParameterReader(options);
            var nullsReader          = new NullsQueryStringParameterReader(options);

            var readers = new List <IQueryStringParameterReader>
            {
                filterReader, sortReader, sparseFieldSetReader, paginationReader, defaultsReader, nullsReader
            };

            return(new QueryStringReader(options, queryStringAccessor, readers, NullLoggerFactory.Instance));
        }
示例#2
0
        public void Reader_Outcome(string queryStringParameterValue, DefaultValueHandling optionsDefaultValue, bool optionsAllowOverride, DefaultValueHandling expected)
        {
            // Arrange
            var options = new JsonApiOptions
            {
                SerializerSettings = { DefaultValueHandling = optionsDefaultValue },
                AllowQueryStringOverrideForSerializerDefaultValueHandling = optionsAllowOverride
            };

            var reader = new DefaultsQueryStringParameterReader(options);

            // Act
            if (reader.IsEnabled(DisableQueryStringAttribute.Empty))
            {
                reader.Read("defaults", queryStringParameterValue);
            }

            // Assert
            reader.SerializerDefaultValueHandling.Should().Be(expected);
        }