| <default> | <default> | |||||||||||||||||||||
| NodeRoles: | null | null | ||||||||||||||||||||
| alpha | charlie | alpha | ||||||||||||||||||||
| Node A | Node B | Node C | Node B | Node A | ||||||||||||||||||
| RPC | Request | RPC | Request | RPC | Reply | RPC | Reply | |||||||||||||||
| Message-A2B | Message-B2C | Message-C2B | Message-C2B | |||||||||||||||||||
| TestAssertion | Block# | Block | Actor | BlkContents | mU | Block | Actor | BlkContents | mU | Block | Actor | BlkContents | mU | Block | Actor | BlkContents | mU | |||||
| 1 | t1 | next | A | 1 | t1 | next | AB | 1 | t1 | next | ABC | 1 | t1 | next | ABCB | 1 | ||||||
| 2 | t2 | next | X | 1 | FAULT | |||||||||||||||||
| 3 | t1 | alpha | A | 1 | t1 | next | AB | 1 | t1 | next | 1 | t1 | next | 1 | ||||||||
| 4 | t2 | alpha | X | 1 | FAULT | |||||||||||||||||
| 5 | t1 | null | A | 1 | t1 | null | A | 1 | t1 | next | AC | 1 | t1 | null | ACB | 1 | ||||||
| 6 | t2 | null | X | 1 | t2 | null | X | 1 | FAULT | |||||||||||||
| 7 | t1 | bravo | A | 1 | t1 | bravo | A | 1 | ||||||||||||||
| 8 | t2 | bravo | X | 1 | t2 | bravo | X | 1 | t2 | bravo | 1 | t2 | bravo | 1 | ||||||||
| 9 | t1 | charlie | A | 1 | t1 | charlie | A | 1 | t1 | next | AC | 1 | t1 | next | ACB | 1 | ||||||
| 10 | t2 | charlie | X | 1 | t2 | charlie | X | 1 | t2 | charlie | 1 | t2 | charlie | 1 | ||||||||
| 11 | t1 | next | A | 0 | t1 | next | AB | 0 | t1 | next | ABC | 0 | t1 | next | ABCB | 0 | ||||||
| 12 | t2 | next | X | 0 | ||||||||||||||||||
| 13 | t1 | alpha | A | 0 | t1 | next | AB | 0 | t1 | next | 0 | t1 | next | 0 | ||||||||
| 14 | t2 | alpha | X | 0 | t2 | alpha | X | 0 | t2 | alpha | 0 | t2 | alpha | 0 | ||||||||
| 15 | t1 | null | A | 0 | t1 | null | A | 0 | t1 | null | 0 | t1 | null | 0 | ||||||||
| 16 | t2 | null | X | 0 | t2 | null | X | 0 | t2 | null | 0 | t2 | null | 0 | ||||||||
| 17 | t1 | bravo | A | 0 | t1 | bravo | A | 0 | ||||||||||||||
| 18 | t2 | bravo | X | 0 | t2 | bravo | X | 0 | t2 | bravo | 0 | t2 | bravo | 0 | ||||||||
| 19 | t1 | charlie | A | 0 | t1 | charlie | A | 0 | t1 | next | 0 | t1 | next | 0 | ||||||||
| 20 | t2 | charlie | X | 0 | t2 | charlie | X | 0 | t2 | charlie | 0 | t2 | charlie | 0 | ||||||||
| Processing Specifications | |
| t1 | |
| 1. If actor=next, append my node name to end of list, then | |
| a. if intermediary, fwd to actor=next | |
| b. if ultimate SOAP receipient, copy t1 into reply and set actor=next | |
| 2. If actor=me-specifically (e.g., alpha), append my node name to end of list, then fwd to actor=next | |
| t2 | Not defined (no one can understand it) |
| t3 | if on arrival t2 is not in message, insert t2 with actor=null and another t2 with actor=next |
| t4 | contents specifies role to be assumed by target |
| (If forwarded, should target then drop that role?) | |
| t5 | if received at anonymous actor, then insert t6 in response message |
| t6 | lists unprocessed header blocks that reach ultimate receiver. |
| unprocessed is when actor equal to next, null, or one of my roles (e.g., charlie) | |
| body | echo back body |
| NOTES | |
| 1 | null implies two cases: 1. actor="" and 2. No actor attribute |
| 2 | need to add cases for actor="none" |
| 3 | Can more than one node assume the same role (actor)? |
| <t4 actor=next><role>charlie</role></t4> | |
| 4 | table needs review. I suspect many errors in B2C, C2B, B2A for given A2B |
| 5 | Additional test cases using t3, t4, t5, t6? |