public void ShouldBeWithQueryParameter() { var apiDescription = new ApiDescription(); var schemaGenerator = new Mock <ISchemaGenerator>(); var schemaRepository = new SchemaRepository(); var operationFilterContext = new OperationFilterContext( apiDescription, schemaGenerator.Object, schemaRepository, GetType().GetMethod("MockQueryMethod", BindingFlags.NonPublic | BindingFlags.Instance)); var openApiOperation = new OpenApiOperation(); openApiOperation.Parameters.Add(new OpenApiParameter() { Name = "query" }); var settings = Helper.Settings(); var option = Helper.JsonOptions(); var operationFilter = new RSqlOperationFilter(settings, Helper.JsonOptions()); operationFilter.Apply(openApiOperation, operationFilterContext); // one parameter openApiOperation.Parameters.Count() .Should().Be(1); var expected = openApiOperation.Parameters.First(); // In = ParameterLocation.Query expected.In .Should().Be(ParameterLocation.Query); // Name = settings.QueryField expected.Name .Should().Be(option.Value.JsonSerializerOptions.PropertyNamingPolicy.ConvertName(settings.QueryField)); // schema = string expected.Schema.Type .Should().Be("string"); }
public void ShouldBeWithPageableParameter() { var apiDescription = new ApiDescription(); var schemaGenerator = new Mock <ISchemaGenerator>(); var schemaRepository = new SchemaRepository(); var operationFilterContext = new OperationFilterContext( apiDescription, schemaGenerator.Object, schemaRepository, GetType().GetMethod("MockPageableMethod", BindingFlags.NonPublic | BindingFlags.Instance)); var openApiOperation = new OpenApiOperation(); openApiOperation.Parameters.Add(new OpenApiParameter() { Name = "pageable" }); var settings = Helper.Settings(); var option = Helper.JsonOptions(); var operationFilter = new RSqlOperationFilter(settings, option); operationFilter.Apply(openApiOperation, operationFilterContext); // one parameter openApiOperation.Parameters.Count() .Should().Be(3); // pageSize var expected = openApiOperation.Parameters.SingleOrDefault(p => p.Name == option.Value.JsonSerializerOptions.PropertyNamingPolicy.ConvertName(settings.PageSizeField)); expected.In .Should().Be(ParameterLocation.Query); // schema = number expected.Schema.Type .Should().Be("number"); // default = setting.PageSize expected.Schema.Default.As <OpenApiInteger>().Value .Should().Be(settings.PageSize); // pageNumber expected = openApiOperation.Parameters.SingleOrDefault(p => p.Name == option.Value.JsonSerializerOptions.PropertyNamingPolicy.ConvertName(settings.PageNumberField)); expected.In .Should().Be(ParameterLocation.Query); // schema = number expected.Schema.Type .Should().Be("number"); // default = 0 expected.Schema.Default.As <OpenApiInteger>().Value .Should().Be(0); // sort expected = openApiOperation.Parameters.SingleOrDefault(p => p.Name == option.Value.JsonSerializerOptions.PropertyNamingPolicy.ConvertName(settings.SortField)); expected.In .Should().Be(ParameterLocation.Query); // schema = number expected.Schema.Type .Should().Be("array"); // default = 0 expected.Schema.Items.Type .Should().Be("string"); }