Skip to content

Mastercard/flow

Folders and files

NameName
Last commit message
Last commit date
Feb 24, 2025
Oct 3, 2024
Oct 3, 2024
Feb 17, 2025
Oct 3, 2024
Oct 3, 2024
Oct 30, 2024
Feb 17, 2025
Feb 17, 2025
Oct 3, 2024
Jan 20, 2025
Aug 3, 2022
Oct 29, 2024
Mar 17, 2023
Aug 3, 2022
Oct 3, 2024
Sep 26, 2024
Aug 11, 2022
Sep 25, 2024
Feb 25, 2025

Repository files navigation

Quality Gate Status Coverage Maven Central

flow

Testing framework

  • api Core type declarations
  • message Implementations of the Message interface
  • builder Implementations of the Flow and Interaction interfaces
  • model Implementations of the Model interface
  • validation Checking model consistency
  • assert Comparing models against systems
  • report Visualising assertion results
  • bom Bill of materials
  • aggregator Aggregates build artifacts
  • example Service constellation to exercise the flow framework
  • doc Documentation resources

Overview

This project provides a framework in which the flow of data in a system can be modelled. This model can then be used to drive testing, both of the complete system and of subsystems in isolation. These tests produce a rich execution report, for example.

This document describes the motivations for this approach.

Usage

  • Quickstart guide: Illustrates the construction of a simple system model and its usage.
  • Further reading: Covers more advanced usage.
  • The submodules under example illustrate a complete service constellation with flow-based testing
Artifact dependency structure
Loading
graph TB
  subgraph com.mastercard.test.flow
    api[<a href='https://github.com/Mastercard/flow/tree/main/api'>api</a>]
    assert-core[<a href='https://github.com/Mastercard/flow/tree/main/assert/assert-core'>assert-core</a>]
    assert-filter[<a href='https://github.com/Mastercard/flow/tree/main/assert/assert-filter'>assert-filter</a>]
    assert-junit4[<a href='https://github.com/Mastercard/flow/tree/main/assert/assert-junit4'>assert-junit4</a>]
    assert-junit5[<a href='https://github.com/Mastercard/flow/tree/main/assert/assert-junit5'>assert-junit5</a>]
    builder[<a href='https://github.com/Mastercard/flow/tree/main/builder'>builder</a>]
    coppice[<a href='https://github.com/Mastercard/flow/tree/main/validation/coppice'>coppice</a>]
    duct[<a href='https://github.com/Mastercard/flow/tree/main/report/duct'>duct</a>]
    message-bytes[<a href='https://github.com/Mastercard/flow/tree/main/message/message-bytes'>message-bytes</a>]
    message-core[<a href='https://github.com/Mastercard/flow/tree/main/message/message-core'>message-core</a>]
    message-http[<a href='https://github.com/Mastercard/flow/tree/main/message/message-http'>message-http</a>]
    message-json[<a href='https://github.com/Mastercard/flow/tree/main/message/message-json'>message-json</a>]
    message-sql[<a href='https://github.com/Mastercard/flow/tree/main/message/message-sql'>message-sql</a>]
    message-text[<a href='https://github.com/Mastercard/flow/tree/main/message/message-text'>message-text</a>]
    message-web[<a href='https://github.com/Mastercard/flow/tree/main/message/message-web'>message-web</a>]
    message-xml[<a href='https://github.com/Mastercard/flow/tree/main/message/message-xml'>message-xml</a>]
    model[<a href='https://github.com/Mastercard/flow/tree/main/model'>model</a>]
    report-core[<a href='https://github.com/Mastercard/flow/tree/main/report/report-core'>report-core</a>]
    report-ng[<a href='https://github.com/Mastercard/flow/tree/main/report/report-ng'>report-ng</a>]
    validation-core[<a href='https://github.com/Mastercard/flow/tree/main/validation/validation-core'>validation-core</a>]
    validation-junit4[<a href='https://github.com/Mastercard/flow/tree/main/validation/validation-junit4'>validation-junit4</a>]
    validation-junit5[<a href='https://github.com/Mastercard/flow/tree/main/validation/validation-junit5'>validation-junit5</a>]
  end
  api --> message-core
  api --> builder
  api --> model
  api --> validation-core
  api --> report-core
  assert-core --> assert-junit4
  assert-core --> assert-junit5
  assert-filter --> assert-core
  message-core --> message-bytes
  message-core --> message-http
  message-core --> message-json
  message-core --> message-sql
  message-core --> message-text
  message-core --> message-web
  message-core --> message-xml
  report-core --> assert-filter
  report-core --> duct
  report-ng --> report-core
  validation-core --> validation-junit4
  validation-core --> validation-junit5
  validation-core --> coppice

Links