public ParResponse requestPushedUri(
      URI pushedAuthorizationRequestUri, ParBodyBuilder parBodyBuilder) {

    var headers =
        List.of(
            new Header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON),
            new Header(HttpHeaders.CONTENT_TYPE, UrlFormBodyBuilder.MEDIA_TYPE));

    var req = new Request(pushedAuthorizationRequestUri, "POST", headers, parBodyBuilder.build());

    var res = httpClient.call(req);
    if (res.status() != 201) {
      throw HttpExceptions.httpFailBadStatus(
          req.method(), pushedAuthorizationRequestUri, res.status());
    }

    return JsonCodec.readValue(res.body(), ParResponse.class);
  }
@Test
  void requestPushedUri_badStatus(WireMockRuntimeInfo wm) {
    var path = "/auth/par";
    stubFor(post(path).willReturn(badRequest()));

    var base = URI.create(wm.getHttpBaseUrl());
    var parUri = base.resolve(path);

    var e =
        assertThrows(
            HttpException.class, () -> client.requestPushedUri(parUri, ParBodyBuilder.create()));

    assertEquals(
        "http request failed: bad status 'POST %s' status=400".formatted(parUri), e.getMessage());
  }