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)); }
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); }