21 lines
1.2 KiB
Plaintext
21 lines
1.2 KiB
Plaintext
$ mvn -pl saga test -Dtest=OrchestrationSagaTest
|
|
(the same two scenarios -- enough stock, and not enough stock -- run through
|
|
OrderSagaOrchestrator instead of through independent listeners)
|
|
|
|
[happy path] Order 1 status: CONFIRMED
|
|
[happy path] Stock remaining for GADGET-ORCH-OK: 8
|
|
[happy path] Payment record status: RESERVED
|
|
[compensation] Order 2 status: CANCELLED
|
|
[compensation] Stock remaining for GADGET-ORCH-FAIL (untouched): 1
|
|
[compensation] Payment record status: REFUNDED
|
|
|
|
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
|
|
|
|
Same outcomes as the choreography transcripts, reached a structurally different way. Here,
|
|
PaymentOrchestrationHandler and InventoryOrchestrationHandler never decide what happens next --
|
|
they carry out exactly one command each and reply. OrderSagaOrchestrator is the only class that
|
|
reads a reply and decides what command to send next, including the decision, in the second
|
|
test, to send RefundPaymentCommand once InventoryReply says no. Compare this transcript's two
|
|
tests with the two choreography transcripts above: identical business outcomes, from listener
|
|
classes that know nothing about the saga as a whole versus one class that knows all of it.
|