In normal operation, the payer's MMO would connect directly to Mojaloop to arrange a funds transfer to the payee's MMO. In testing, however, we must inspect every message to validate that they are correctly formed. To achieve this, the ITP acts as a transparent proxy between all components. By configuring endpoint URLs within component A to point at the ITP instead of directly to component B, the ITP can store all messages and forward them onto component B.
In order to recognise the sender and intended recipient of each message received by the test platform, this information must be embedded within the message. Specifically, the test platform expects that the base URL for each request will contain a UUID corresponding to both the sender and intended recipients of the message. Normally, the test platform will insert these UUIDs transparently so that it is not necessary to know which component corresponds to which UUID, but it can be helpful for debugging to know which UUID is which:
- SP: 114511be-74e9-49d5-b93e-b4a461e01626
- MMO1: e5f5e817-94d6-4a43-a7ec-f7274b6d85c2
- Mojaloop: b2a85076-b748-4d93-8df1-2b39844e6d4b
- MMO2: e602a859-a25f-4d37-9abe-0ac09fb734af
Within a SUT, the base URL of each component should be configured according to the following scheme:
session_uuid corresponds to a unique ID for each testing session, and
helps the test platform to validate incoming messages to ensure that the
expected test-cases are being correctly matched.
itp_url is the base URL of
the test platform (e.g.
my_uuid is the
UUID of the component which is being tested, and
recipient_uuid is the UUID of
the component to which the request will be made.
Thus, the URL that an MMO1 test subject should use to send messages to Mojaloop (through the test platform) would be:
Since the simulators are within the control of the test platform, we can
slightly simplify the request URLs compared to SUTs. In particular, the
simulators use a
traceparent header in place of the
session_uuid from above.
For this reason base URLs used by each simulator have a simpler structure
Thus, the URL that an MMO1 simulator should use to send messages to Mojaloop (through the test platform) would be: