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.
Within a SUT, the base URL of each component should be configured according to the following scheme:
itp_url is the base URL of the test platform (e.g.
session_uuid corresponds to a unique
ID for each testing session, and helps the test platform to validate incoming
messages to ensure that the correct test case is being executed.
is the id of the component which is being tested, and
the id of the component to which the request will be made.
Thus, the base URL that an MMO1 test subject should use to send messages to Mojaloop (through the test platform) would be:
It is not necessary to construct these URLs manually, as they will be displayed within the test platform once a test session has been created.
By default, all connections within ITP are assumed to be encrypted via mTLS. If an encrypted connection is not possible, alternative insecure connections are also available. These use the following format:
Thus, the base URL that an MMO1 test subject should use to send messages to Mojaloop (through an unencrypted connection with the test platform) would be:
Since a session UUID is encoded within the URL, it is necessary to use a new URL every time a new session is created. This can be inconvenient in cases where a SUT's URL is not easy to regularly reconfigure. In these situations, it is possible to use a "Group URL" instead. A group URL is unique for a particular user group, and a group administrator can remap the URL to point to a different test session at any time. Group URLs use the following format:
Thus, the base URL that an MMO1 test subject should use to send messages to Mojaloop (through a group URL belonging to the group with ID 99) would be:
This URL will not need reconfiguring inside the SUT when a new session is created, since the group administrator can select a new default test session for the group at any time.
Platform administrators may operate a system centrally for multiple users to use in their tests. For example, a live Mojaloop switch may be operated by platform administrators, for operators to test their connections.
In this case, it can be inconvenient for users to enter the details of the shared system themselves - especially regarding encrypted connection details. To solve this problem, the system can be designated as an "Implicit SUT". When the system is selected for use in a test session, the connection details are automatically configured in the test session.
Since the implicit SUT is expected to be used as part of multiple test
sessions - even as part of multiple groups - it is impossible to set a static
URL using any of the schemes above. In this case, a small modification is
required to the system, to ensure that an HTTP
traceparent header is forwarded
for all related requests. In the case of Mojaloop, for example, no changes are
required because all HTTP headers are automatically forwarded to the request
Using this HTTP header, the session and group IDs are no longer required inside the component URL. As such, base URLs used by implicit SUTs have a simpler structure:
Thus, the URL that a Mojaloop system configured as an Implicit SUT should use to send messages to MMO 1 (through the test platform) would be: