<workflow>
<type>WFNEST</type>
<description>Test Workflow for nested use of Workflow::Condition</description>
<persister>TestWFNest</persister>
<state name="INITIAL">
<description>INITIAL</description>
<action name="initialize" resulting_state="INITIALIZED">
</action>
</state>
<!-- This is the starting point for all test sets -->
<state name="INITIALIZED">
<description>Initialized</description>
<action name="test_greedy_or" resulting_state="TEST_GREEDY_OR">
</action>
<action name="test_lazy_and" resulting_state="TEST_LAZY_AND">
</action>
<action name="test_lazy_or" resulting_state="TEST_LAZY_OR">
</action>
<action name="tests_done" resulting_state="SUCCESS">
</action>
</state>
<!-- This is an additional step to track failed tests -->
<state name="SUBTEST_FAIL">
<description>SUBTEST_FAIL</description>
<action name="ack_subtest_fail" resulting_state="INITIALIZED">
</action>
</state>
<!-- Final state when all tests are complete -->
<state name="SUCCESS">
<description>Success</description>
</state>
<!-- Test set for Workflow::Condition::LazyAND -->
<state name="TEST_LAZY_AND">
<description>TEST_LAZY_AND</description>
<action name="lazy_and_1" resulting_state="TEST_LAZY_AND_1">
</action>
<action name="lazy_and_2" resulting_state="TEST_LAZY_AND_2">
</action>
<action name="subtests_done" resulting_state="INITIALIZED">
</action>
</state>
<state name="TEST_LAZY_AND_1"
autorun="yes">
<description>TEST_LAZY_AND_1</description>
<action name="null1" resulting_state="INITIALIZED">
<condition name="lazy_and_1"/>
</action>
<action name="null2" resulting_state="SUBTEST_FAIL">
<condition name="!lazy_and_1"/>
</action>
</state>
<state name="TEST_LAZY_AND_2"
autorun="yes">
<description>TEST_LAZY_AND_2</description>
<action name="null1" resulting_state="INITIALIZED">
<condition name="lazy_and_2"/>
</action>
<action name="null2" resulting_state="SUBTEST_FAIL">
<condition name="!lazy_and_2"/>
</action>
</state>
<!-- Test set for Workflow::Condition::LazyOR -->
<state name="TEST_LAZY_OR">
<description>TEST_LAZY_OR</description>
<action name="lazy_or_1" resulting_state="TEST_LAZY_OR_1">
</action>
<action name="lazy_or_2" resulting_state="TEST_LAZY_OR_2">
</action>
<action name="subtests_done" resulting_state="INITIALIZED">
</action>
</state>
<state name="TEST_LAZY_OR_1"
autorun="yes">
<description>TEST_LAZY_OR_1</description>
<action name="null1" resulting_state="INITIALIZED">
<condition name="lazy_or_1"/>
</action>
<action name="null2" resulting_state="SUBTEST_FAIL">
<condition name="!lazy_or_1"/>
</action>
</state>
<state name="TEST_LAZY_OR_2"
autorun="yes">
<description>TEST_LAZY_OR_2</description>
<action name="null1" resulting_state="INITIALIZED">
<condition name="lazy_or_2"/>
</action>
<action name="null2" resulting_state="SUBTEST_FAIL">
<condition name="!lazy_or_2"/>
</action>
</state>
</workflow>