public async Task LeavesOtherQueryParameters()
    {
        var httpContext = new DefaultHttpContext();

        httpContext.Request.QueryString = new QueryString("?z=1&a=2");
        var context = new RequestTransformContext()
        {
            Query = new QueryTransformContext(httpContext.Request),
        };
        var transform = new QueryParameterRemoveTransform("z");
        await transform.ApplyAsync(context);

        Assert.Equal("?a=2", context.Query.QueryString.Value);
    }
    public async Task DoesNotFailOnNonExistingQueryParameter()
    {
        var httpContext = new DefaultHttpContext();

        httpContext.Request.QueryString = new QueryString("?z=1");
        var context = new RequestTransformContext()
        {
            Query = new QueryTransformContext(httpContext.Request),
        };
        var transform = new QueryParameterRemoveTransform("a");
        await transform.ApplyAsync(context);

        Assert.Equal("?z=1", context.Query.QueryString.Value);
    }
    public async Task RemovesExistingQueryParameter()
    {
        var httpContext = new DefaultHttpContext();

        httpContext.Request.QueryString = new QueryString("?z=1");
        var context = new RequestTransformContext()
        {
            Query = new QueryTransformContext(httpContext.Request)
        };
        var transform = new QueryParameterRemoveTransform("z");
        await transform.ApplyAsync(context);

        Assert.False(context.Query.QueryString.HasValue);
    }