{"id":15156050,"url":"https://github.com/attiand/assertj-jaxrs","last_synced_at":"2025-08-11T02:07:05.598Z","repository":{"id":70274933,"uuid":"323667547","full_name":"attiand/assertj-jaxrs","owner":"attiand","description":"Provides assertj assertions to jaxrs responces","archived":false,"fork":false,"pushed_at":"2024-02-19T22:59:01.000Z","size":162,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-28T21:45:30.866Z","etag":null,"topics":["assertj","assertj-jaxrs","jaxrs","quarkus"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/attiand.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-22T15:44:31.000Z","updated_at":"2023-04-13T14:31:27.000Z","dependencies_parsed_at":"2024-09-26T19:01:17.992Z","dependency_job_id":"8da58549-9fa3-4a52-a402-da21c8d71878","html_url":"https://github.com/attiand/assertj-jaxrs","commit_stats":{"total_commits":40,"total_committers":2,"mean_commits":20.0,"dds":"0.025000000000000022","last_synced_commit":"e17366c67c66c7f593e949c91c08e2a387be42ce"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/attiand/assertj-jaxrs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attiand%2Fassertj-jaxrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attiand%2Fassertj-jaxrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attiand%2Fassertj-jaxrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attiand%2Fassertj-jaxrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/attiand","download_url":"https://codeload.github.com/attiand/assertj-jaxrs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attiand%2Fassertj-jaxrs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269819032,"owners_count":24480087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assertj","assertj-jaxrs","jaxrs","quarkus"],"created_at":"2024-09-26T19:01:07.601Z","updated_at":"2025-08-11T02:07:05.538Z","avatar_url":"https://github.com/attiand.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# assertj-jaxrs\n\nLightweight library that provides AssertJ custom assertions to JAX-RS responses. \n\nExample:\n```java\ntry (Response response = target.path(\"/resource\").request().get()) {\n   assertThat(response).hasStatusCode(Status.OK)\n      .hasMediaType(MediaType.APPLICATION_JSON_TYPE)\n      .entityAs(ExampleRepresentation.class)\n      .satisfies(e -\u003e {\n         assertThat(e.getName()).isEqualTo(\"myname\");\n         assertThat(e.getValue()).isEqualTo(10);\n      });\n}\n```\nFor more examples se integration tests:\n* [Status code](assertj-jaxrs-core/src/test/java/com/github/attiand/assertj/jaxrs/StatusCodeIT.java)\n* [Headers](assertj-jaxrs-core/src/test/java/com/github/attiand/assertj/jaxrs/HeaderIT.java)\n* [Cookies](assertj-jaxrs-core/src/test/java/com/github/attiand/assertj/jaxrs/CookieIT.java)\n* [Entity](assertj-jaxrs-core/src/test/java/com/github/attiand/assertj/jaxrs/EntityIT.java)\n* [MediaType](assertj-jaxrs-core/src/test/java/com/github/attiand/assertj/jaxrs/MediaTypeIT.java)\n* [Date](assertj-jaxrs-core/src/test/java/com/github/attiand/assertj/jaxrs/DateIT.java)\n* [Link](assertj-jaxrs-core/src/test/java/com/github/attiand/assertj/jaxrs/LinkIT.java)\n* [Location](assertj-jaxrs-core/src/test/java/com/github/attiand/assertj/jaxrs/LocationIT.java)\n* [Language](assertj-jaxrs-core/src/test/java/com/github/attiand/assertj/jaxrs/LanguageIT.java)\n\nAdd the following dependency :\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.attiand\u003c/groupId\u003e\n    \u003cartifactId\u003eassertj-jaxrs-core\u003c/artifactId\u003e\n    \u003cversion\u003e${version}\u003c/version\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n```\nYou also need a jaxrs client implementation, for example: \n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.jboss.resteasy\u003c/groupId\u003e\n    \u003cartifactId\u003eresteasy-client\u003c/artifactId\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n\n# Json Pointer\n\nSimple support for asserting JSON Pointer values if you don't have the entity type available:\n```java\ntry (Response response = target.path(\"/resource\").request().get()) {\n   assertThat(response)\n      .hasStatusCode(Status.OK)\n      .entityAs(JSON)\n      .satisfies(e -\u003e {\n         assertThat(e).pathValue(\"/name\").asString().isEqualTo(\"name\");\n         assertThat(e).pathValue(\"/value\").asInteger().isEqualTo(10);\n    });\n}\n```\nAdd the following dependency:\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.attiand\u003c/groupId\u003e\n    \u003cartifactId\u003eassertj-jaxrs-json\u003c/artifactId\u003e\n    \u003cversion\u003e${version}\u003c/version\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n```\nYou also need a `javax.json-api` implementation, for example: \n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.eclipse\u003c/groupId\u003e\n    \u003cartifactId\u003eyasson\u003c/artifactId\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n\n# XML Xpath\n```java\ntry (Response response = target.path(\"/resource\").request().get()) {\n   assertThat(response)\n      .hasStatusCode(Status.OK)\n      .entityAs(XML)\n      .satisfies(e -\u003e {\n         assertThat(e).xpath(\"/user/name\").asString().isEqualTo(\"name\");\n         assertThat(e).xpath(\"/user/value\").asInteger().isEqualTo(10);         \n    });\n}\n\n```\nAdd the following dependency:\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.attiand\u003c/groupId\u003e\n    \u003cartifactId\u003eassertj-jaxrs-xml\u003c/artifactId\u003e\n    \u003cversion\u003e${version}\u003c/version\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n\n# JUnit Jupiter extension\nThere is a JUnit 5 extension that provides a jax-rs `Client` parameter resolver that holds a single instance until all tests are executed.\n```java\n@ExtendWith(AssertjJaxrsExtension.class)\nclass MyTest {\n   @Test\n   void shouldAssertStatusCodeAsInteger(Client client) {\n      WebTarget target = client.target(\"http://localhost:8081\");\n   \n      try (Response response = target.path(\"/resource\").request().get()) {\n         assertThat(response).hasStatusCode(200);\n      }\n   }\n}\n```\nAdd the following dependency:\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.attiand\u003c/groupId\u003e\n    \u003cartifactId\u003eassertj-jaxrs-junit-jupiter\u003c/artifactId\u003e\n    \u003cversion\u003e${version}\u003c/version\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n## Quarkus\n\nNote that the `@QuarkusTest` extension does not work well with a `WebTarget` parameter resolver. You can however run Quarkus tests like this.\n```java\n@QuarkusTest\nclass GreetingResourceTest {\n   @TestHTTPResource\n   String uri;\n\n   private static final Client client = ClientBuilder.newClient();\n\n   @AfterAll\n   static void afterAll() {\n      client.close();\n   }\n\n   @Test\n   void testHelloEndpointJaxrs() {\n      WebTarget target = client.target(uri);\n\n      try (Response response = target.path(\"/hello-resteasy\").request().get()) {\n         assertThat(response)\n            .hasStatusCode(200)\n            .entityAsText()\n            .isEqualTo(\"Hello RESTEasy\");\n      }\n   }\n}\n\n```\n# Revision history\n\n`1.0.0` - First version\n\n`2.0.0` - Added XPath, Json braking change path -\u003e pathValue\n\n`2.0.1` - Added maven wrapper, javadoc builds on java 17\n\n`3.0.0` - Use jaxrs 3.0 \u0026 jsonp 2.0 (jakarta name space)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fattiand%2Fassertj-jaxrs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fattiand%2Fassertj-jaxrs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fattiand%2Fassertj-jaxrs/lists"}