{"id":28577475,"url":"https://github.com/mastercard/flow","last_synced_at":"2025-06-11T00:38:49.238Z","repository":{"id":52274594,"uuid":"520525840","full_name":"Mastercard/flow","owner":"Mastercard","description":"Testing framework","archived":false,"fork":false,"pushed_at":"2025-06-09T09:42:21.000Z","size":6789,"stargazers_count":22,"open_issues_count":41,"forks_count":20,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-06-09T10:30:50.034Z","etag":null,"topics":["java","testing"],"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/Mastercard.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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,"zenodo":null}},"created_at":"2022-08-02T14:13:05.000Z","updated_at":"2025-06-09T09:41:24.000Z","dependencies_parsed_at":"2023-09-21T18:47:44.895Z","dependency_job_id":"96ee1ad4-ad1e-4561-b728-44239afa80f8","html_url":"https://github.com/Mastercard/flow","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mastercard%2Fflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mastercard%2Fflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mastercard%2Fflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mastercard%2Fflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mastercard","download_url":"https://codeload.github.com/Mastercard/flow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mastercard%2Fflow/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259177332,"owners_count":22817349,"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","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":["java","testing"],"created_at":"2025-06-11T00:37:52.637Z","updated_at":"2025-06-11T00:38:49.212Z","avatar_url":"https://github.com/Mastercard.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n[![](https://github.com/Mastercard/flow/actions/workflows/maven.yml/badge.svg)](https://github.com/Mastercard/flow/actions/workflows/maven.yml)\n[![](https://github.com/Mastercard/flow/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/Mastercard/flow/actions/workflows/codeql-analysis.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Mastercard_flow\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Mastercard_flow)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Mastercard_flow\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=Mastercard_flow)\n[![](https://img.shields.io/github/license/Mastercard/flow)](LICENCE)\n[![Maven Central](https://img.shields.io/maven-central/v/com.mastercard.test.flow/parent)](https://search.maven.org/search?q=com.mastercard.test.flow)\n\n\u003c!-- title start --\u003e\n\n# flow\n\nTesting framework\n\n\n\n * [api](api) Core type declarations\n * [message](message) Implementations of the Message interface\n * [builder](builder) Implementations of the Flow and Interaction interfaces\n * [model](model) Implementations of the Model interface\n * [validation](validation) Checking model consistency\n * [assert](assert) Comparing models against systems\n * [report](report) Visualising assertion results\n * [bom](bom) Bill of materials\n * [aggregator](aggregator) Aggregates build artifacts\n * [example](example) Service constellation to exercise the flow framework\n * [doc](doc) Documentation resources\n\n\u003c!-- title end --\u003e\n\n## Overview\n\nThis project provides a framework in which the flow of data in a system can be modelled.\nThis model can then be used to drive testing, both of the complete system and of subsystems in isolation.\nThese tests produce a rich execution report, [for example](https://mastercard.github.io/flow/static/app-itest/target/mctf/latest/index.html).\n\n[This document describes the motivations for this approach](doc/src/main/markdown/motivation/index.md).\n\n## Usage\n\n * [Quickstart guide](doc/src/main/markdown/quickstart.md): Illustrates the construction of a simple system model and its usage.\n * [Further reading](doc/src/main/markdown/further.md): Covers more advanced usage.\n * The submodules under [example](example) illustrate a complete service constellation with flow-based testing\n\n\u003cdetails\u003e\n\u003csummary\u003eArtifact dependency structure\u003c/summary\u003e\n\n\u003c!-- start_module_diagram:framework --\u003e\n\n```mermaid\ngraph TB\n  subgraph com.mastercard.test.flow\n    api[\u003ca href='https://github.com/Mastercard/flow/tree/main/api'\u003eapi\u003c/a\u003e]\n    assert-core[\u003ca href='https://github.com/Mastercard/flow/tree/main/assert/assert-core'\u003eassert-core\u003c/a\u003e]\n    assert-filter[\u003ca href='https://github.com/Mastercard/flow/tree/main/assert/assert-filter'\u003eassert-filter\u003c/a\u003e]\n    assert-junit4[\u003ca href='https://github.com/Mastercard/flow/tree/main/assert/assert-junit4'\u003eassert-junit4\u003c/a\u003e]\n    assert-junit5[\u003ca href='https://github.com/Mastercard/flow/tree/main/assert/assert-junit5'\u003eassert-junit5\u003c/a\u003e]\n    builder[\u003ca href='https://github.com/Mastercard/flow/tree/main/builder'\u003ebuilder\u003c/a\u003e]\n    coppice[\u003ca href='https://github.com/Mastercard/flow/tree/main/validation/coppice'\u003ecoppice\u003c/a\u003e]\n    duct[\u003ca href='https://github.com/Mastercard/flow/tree/main/report/duct'\u003educt\u003c/a\u003e]\n    message-bytes[\u003ca href='https://github.com/Mastercard/flow/tree/main/message/message-bytes'\u003emessage-bytes\u003c/a\u003e]\n    message-core[\u003ca href='https://github.com/Mastercard/flow/tree/main/message/message-core'\u003emessage-core\u003c/a\u003e]\n    message-http[\u003ca href='https://github.com/Mastercard/flow/tree/main/message/message-http'\u003emessage-http\u003c/a\u003e]\n    message-json[\u003ca href='https://github.com/Mastercard/flow/tree/main/message/message-json'\u003emessage-json\u003c/a\u003e]\n    message-sql[\u003ca href='https://github.com/Mastercard/flow/tree/main/message/message-sql'\u003emessage-sql\u003c/a\u003e]\n    message-text[\u003ca href='https://github.com/Mastercard/flow/tree/main/message/message-text'\u003emessage-text\u003c/a\u003e]\n    message-web[\u003ca href='https://github.com/Mastercard/flow/tree/main/message/message-web'\u003emessage-web\u003c/a\u003e]\n    message-xml[\u003ca href='https://github.com/Mastercard/flow/tree/main/message/message-xml'\u003emessage-xml\u003c/a\u003e]\n    model[\u003ca href='https://github.com/Mastercard/flow/tree/main/model'\u003emodel\u003c/a\u003e]\n    report-core[\u003ca href='https://github.com/Mastercard/flow/tree/main/report/report-core'\u003ereport-core\u003c/a\u003e]\n    report-ng[\u003ca href='https://github.com/Mastercard/flow/tree/main/report/report-ng'\u003ereport-ng\u003c/a\u003e]\n    validation-core[\u003ca href='https://github.com/Mastercard/flow/tree/main/validation/validation-core'\u003evalidation-core\u003c/a\u003e]\n    validation-junit4[\u003ca href='https://github.com/Mastercard/flow/tree/main/validation/validation-junit4'\u003evalidation-junit4\u003c/a\u003e]\n    validation-junit5[\u003ca href='https://github.com/Mastercard/flow/tree/main/validation/validation-junit5'\u003evalidation-junit5\u003c/a\u003e]\n  end\n  api --\u003e message-core\n  api --\u003e builder\n  api --\u003e model\n  api --\u003e validation-core\n  api --\u003e report-core\n  assert-core --\u003e assert-junit4\n  assert-core --\u003e assert-junit5\n  assert-filter --\u003e assert-core\n  message-core --\u003e message-bytes\n  message-core --\u003e message-http\n  message-core --\u003e message-json\n  message-core --\u003e message-sql\n  message-core --\u003e message-text\n  message-core --\u003e message-web\n  message-core --\u003e message-xml\n  report-core --\u003e assert-filter\n  report-core --\u003e duct\n  report-ng --\u003e report-core\n  validation-core --\u003e validation-junit4\n  validation-core --\u003e validation-junit5\n  validation-core --\u003e coppice\n```\n\n\u003c!-- end_module_diagram --\u003e\n\u003c/details\u003e\n\n## Links\n\n * This project is copyright © 2022 Mastercard, and is released under the [Apache version 2.0 licence](LICENCE).\n * [Contribution guidance](CONTRIBUTING.md).\n * [Changelog](CHANGELOG.md)\n * [Build artifacts](https://mastercard.github.io/flow/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmastercard%2Fflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmastercard%2Fflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmastercard%2Fflow/lists"}