{"id":21940789,"url":"https://github.com/ttddyy/datasource-assert","last_synced_at":"2025-07-22T04:31:11.526Z","repository":{"id":57737874,"uuid":"68020382","full_name":"ttddyy/datasource-assert","owner":"ttddyy","description":"Provides assertion APIs for query executions with assertEquals and assertThat(AssertJ and Hamcrest)","archived":true,"fork":false,"pushed_at":"2023-11-22T21:54:47.000Z","size":2298,"stargazers_count":35,"open_issues_count":1,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-09T08:03:42.001Z","etag":null,"topics":["assertj","datasource","datasource-proxy","hamcrest","java","jdbc","junit","testing","testng","unittest"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ttddyy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2016-09-12T15:12:03.000Z","updated_at":"2024-08-11T17:18:56.000Z","dependencies_parsed_at":"2024-11-29T02:37:57.077Z","dependency_job_id":"9c9f8b31-3451-407b-9d44-a592284bc922","html_url":"https://github.com/ttddyy/datasource-assert","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ttddyy/datasource-assert","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttddyy%2Fdatasource-assert","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttddyy%2Fdatasource-assert/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttddyy%2Fdatasource-assert/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttddyy%2Fdatasource-assert/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ttddyy","download_url":"https://codeload.github.com/ttddyy/datasource-assert/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttddyy%2Fdatasource-assert/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266427518,"owners_count":23926812,"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-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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","datasource","datasource-proxy","hamcrest","java","jdbc","junit","testing","testng","unittest"],"created_at":"2024-11-29T02:37:44.340Z","updated_at":"2025-07-22T04:31:11.004Z","avatar_url":"https://github.com/ttddyy.png","language":"Java","readme":"# datasource-assert\n\n![Maven Central][badge-maven-central]\n\n`datasource-assert` provides assertion API for DataSource to validate query executions.\n\nThe assertion API is used for assertion methods such as `assertEquals` in [JUnit][junit] and [TestNG][testng].\nAlso, it comes with support for `assertThat` in [AssertJ][assertj] and [Hamcrest][hamcrest].\n\n\n## Artifacts\n\n### Released Version\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003enet.ttddyy\u003c/groupId\u003e\n  \u003cartifactId\u003edatasource-assert\u003c/artifactId\u003e\n  \u003cversion\u003e[LATEST_VERSION]\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Documentation\n\n- User Guide\n  - [Latest Released Version][user-guide-latest]\n  - [Snapshot Version][user-guide-snapshot]\n- Javadoc\n  - [Latest Released Version][javadoc-latest]\n  - [Snapshot Version][javadoc-snapshot]\n\n\n## How to use\n\nWrap your datasource with `ProxyTestDataSource`.\n\n```java\n@Test\npublic void myTest() {\n  ProxyTestDataSource ds = new ProxyTestDataSource(actualDataSource);\n  // rest of test \n}\n```\n\nIf you want to reuse the same `ProxyTestDataSource` instance, you could `reset()` it between tests.\n\n```java\n@After  // @AfterEach, @AfterMethod\npublic void tearDown() {\n   this.ds.reset();\n}\n``` \n\n\n### Regular assertions\n\nFor normal assertions such as [JUnit][junit]/[TestNG][testng] `assertEquals`, use methods from `ProxyTestDataSource`. \n\n```java\nassertEquals(3, ds.getQueryExecutions().size());\nPreparedExecution pe = ds.getFirstPrepared();\nassertTrue(pe.isSuccess());\n```\n\nSee more details on [\"Usage examples\"](#usage-examples).\n\n### AssertJ\n\nStatic import `assertThat` from `DataSourceAssertAssertions`.\n\n```java\nimport static net.ttddyy.dsproxy.asserts.assertj.DataSourceAssertAssertions.assertThat;\n```\n\n```java\nassertThat(ds.getQueryExecutions()).hasSize(1);\nassertThat(ds.getQueryExecutions().get(0)).isStatement().asStatement().query().isEqualTo(\"SELECT id FROM emp\");\nassertThat(ds.getFirstPrepared()).containsParam(1, \"foo\");\n```\n\nSee more details on [\"Usage examples\"](#usage-examples).\n\n### Hamcrest\n\nUse matchers from `DataSourceAssertMatchers`.\n\n```java\nassertThat(ds, statementCount(3));\nassertThat(ds, executions(1, is(statement())));\nassertThat((StatementExecution) statements.get(0), query(is(\"SELECT id FROM emp\")));\nassertThat(ds.getFirstPrepared(), paramAsInteger(1, is(100)));\n```\n\nSee more details on [\"Usage examples\"](#usage-examples).\n\n## Usage examples\n\n### Regular assertions(assertEquals, etc)\n- [SimpleAssertionApiCheck](../master/src/test/java/net/ttddyy/dsproxy/asserts/api/SimpleAssertionApiCheck.java)\n\n### With AssertJ\n- [AssertJAssertionApiCheck](../master/src/test/java/net/ttddyy/dsproxy/asserts/api/AssertJAssertionApiCheck.java)\n\n### With Hamcrest\n- [HamcrestAssertionApiCheck](../master/src/test/java/net/ttddyy/dsproxy/asserts/api/HamcrestAssertionApiCheck.java)\n\n\n----\n\n[badge-maven-central]: https://maven-badges.herokuapp.com/maven-central/net.ttddyy/datasource-assert/badge.svg\n[user-guide-latest]:   https://ttddyy.github.io/datasource-assert/docs/current/user-guide/index.html\n[user-guide-snapshot]: https://ttddyy.github.io/datasource-assert/docs/snapshot/user-guide/index.html\n[javadoc-latest]:      https://ttddyy.github.io/datasource-assert/docs/current/api/index.html\n[javadoc-snapshot]:    https://ttddyy.github.io/datasource-assert/docs/snapshot/api/index.html\n[datasource-proxy]:    https://github.com/ttddyy/datasource-proxy\n[junit]:     http://junit.org/\n[testng]:    http://testng.org/\n[assertj]:   http://joel-costigliola.github.io/assertj/\n[hamcrest]:  http://hamcrest.org","funding_links":[],"categories":["测试"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttddyy%2Fdatasource-assert","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fttddyy%2Fdatasource-assert","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttddyy%2Fdatasource-assert/lists"}