<!--
  ~ Copyright 2015 Open Networking Laboratory
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<scenario name="foo" description="Test Scenario" logDir="${test.dir}/foo">
    <import file="${test.dir}/one-scenario.xml" namespace="foo"/>

    <import file="${test.dir}/two-scenario.xml"/>

    <dependency name="dude" requires="~yolo"/>

    <step name="yo" exec="some-command ${HOME} and ${prop.foo} args" if="${prop.foo}"/>
    <step name="hi" exec="some-command ${prop.bar} or ${HOME} other args"/>
    <step name="there" exec="another-command" requires="yo,hi"/>

    <step name="maybe" exec="another-command" requires="~hi" unless="${prop.foo}"/>

    <group name="alpha" exec="same-command args" requires="yo">
        <step name="one" exec="asdads"/>
        <step name="two" exec="asdads"/>
        <group name="three" exec="asdads" requires="one,two">
            <step name="three.a"/>
            <step name="three.b" requires="three.a"/>
            <step name="three.c" requires="three.b"/>
        </group>
    </group>

    <dependency name="maybe" requires="yo"/>

    <parallel var="${TOC#}" requires="alpha">
        <step name="ping-${#}" exec="asdads ${TOC#}"/>
        <step name="pong-${#}" exec="asdads"/>
        <step name="ding-${#}" exec="asdads" requires="ping-${#},pong-${#}"/>
        <dependency name="maybe" requires="ding-${#}"/>
    </parallel>
</scenario>